node-llama-cpp 3.0.0-beta.5 → 3.0.0-beta.7
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/{utils/getBin.d.ts → bindings/AddonTypes.d.ts} +2 -2
- package/dist/bindings/AddonTypes.js +2 -0
- package/dist/bindings/AddonTypes.js.map +1 -0
- package/dist/bindings/Llama.d.ts +21 -0
- package/dist/bindings/Llama.js +213 -0
- package/dist/bindings/Llama.js.map +1 -0
- package/dist/bindings/getLlama.d.ts +83 -0
- package/dist/bindings/getLlama.js +216 -0
- package/dist/bindings/getLlama.js.map +1 -0
- package/dist/bindings/types.d.ts +33 -0
- package/dist/bindings/types.js +30 -0
- package/dist/bindings/types.js.map +1 -0
- package/dist/bindings/utils/NoBinaryFoundError.d.ts +2 -0
- package/dist/bindings/utils/NoBinaryFoundError.js +7 -0
- package/dist/bindings/utils/NoBinaryFoundError.js.map +1 -0
- package/dist/{utils → bindings/utils}/binariesGithubRelease.js +1 -1
- package/dist/bindings/utils/binariesGithubRelease.js.map +1 -0
- package/dist/bindings/utils/clearAllLocalBuilds.d.ts +1 -0
- package/dist/bindings/utils/clearAllLocalBuilds.js +47 -0
- package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +11 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.js +151 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -0
- package/dist/bindings/utils/compileLLamaCpp.d.ts +12 -0
- package/dist/bindings/utils/compileLLamaCpp.js +157 -0
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.d.ts +5 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +85 -0
- package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -0
- package/dist/bindings/utils/getCanUsePrebuiltBinaries.d.ts +1 -0
- package/dist/bindings/utils/getCanUsePrebuiltBinaries.js +8 -0
- package/dist/bindings/utils/getCanUsePrebuiltBinaries.js.map +1 -0
- package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.d.ts +2 -0
- package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js +21 -0
- package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js.map +1 -0
- package/dist/bindings/utils/getPlatform.d.ts +2 -0
- package/dist/bindings/utils/getPlatform.js +15 -0
- package/dist/bindings/utils/getPlatform.js.map +1 -0
- package/dist/bindings/utils/lastBuildInfo.d.ts +6 -0
- package/dist/bindings/utils/lastBuildInfo.js +17 -0
- package/dist/bindings/utils/lastBuildInfo.js.map +1 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +2 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +28 -0
- package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.d.ts +1 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.js +43 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -0
- package/dist/chatWrappers/ChatMLChatWrapper.d.ts +5 -0
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +1 -1
- 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 +2 -1
- package/dist/cli/commands/BuildCommand.js +43 -10
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +3 -2
- package/dist/cli/commands/ChatCommand.js +29 -12
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/ClearCommand.js +4 -6
- package/dist/cli/commands/ClearCommand.js.map +1 -1
- package/dist/cli/commands/DownloadCommand.d.ts +2 -1
- package/dist/cli/commands/DownloadCommand.js +47 -40
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/cli/commands/OnPostInstallCommand.js +5 -10
- package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
- package/dist/config.d.ts +9 -3
- package/dist/config.js +14 -6
- package/dist/config.js.map +1 -1
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/LlamaChat.js +5 -4
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/FunctionCallGrammar.d.ts +2 -1
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/FunctionCallGrammar.js +2 -1
- package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +18 -0
- package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/LlamaChatSession.js +2 -0
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.js +5 -2
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -0
- package/dist/evaluator/LlamaContext/types.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaEmbeddingContext.d.ts +2 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaEmbeddingContext.js +13 -8
- package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.d.ts +4 -2
- package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.js +8 -7
- package/dist/evaluator/LlamaGrammar.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.js +4 -4
- package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.d.ts +2 -1
- package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.js +2 -1
- package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -0
- package/dist/{llamaEvaluator → evaluator}/LlamaModel.d.ts +4 -3
- package/dist/{llamaEvaluator → evaluator}/LlamaModel.js +4 -6
- package/dist/evaluator/LlamaModel.js.map +1 -0
- package/dist/index.d.ts +16 -12
- package/dist/index.js +15 -11
- 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/cmake.js +16 -11
- package/dist/utils/cmake.js.map +1 -1
- package/dist/utils/getConsoleLogPrefix.d.ts +1 -0
- package/dist/utils/getConsoleLogPrefix.js +9 -0
- package/dist/utils/getConsoleLogPrefix.js.map +1 -0
- package/dist/utils/getGrammarsFolder.d.ts +2 -1
- package/dist/utils/getGrammarsFolder.js +8 -7
- package/dist/utils/getGrammarsFolder.js.map +1 -1
- package/dist/utils/getModuleVersion.d.ts +1 -0
- package/dist/utils/getModuleVersion.js +13 -0
- package/dist/utils/getModuleVersion.js.map +1 -0
- package/dist/utils/gitReleaseBundles.js +6 -5
- package/dist/utils/gitReleaseBundles.js.map +1 -1
- package/dist/utils/hashString.d.ts +1 -0
- package/dist/utils/hashString.js +8 -0
- package/dist/utils/hashString.js.map +1 -0
- package/dist/utils/isLockfileActive.d.ts +4 -0
- package/dist/utils/isLockfileActive.js +12 -0
- package/dist/utils/isLockfileActive.js.map +1 -0
- package/dist/utils/parseModelTypeDescription.d.ts +1 -1
- package/dist/utils/prettyPrintObject.d.ts +1 -0
- package/dist/utils/prettyPrintObject.js +38 -0
- package/dist/utils/prettyPrintObject.js.map +1 -0
- package/dist/utils/removeNullFields.d.ts +1 -0
- package/dist/utils/removeNullFields.js +8 -0
- package/dist/utils/removeNullFields.js.map +1 -1
- package/dist/utils/resolveChatWrapper.d.ts +1 -1
- package/dist/utils/resolveGithubRelease.d.ts +2 -0
- package/dist/utils/resolveGithubRelease.js +36 -0
- package/dist/utils/resolveGithubRelease.js.map +1 -0
- package/dist/utils/spawnCommand.d.ts +1 -1
- package/dist/utils/spawnCommand.js +4 -2
- package/dist/utils/spawnCommand.js.map +1 -1
- package/dist/utils/tokenizeInput.d.ts +3 -0
- package/dist/utils/tokenizeInput.js +9 -0
- package/dist/utils/tokenizeInput.js.map +1 -0
- package/dist/utils/waitForLockfileRelease.d.ts +5 -0
- package/dist/utils/waitForLockfileRelease.js +20 -0
- package/dist/utils/waitForLockfileRelease.js.map +1 -0
- package/dist/utils/withLockfile.d.ts +7 -0
- package/dist/utils/withLockfile.js +44 -0
- package/dist/utils/withLockfile.js.map +1 -0
- package/dist/utils/withStatusLogs.d.ts +2 -1
- package/dist/utils/withStatusLogs.js +11 -8
- package/dist/utils/withStatusLogs.js.map +1 -1
- package/llama/addon.cpp +102 -0
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/llama.cpp.info.json +4 -0
- package/llamaBins/linux-arm64/.buildMetadata.json +1 -0
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/.buildMetadata.json +1 -0
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/.buildMetadata.json +1 -0
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/linux-x64-cuda/.buildMetadata.json +1 -0
- package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/mac-arm64-metal/.buildMetadata.json +1 -0
- package/llamaBins/{mac-arm64 → mac-arm64-metal}/ggml-metal.metal +303 -4
- package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
- package/llamaBins/mac-x64/.buildMetadata.json +1 -0
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64/.buildMetadata.json +1 -0
- package/llamaBins/win-x64/llama-addon.exp +0 -0
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64-cuda/.buildMetadata.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/package.json +7 -4
- package/dist/llamaEvaluator/LlamaBins.d.ts +0 -18
- package/dist/llamaEvaluator/LlamaBins.js +0 -5
- package/dist/llamaEvaluator/LlamaBins.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChat/LlamaChat.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js.map +0 -1
- package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/types.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +0 -1
- package/dist/llamaEvaluator/LlamaEmbeddingContext.js.map +0 -1
- package/dist/llamaEvaluator/LlamaGrammar.js.map +0 -1
- package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +0 -1
- package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +0 -1
- package/dist/llamaEvaluator/LlamaModel.js.map +0 -1
- package/dist/utils/binariesGithubRelease.js.map +0 -1
- package/dist/utils/clearLlamaBuild.d.ts +0 -1
- package/dist/utils/clearLlamaBuild.js +0 -12
- package/dist/utils/clearLlamaBuild.js.map +0 -1
- package/dist/utils/cloneLlamaCppRepo.d.ts +0 -2
- package/dist/utils/cloneLlamaCppRepo.js +0 -102
- package/dist/utils/cloneLlamaCppRepo.js.map +0 -1
- package/dist/utils/compileLLamaCpp.d.ts +0 -8
- package/dist/utils/compileLLamaCpp.js +0 -132
- package/dist/utils/compileLLamaCpp.js.map +0 -1
- package/dist/utils/getBin.js +0 -78
- package/dist/utils/getBin.js.map +0 -1
- package/dist/utils/getReleaseInfo.d.ts +0 -7
- package/dist/utils/getReleaseInfo.js +0 -30
- package/dist/utils/getReleaseInfo.js.map +0 -1
- package/dist/utils/usedBinFlag.d.ts +0 -6
- package/dist/utils/usedBinFlag.js +0 -15
- package/dist/utils/usedBinFlag.js.map +0 -1
- package/llama/usedBin.json +0 -3
- package/llamaBins/mac-arm64/llama-addon.node +0 -0
- /package/dist/{utils → bindings/utils}/binariesGithubRelease.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChat/LlamaChat.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/LlamaChatSession.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/utils/defineChatSessionFunction.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/utils/defineChatSessionFunction.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +0 -0
- /package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.d.ts +0 -0
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import fs from "fs-extra";
|
|
2
2
|
import { llamaBinsGrammarsDirectory, llamaCppGrammarsDirectory } from "../config.js";
|
|
3
|
-
import {
|
|
4
|
-
export async function getGrammarsFolder() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (await fs.pathExists(llamaCppGrammarsDirectory))
|
|
3
|
+
import { isLlamaCppRepoCloned } from "../bindings/utils/cloneLlamaCppRepo.js";
|
|
4
|
+
export async function getGrammarsFolder(buildType) {
|
|
5
|
+
if (buildType === "localBuild") {
|
|
6
|
+
if (await isLlamaCppRepoCloned(true) && await fs.pathExists(llamaCppGrammarsDirectory))
|
|
8
7
|
return llamaCppGrammarsDirectory;
|
|
9
8
|
}
|
|
10
|
-
else if (
|
|
9
|
+
else if (buildType === "prebuilt") {
|
|
11
10
|
if (await fs.pathExists(llamaBinsGrammarsDirectory))
|
|
12
11
|
return llamaBinsGrammarsDirectory;
|
|
13
|
-
else if (await fs.pathExists(llamaCppGrammarsDirectory))
|
|
12
|
+
else if (await isLlamaCppRepoCloned(false) && await fs.pathExists(llamaCppGrammarsDirectory))
|
|
14
13
|
return llamaCppGrammarsDirectory;
|
|
15
14
|
}
|
|
15
|
+
else
|
|
16
|
+
void (buildType);
|
|
16
17
|
throw new Error("Grammars folder not found");
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=getGrammarsFolder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGrammarsFolder.js","sourceRoot":"","sources":["../../src/utils/getGrammarsFolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,0BAA0B,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"getGrammarsFolder.js","sourceRoot":"","sources":["../../src/utils/getGrammarsFolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,0BAA0B,EAAE,yBAAyB,EAAC,MAAM,cAAc,CAAC;AAEnF,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAE5E,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAA6B;IACjE,IAAI,SAAS,KAAK,YAAY,EAAE;QAC5B,IAAI,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC;YAClF,OAAO,yBAAyB,CAAC;KACxC;SAAM,IAAI,SAAS,KAAK,UAAU,EAAE;QACjC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC;YAC/C,OAAO,0BAA0B,CAAC;aACjC,IAAI,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC;YACxF,OAAO,yBAAyB,CAAC;KACxC;;QACG,KAAK,CAAC,SAAyB,CAAC,CAAC;IAErC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getModuleVersion(): Promise<string>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { fileURLToPath } from "url";
|
|
3
|
+
import fs from "fs-extra";
|
|
4
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
let moduleVersion = null;
|
|
6
|
+
export async function getModuleVersion() {
|
|
7
|
+
if (moduleVersion != null)
|
|
8
|
+
return moduleVersion;
|
|
9
|
+
const packageJson = await fs.readJson(path.join(__dirname, "..", "..", "package.json"));
|
|
10
|
+
moduleVersion = packageJson.version;
|
|
11
|
+
return moduleVersion;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=getModuleVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getModuleVersion.js","sourceRoot":"","sources":["../../src/utils/getModuleVersion.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,IAAI,aAAa,GAAkB,IAAI,CAAC;AACxC,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,IAAI,aAAa,IAAI,IAAI;QACrB,OAAO,aAAa,CAAC;IAEzB,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAExF,aAAa,GAAG,WAAW,CAAC,OAAiB,CAAC;IAE9C,OAAO,aAAa,CAAC;AACzB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import fs from "fs-extra";
|
|
2
2
|
import simpleGit from "simple-git";
|
|
3
|
-
import { currentReleaseGitBundlePath,
|
|
4
|
-
import { getBinariesGithubRelease } from "
|
|
3
|
+
import { currentReleaseGitBundlePath, builtinLlamaCppGitHubRepo, llamaCppDirectory } from "../config.js";
|
|
4
|
+
import { getBinariesGithubRelease } from "../bindings/utils/binariesGithubRelease.js";
|
|
5
|
+
import { isGithubReleaseNeedsResolving } from "./resolveGithubRelease.js";
|
|
5
6
|
export async function unshallowAndSquashCurrentRepoAndSaveItAsReleaseBundle() {
|
|
6
7
|
if (!(await fs.pathExists(llamaCppDirectory)))
|
|
7
8
|
throw new Error("llama.cpp directory does not exist");
|
|
@@ -39,11 +40,11 @@ export async function unshallowAndSquashCurrentRepoAndSaveItAsReleaseBundle() {
|
|
|
39
40
|
await simpleGit(llamaCppDirectory).raw(["bundle", "create", currentReleaseGitBundlePath, "HEAD"]);
|
|
40
41
|
}
|
|
41
42
|
export async function getGitBundlePathForRelease(githubOwner, githubRepo, release) {
|
|
42
|
-
const [
|
|
43
|
-
if (githubOwner !==
|
|
43
|
+
const [builtinGithubOwner, builtinGithubRepo] = builtinLlamaCppGitHubRepo.split("/");
|
|
44
|
+
if (githubOwner !== builtinGithubOwner || githubRepo !== builtinGithubRepo)
|
|
44
45
|
return null;
|
|
45
46
|
const currentBundleRelease = await getBinariesGithubRelease();
|
|
46
|
-
if (currentBundleRelease
|
|
47
|
+
if (isGithubReleaseNeedsResolving(currentBundleRelease))
|
|
47
48
|
return null;
|
|
48
49
|
if (currentBundleRelease !== release)
|
|
49
50
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitReleaseBundles.js","sourceRoot":"","sources":["../../src/utils/gitReleaseBundles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,2BAA2B,EAAE,yBAAyB,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AACvG,OAAO,EAAC,wBAAwB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gitReleaseBundles.js","sourceRoot":"","sources":["../../src/utils/gitReleaseBundles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function hashString(text: string): Promise<string>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as crypto from "node:crypto";
|
|
2
|
+
export async function hashString(text) {
|
|
3
|
+
const hashBuffer = await crypto.subtle.digest("SHA-1", Buffer.from(text));
|
|
4
|
+
return Array.from(new Uint8Array(hashBuffer))
|
|
5
|
+
.map(b => b.toString(36))
|
|
6
|
+
.join("");
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=hashString.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashString.js","sourceRoot":"","sources":["../../src/utils/hashString.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACxB,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import lockfile from "proper-lockfile";
|
|
2
|
+
import { isLockActive } from "lifecycle-utils";
|
|
3
|
+
import { lockfileLockScope } from "./withLockfile.js";
|
|
4
|
+
export async function isLockfileActive({ resourcePath, staleDuration = 1000 * 10 }) {
|
|
5
|
+
if (isLockActive(lockfileLockScope, resourcePath))
|
|
6
|
+
return true;
|
|
7
|
+
const lockfileActive = await lockfile.check(resourcePath, { stale: staleDuration, realpath: false });
|
|
8
|
+
if (lockfileActive)
|
|
9
|
+
return true;
|
|
10
|
+
return isLockActive(lockfileLockScope, resourcePath);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=isLockfileActive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isLockfileActive.js","sourceRoot":"","sources":["../../src/utils/isLockfileActive.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACnC,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAG1C;IACG,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC;QAC7C,OAAO,IAAI,CAAC;IAEhB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;IACnG,IAAI,cAAc;QACd,OAAO,IAAI,CAAC;IAEhB,OAAO,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AddonModelArchName, AddonModelFileTypeName, AddonModelTypeName, ModelTypeDescription } from "
|
|
1
|
+
import type { AddonModelArchName, AddonModelFileTypeName, AddonModelTypeName, ModelTypeDescription } from "../bindings/AddonTypes.js";
|
|
2
2
|
export declare function parseModelTypeDescription(modelTypeDescription: ModelTypeDescription): {
|
|
3
3
|
arch: AddonModelArchName;
|
|
4
4
|
type: AddonModelTypeName;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function prettyPrintObject(obj: any, indent?: number): string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
export function prettyPrintObject(obj, indent = 4) {
|
|
3
|
+
if (typeof obj === "string")
|
|
4
|
+
return chalk.green(JSON.stringify(obj, null, 4));
|
|
5
|
+
else if (typeof obj === "number")
|
|
6
|
+
return chalk.yellow(obj);
|
|
7
|
+
else if (typeof obj === "boolean")
|
|
8
|
+
return chalk.magenta.italic(obj);
|
|
9
|
+
else if (obj === null)
|
|
10
|
+
return chalk.magenta.italic("null");
|
|
11
|
+
else if (obj === undefined)
|
|
12
|
+
return chalk.magenta.italic("undefined");
|
|
13
|
+
else if (obj instanceof Array)
|
|
14
|
+
return [
|
|
15
|
+
chalk.whiteBright("["),
|
|
16
|
+
obj.map(prettyPrintObject)
|
|
17
|
+
.join(chalk.whiteBright(", ")),
|
|
18
|
+
chalk.whiteBright("]")
|
|
19
|
+
].join("");
|
|
20
|
+
const rows = [];
|
|
21
|
+
for (const key of Object.keys(obj)) {
|
|
22
|
+
const value = obj[key];
|
|
23
|
+
rows.push([
|
|
24
|
+
" ".repeat(indent),
|
|
25
|
+
(JSON.stringify(key)
|
|
26
|
+
.slice(1, -1) === key)
|
|
27
|
+
? chalk.red(key)
|
|
28
|
+
: chalk.green(JSON.stringify(key)),
|
|
29
|
+
chalk.whiteBright(": "),
|
|
30
|
+
prettyPrintObject(value, indent)
|
|
31
|
+
.replaceAll("\n", "\n" + " ".repeat(indent))
|
|
32
|
+
].join(""));
|
|
33
|
+
}
|
|
34
|
+
if (rows.length === 0)
|
|
35
|
+
return chalk.whiteBright("{}");
|
|
36
|
+
return chalk.whiteBright("{\n") + rows.join(chalk.whiteBright(",\n")) + chalk.whiteBright("\n") + chalk.whiteBright("}");
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=prettyPrintObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prettyPrintObject.js","sourceRoot":"","sources":["../../src/utils/prettyPrintObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,iBAAiB,CAAC,GAAQ,EAAE,SAAiB,CAAC;IAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ;QACvB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAChD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACxB,IAAI,OAAO,GAAG,KAAK,SAAS;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAChC,IAAI,GAAG,KAAK,IAAI;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACnC,IAAI,GAAG,KAAK,SAAS;QACtB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACxC,IAAI,GAAG,YAAY,KAAK;QACzB,OAAO;YACH,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;YACtB,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC;iBACrB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;SACzB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAuB,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAClB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;iBACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;gBACtB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBAChB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YACvB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC;iBAC3B,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACnD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACf;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC7H,CAAC"}
|
|
@@ -6,4 +6,12 @@ export function removeNullFields(obj) {
|
|
|
6
6
|
}
|
|
7
7
|
return newObj;
|
|
8
8
|
}
|
|
9
|
+
export function removeUndefinedFields(obj) {
|
|
10
|
+
const newObj = Object.assign({}, obj);
|
|
11
|
+
for (const key in obj) {
|
|
12
|
+
if (newObj[key] === undefined)
|
|
13
|
+
delete newObj[key];
|
|
14
|
+
}
|
|
15
|
+
return newObj;
|
|
16
|
+
}
|
|
9
17
|
//# sourceMappingURL=removeNullFields.js.map
|
|
@@ -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"}
|
|
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,4 +1,4 @@
|
|
|
1
1
|
import { ChatWrapper } from "../ChatWrapper.js";
|
|
2
2
|
import { GeneralChatWrapper } from "../chatWrappers/GeneralChatWrapper.js";
|
|
3
|
-
import { LlamaModel } from "../
|
|
3
|
+
import { LlamaModel } from "../evaluator/LlamaModel.js";
|
|
4
4
|
export declare function resolveChatWrapper(chatWrapper: "auto" | ChatWrapper, model: LlamaModel): ChatWrapper | import("../index.js").LlamaChatWrapper | GeneralChatWrapper | import("../index.js").FalconChatWrapper;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Octokit } from "octokit";
|
|
2
|
+
import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
|
|
3
|
+
export async function resolveGithubRelease(githubOwner, githubRepo, release) {
|
|
4
|
+
const octokit = new Octokit();
|
|
5
|
+
const repo = githubOwner + "/" + githubRepo;
|
|
6
|
+
let githubRelease = null;
|
|
7
|
+
try {
|
|
8
|
+
if (release === "latest") {
|
|
9
|
+
githubRelease = await octokit.rest.repos.getLatestRelease({
|
|
10
|
+
owner: githubOwner,
|
|
11
|
+
repo: githubRepo
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
githubRelease = await octokit.rest.repos.getReleaseByTag({
|
|
16
|
+
owner: githubOwner,
|
|
17
|
+
repo: githubRepo,
|
|
18
|
+
tag: release
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
console.error(getConsoleLogPrefix() + "Failed to fetch llama.cpp release info", err);
|
|
24
|
+
}
|
|
25
|
+
if (githubRelease == null) {
|
|
26
|
+
throw new Error(`Failed to find release "${release}" of "${repo}"`);
|
|
27
|
+
}
|
|
28
|
+
if (githubRelease.data.tag_name == null) {
|
|
29
|
+
throw new Error(`Failed to find tag of release "${release}" of "${repo}"`);
|
|
30
|
+
}
|
|
31
|
+
return githubRelease.data.tag_name;
|
|
32
|
+
}
|
|
33
|
+
export function isGithubReleaseNeedsResolving(release) {
|
|
34
|
+
return release === "latest";
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=resolveGithubRelease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveGithubRelease.js","sourceRoot":"","sources":["../../src/utils/resolveGithubRelease.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,UAAkB,EAAE,OAAe;IAC/F,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC;IAK5C,IAAI,aAAa,GAA6B,IAAI,CAAC;IAEnD,IAAI;QACA,IAAI,OAAO,KAAK,QAAQ,EAAE;YACtB,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBACtD,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,UAAU;aACnB,CAAC,CAAC;SACN;aAAM;YACH,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBACrD,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,OAAO;aACf,CAAC,CAAC;SACN;KACJ;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,wCAAwC,EAAE,GAAG,CAAC,CAAC;KACxF;IAED,IAAI,aAAa,IAAI,IAAI,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,SAAS,IAAI,GAAG,CAAC,CAAC;KACvE;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,SAAS,IAAI,GAAG,CAAC,CAAC;KAC9E;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAe;IACzD,OAAO,OAAO,KAAK,QAAQ,CAAC;AAChC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
export declare function spawnCommand(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
2
|
+
export declare function spawnCommand(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv, progressLogs?: boolean): Promise<void>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import spawn from "cross-spawn";
|
|
2
|
-
export function spawnCommand(command, args, cwd, env = process.env) {
|
|
2
|
+
export function spawnCommand(command, args, cwd, env = process.env, progressLogs = true) {
|
|
3
3
|
function getCommandString() {
|
|
4
4
|
let res = command;
|
|
5
5
|
for (const arg of args) {
|
|
@@ -14,7 +14,9 @@ export function spawnCommand(command, args, cwd, env = process.env) {
|
|
|
14
14
|
}
|
|
15
15
|
return new Promise((resolve, reject) => {
|
|
16
16
|
const child = spawn(command, args, {
|
|
17
|
-
stdio:
|
|
17
|
+
stdio: progressLogs
|
|
18
|
+
? "inherit"
|
|
19
|
+
: ["ignore", "ignore", process.stderr],
|
|
18
20
|
cwd,
|
|
19
21
|
env,
|
|
20
22
|
detached: false,
|
|
@@ -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;
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { isLlamaText } from "./LlamaText.js";
|
|
2
|
+
export function tokenizeInput(input, tokenizer) {
|
|
3
|
+
if (typeof input === "string")
|
|
4
|
+
return tokenizer(input, false);
|
|
5
|
+
else if (isLlamaText(input))
|
|
6
|
+
return input.tokenize(tokenizer);
|
|
7
|
+
return input;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=tokenizeInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizeInput.js","sourceRoot":"","sources":["../../src/utils/tokenizeInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,KAAmC,EAAE,SAAoB;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC9B,IAAI,WAAW,CAAC,KAAK,CAAC;QACvB,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import lockfile from "proper-lockfile";
|
|
2
|
+
import { isLockActive, waitForLockRelease } from "lifecycle-utils";
|
|
3
|
+
import { lockfileLockScope } from "./withLockfile.js";
|
|
4
|
+
export async function waitForLockfileRelease({ resourcePath, checkInterval = 1000 * 5.5, staleDuration = 1000 * 10 }) {
|
|
5
|
+
// eslint-disable-next-line no-constant-condition
|
|
6
|
+
while (true) {
|
|
7
|
+
if (isLockActive(lockfileLockScope, resourcePath)) {
|
|
8
|
+
await waitForLockRelease(lockfileLockScope, resourcePath);
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
const lockfileActive = await lockfile.check(resourcePath, { stale: staleDuration, realpath: false });
|
|
12
|
+
const lockIsActive = isLockActive(lockfileLockScope, resourcePath);
|
|
13
|
+
if (lockIsActive)
|
|
14
|
+
continue;
|
|
15
|
+
if (!lockfileActive)
|
|
16
|
+
return;
|
|
17
|
+
await new Promise((resolve) => setTimeout(resolve, checkInterval));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=waitForLockfileRelease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitForLockfileRelease.js","sourceRoot":"","sources":["../../src/utils/waitForLockfileRelease.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EACzC,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAGtE;IACG,iDAAiD;IACjD,OAAO,IAAI,EAAE;QACT,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE;YAC/C,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC1D,SAAS;SACZ;QAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QACnG,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAEnE,IAAI,YAAY;YACZ,SAAS;QAEb,IAAI,CAAC,cAAc;YACf,OAAO;QAEX,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;KACtE;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const lockfileLockScope: {};
|
|
2
|
+
export declare function withLockfile<const T>({ resourcePath, staleDuration, updateInterval, retries }: {
|
|
3
|
+
resourcePath: string;
|
|
4
|
+
staleDuration?: number;
|
|
5
|
+
updateInterval?: number;
|
|
6
|
+
retries?: number;
|
|
7
|
+
}, callback: () => T | Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import lockfile from "proper-lockfile";
|
|
2
|
+
import { withLock } from "lifecycle-utils";
|
|
3
|
+
import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
|
|
4
|
+
export const lockfileLockScope = {};
|
|
5
|
+
export async function withLockfile({ resourcePath, staleDuration = 1000 * 10, updateInterval = staleDuration / 2, retries = 2 }, callback) {
|
|
6
|
+
return await withLock(lockfileLockScope, resourcePath, async () => {
|
|
7
|
+
let releaseLock;
|
|
8
|
+
let res;
|
|
9
|
+
const lockPromise = lockfile.lock(resourcePath, {
|
|
10
|
+
stale: staleDuration,
|
|
11
|
+
update: updateInterval,
|
|
12
|
+
retries,
|
|
13
|
+
realpath: false
|
|
14
|
+
});
|
|
15
|
+
try {
|
|
16
|
+
releaseLock = await lockPromise;
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
console.error(getConsoleLogPrefix() + `Failed to acquire lockfile for "${resourcePath}"`, err);
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
res = await callback();
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
try {
|
|
27
|
+
await releaseLock();
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error(getConsoleLogPrefix() + `Failed to release lockfile for "${resourcePath}"`, err);
|
|
31
|
+
}
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
await releaseLock();
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
console.error(getConsoleLogPrefix() + `Failed to release lockfile for "${resourcePath}"`, err);
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
return res;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=withLockfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withLockfile.js","sourceRoot":"","sources":["../../src/utils/withLockfile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,EACI,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAAE,cAAc,GAAG,aAAa,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAG3F,EACD,QAA8B;IAE9B,OAAO,MAAM,QAAQ,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;QAC9D,IAAI,WAAgC,CAAC;QACrC,IAAI,GAAM,CAAC;QAEX,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;YAC5C,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,cAAc;YACtB,OAAO;YACP,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QAEH,IAAI;YACA,WAAW,GAAG,MAAM,WAAW,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,mCAAmC,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/F,MAAM,GAAG,CAAC;SACb;QAED,IAAI;YACA,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACV,IAAI;gBACA,MAAM,WAAW,EAAE,CAAC;aACvB;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,mCAAmC,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;aAClG;YAED,MAAM,GAAG,CAAC;SACb;QAED,IAAI;YACA,MAAM,WAAW,EAAE,CAAC;SACvB;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,mCAAmC,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/F,MAAM,GAAG,CAAC;SACb;QAED,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import logSymbols from "log-symbols";
|
|
3
|
+
import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
|
|
3
4
|
const clockChar = "\u25f7";
|
|
4
|
-
export default async function withStatusLogs(
|
|
5
|
-
|
|
5
|
+
export default async function withStatusLogs(messageAndOptions, callback) {
|
|
6
|
+
if (typeof messageAndOptions !== "string" && messageAndOptions.disableLogs)
|
|
7
|
+
return await callback();
|
|
8
|
+
console.log(getConsoleLogPrefix() + `${chalk.cyan(clockChar)} ${typeof messageAndOptions === "string" ? messageAndOptions : messageAndOptions.loading}`);
|
|
6
9
|
try {
|
|
7
10
|
const res = await callback();
|
|
8
|
-
if (typeof
|
|
9
|
-
console.log(`${logSymbols.success} ${
|
|
11
|
+
if (typeof messageAndOptions !== "string")
|
|
12
|
+
console.log(getConsoleLogPrefix() + `${logSymbols.success} ${messageAndOptions.success}`);
|
|
10
13
|
else
|
|
11
|
-
console.log(`${logSymbols.success} ${
|
|
14
|
+
console.log(getConsoleLogPrefix() + `${logSymbols.success} ${messageAndOptions}`);
|
|
12
15
|
return res;
|
|
13
16
|
}
|
|
14
17
|
catch (er) {
|
|
15
|
-
if (typeof
|
|
16
|
-
console.log(`${logSymbols.error} ${
|
|
18
|
+
if (typeof messageAndOptions !== "string")
|
|
19
|
+
console.log(getConsoleLogPrefix() + `${logSymbols.error} ${messageAndOptions.fail}`);
|
|
17
20
|
else
|
|
18
|
-
console.log(`${logSymbols.error} ${
|
|
21
|
+
console.log(getConsoleLogPrefix() + `${logSymbols.error} ${messageAndOptions}`);
|
|
19
22
|
throw er;
|
|
20
23
|
}
|
|
21
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withStatusLogs.js","sourceRoot":"","sources":["../../src/utils/withStatusLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"withStatusLogs.js","sourceRoot":"","sources":["../../src/utils/withStatusLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CACxC,iBAKC,EACD,QAA0B;IAE1B,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,CAAC,WAAW;QACtE,OAAO,MAAM,QAAQ,EAAE,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;IAEzJ,IAAI;QACA,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE7B,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;;YAE1F,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAEtF,OAAO,GAAG,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;;YAErF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAEpF,MAAM,EAAE,CAAC;KACZ;AACL,CAAC"}
|
package/llama/addon.cpp
CHANGED
|
@@ -9,6 +9,16 @@
|
|
|
9
9
|
#include "llama.h"
|
|
10
10
|
#include "napi.h"
|
|
11
11
|
|
|
12
|
+
Napi::FunctionReference loggerCallbackFunctionReference;
|
|
13
|
+
Napi::ThreadSafeFunction threadSafeLoggerCallback;
|
|
14
|
+
bool loggerCallbackSet = false;
|
|
15
|
+
int addonLoggerLogLevel = 5;
|
|
16
|
+
|
|
17
|
+
struct addon_logger_log {
|
|
18
|
+
const int logLevelNumber;
|
|
19
|
+
const std::stringstream* stringStream;
|
|
20
|
+
};
|
|
21
|
+
|
|
12
22
|
std::string addon_model_token_to_piece(const struct llama_model * model, llama_token token) {
|
|
13
23
|
std::vector<char> result(8, 0);
|
|
14
24
|
const int n_tokens = llama_token_to_piece(model, token, result.data(), result.size());
|
|
@@ -799,15 +809,107 @@ Napi::Value systemInfo(const Napi::CallbackInfo& info) {
|
|
|
799
809
|
return Napi::String::From(info.Env(), llama_print_system_info());
|
|
800
810
|
}
|
|
801
811
|
|
|
812
|
+
int addonGetGgmlLogLevelNumber(ggml_log_level level) {
|
|
813
|
+
switch (level) {
|
|
814
|
+
case GGML_LOG_LEVEL_ERROR: return 2;
|
|
815
|
+
case GGML_LOG_LEVEL_WARN: return 3;
|
|
816
|
+
case GGML_LOG_LEVEL_INFO: return 4;
|
|
817
|
+
case GGML_LOG_LEVEL_DEBUG: return 5;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
return 1;
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
static void addonWrapperJSLogCallback(Napi::Env env, Napi::Function jsCallback, addon_logger_log* data) {
|
|
824
|
+
auto status = jsCallback.Call({
|
|
825
|
+
Napi::Number::New(env, data->logLevelNumber),
|
|
826
|
+
Napi::String::New(env, data->stringStream->str())
|
|
827
|
+
});
|
|
828
|
+
|
|
829
|
+
delete data->stringStream;
|
|
830
|
+
delete data;
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
static void addonLlamaCppLogCallback(ggml_log_level level, const char * text, void * user_data) {
|
|
834
|
+
int logLevelNumber = addonGetGgmlLogLevelNumber(level);
|
|
835
|
+
|
|
836
|
+
if (logLevelNumber > addonLoggerLogLevel) {
|
|
837
|
+
return;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
if (loggerCallbackSet) {
|
|
841
|
+
std::stringstream* stringStream = new std::stringstream();
|
|
842
|
+
if (text != nullptr) {
|
|
843
|
+
*stringStream << text;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
addon_logger_log* data = new addon_logger_log {
|
|
847
|
+
logLevelNumber,
|
|
848
|
+
stringStream
|
|
849
|
+
};
|
|
850
|
+
|
|
851
|
+
auto status = threadSafeLoggerCallback.NonBlockingCall(data, addonWrapperJSLogCallback);
|
|
852
|
+
|
|
853
|
+
if (status == napi_ok) {
|
|
854
|
+
return;
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
if (level == GGML_LOG_LEVEL_ERROR) {
|
|
859
|
+
fputs(text, stderr);
|
|
860
|
+
fflush(stderr);
|
|
861
|
+
} else {
|
|
862
|
+
fputs(text, stdout);
|
|
863
|
+
fflush(stdout);
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
Napi::Value setLogger(const Napi::CallbackInfo& info) {
|
|
868
|
+
if (info.Length() < 1 || !info[0].IsFunction()) {
|
|
869
|
+
if (loggerCallbackSet) {
|
|
870
|
+
threadSafeLoggerCallback.Release();
|
|
871
|
+
threadSafeLoggerCallback = nullptr;
|
|
872
|
+
loggerCallbackFunctionReference.Unref();
|
|
873
|
+
loggerCallbackSet = false;
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
return info.Env().Undefined();
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
loggerCallbackFunctionReference = Napi::Persistent(info[0].As<Napi::Function>());
|
|
880
|
+
loggerCallbackFunctionReference.Ref();
|
|
881
|
+
threadSafeLoggerCallback = Napi::ThreadSafeFunction::New(info.Env(), loggerCallbackFunctionReference.Value(), "loggerCallback", 0, 1);
|
|
882
|
+
loggerCallbackSet = true;
|
|
883
|
+
|
|
884
|
+
return info.Env().Undefined();
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
Napi::Value setLoggerLogLevel(const Napi::CallbackInfo& info) {
|
|
888
|
+
if (info.Length() < 1 || !info[0].IsNumber()) {
|
|
889
|
+
addonLoggerLogLevel = 5;
|
|
890
|
+
|
|
891
|
+
return info.Env().Undefined();
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
addonLoggerLogLevel = info[0].As<Napi::Number>().Int32Value();
|
|
895
|
+
|
|
896
|
+
return info.Env().Undefined();
|
|
897
|
+
}
|
|
898
|
+
|
|
802
899
|
Napi::Object registerCallback(Napi::Env env, Napi::Object exports) {
|
|
803
900
|
llama_backend_init(false);
|
|
804
901
|
exports.DefineProperties({
|
|
805
902
|
Napi::PropertyDescriptor::Function("systemInfo", systemInfo),
|
|
903
|
+
Napi::PropertyDescriptor::Function("setLogger", setLogger),
|
|
904
|
+
Napi::PropertyDescriptor::Function("setLoggerLogLevel", setLoggerLogLevel)
|
|
806
905
|
});
|
|
807
906
|
AddonModel::init(exports);
|
|
808
907
|
AddonGrammar::init(exports);
|
|
809
908
|
AddonGrammarEvaluationState::init(exports);
|
|
810
909
|
AddonContext::init(exports);
|
|
910
|
+
|
|
911
|
+
llama_log_set(addonLlamaCppLogCallback, nullptr);
|
|
912
|
+
|
|
811
913
|
return exports;
|
|
812
914
|
}
|
|
813
915
|
|
package/llama/gitRelease.bundle
CHANGED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","arch":"arm64","computeLayers":{"metal":false,"cuda":false},"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2060"}}}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"buildOptions":{"customCmakeOptions":{},"progressLogs":true,"platform":"linux","arch":"armv7l","computeLayers":{"metal":false,"cuda":false},"llamaCpp":{"repo":"ggerganov/llama.cpp","release":"b2060"}}}
|