node-llama-cpp 3.0.0-beta.14 → 3.0.0-beta.16
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/README.md +1 -1
- package/dist/ChatWrapper.js +4 -0
- package/dist/ChatWrapper.js.map +1 -1
- package/dist/bindings/AddonTypes.d.ts +23 -0
- package/dist/bindings/Llama.d.ts +11 -0
- package/dist/bindings/Llama.js +56 -4
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/getLlama.d.ts +20 -2
- package/dist/bindings/getLlama.js +15 -5
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/types.d.ts +15 -0
- package/dist/bindings/types.js +27 -2
- package/dist/bindings/types.js.map +1 -1
- package/dist/bindings/utils/MemoryOrchestrator.d.ts +21 -0
- package/dist/bindings/utils/MemoryOrchestrator.js +49 -0
- package/dist/bindings/utils/MemoryOrchestrator.js.map +1 -0
- package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +1 -1
- package/dist/bindings/utils/cloneLlamaCppRepo.js +26 -25
- package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.js +2 -2
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/getLlamaWithoutBackend.d.ts +5 -0
- package/dist/bindings/utils/getLlamaWithoutBackend.js +27 -0
- package/dist/bindings/utils/getLlamaWithoutBackend.js.map +1 -0
- package/dist/bindings/utils/resolveCustomCmakeOptions.js +2 -2
- package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -1
- package/dist/chatWrappers/AlpacaChatWrapper.d.ts +2 -1
- package/dist/chatWrappers/AlpacaChatWrapper.js +9 -2
- package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/ChatMLChatWrapper.js +12 -10
- package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
- package/dist/chatWrappers/FalconChatWrapper.d.ts +2 -1
- package/dist/chatWrappers/FalconChatWrapper.js +28 -11
- package/dist/chatWrappers/FalconChatWrapper.js.map +1 -1
- package/dist/chatWrappers/FunctionaryChatWrapper.js +59 -45
- package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GemmaChatWrapper.js +9 -7
- package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/GeneralChatWrapper.d.ts +2 -1
- package/dist/chatWrappers/GeneralChatWrapper.js +35 -12
- package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -1
- package/dist/chatWrappers/LlamaChatWrapper.d.ts +7 -0
- package/dist/chatWrappers/LlamaChatWrapper.js +26 -8
- package/dist/chatWrappers/LlamaChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +73 -0
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +355 -0
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -0
- package/dist/{TemplateChatWrapper.d.ts → chatWrappers/generic/TemplateChatWrapper.d.ts} +6 -9
- package/dist/{TemplateChatWrapper.js → chatWrappers/generic/TemplateChatWrapper.js} +31 -69
- package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -0
- package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.d.ts +33 -0
- package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js +45 -0
- package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js.map +1 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.d.ts +4 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +206 -0
- package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -0
- package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +67 -0
- package/dist/chatWrappers/utils/resolveChatWrapper.js +208 -0
- package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -0
- package/dist/cli/cli.js +1 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands/BuildCommand.js +1 -1
- package/dist/cli/commands/BuildCommand.js.map +1 -1
- package/dist/cli/commands/ChatCommand.d.ts +9 -5
- package/dist/cli/commands/ChatCommand.js +203 -118
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/ClearCommand.d.ts +1 -1
- package/dist/cli/commands/ClearCommand.js +5 -5
- package/dist/cli/commands/ClearCommand.js.map +1 -1
- package/dist/cli/commands/CompleteCommand.d.ts +5 -3
- package/dist/cli/commands/CompleteCommand.js +136 -85
- package/dist/cli/commands/CompleteCommand.js.map +1 -1
- package/dist/cli/commands/DebugCommand.js +4 -4
- package/dist/cli/commands/DownloadCommand.js +3 -4
- package/dist/cli/commands/DownloadCommand.js.map +1 -1
- package/dist/cli/commands/InfillCommand.d.ts +5 -3
- package/dist/cli/commands/InfillCommand.js +138 -89
- package/dist/cli/commands/InfillCommand.js.map +1 -1
- package/dist/cli/commands/{InspectCommand.d.ts → inspect/InspectCommand.d.ts} +1 -4
- package/dist/cli/commands/inspect/InspectCommand.js +17 -0
- package/dist/cli/commands/inspect/InspectCommand.js.map +1 -0
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.d.ts +11 -0
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +121 -0
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -0
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.d.ts +4 -0
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +136 -0
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -0
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +15 -0
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +579 -0
- package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -0
- package/dist/cli/recommendedModels.d.ts +2 -0
- package/dist/cli/recommendedModels.js +281 -0
- package/dist/cli/recommendedModels.js.map +1 -0
- package/dist/cli/utils/ConsoleInteraction.d.ts +23 -0
- package/dist/cli/utils/ConsoleInteraction.js +122 -0
- package/dist/cli/utils/ConsoleInteraction.js.map +1 -0
- package/dist/cli/utils/ConsoleTable.d.ts +23 -0
- package/dist/cli/utils/ConsoleTable.js +86 -0
- package/dist/cli/utils/ConsoleTable.js.map +1 -0
- package/dist/cli/utils/basicChooseFromListConsoleInteraction.d.ts +13 -0
- package/dist/cli/utils/basicChooseFromListConsoleInteraction.js +111 -0
- package/dist/cli/utils/basicChooseFromListConsoleInteraction.js.map +1 -0
- package/dist/cli/utils/consolePromptQuestion.d.ts +5 -0
- package/dist/cli/utils/consolePromptQuestion.js +80 -0
- package/dist/cli/utils/consolePromptQuestion.js.map +1 -0
- package/dist/cli/utils/getReadablePath.d.ts +1 -0
- package/dist/cli/utils/getReadablePath.js +14 -0
- package/dist/cli/utils/getReadablePath.js.map +1 -0
- package/dist/cli/utils/printCommonInfoLines.d.ts +9 -0
- package/dist/cli/utils/printCommonInfoLines.js +70 -0
- package/dist/cli/utils/printCommonInfoLines.js.map +1 -0
- package/dist/cli/utils/printInfoLine.d.ts +12 -0
- package/dist/cli/utils/printInfoLine.js +54 -0
- package/dist/cli/utils/printInfoLine.js.map +1 -0
- package/dist/cli/utils/resolveCommandGgufPath.d.ts +2 -0
- package/dist/cli/utils/resolveCommandGgufPath.js +494 -0
- package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -0
- package/dist/cli/utils/resolveHeaderFlag.d.ts +1 -0
- package/dist/cli/utils/resolveHeaderFlag.js +21 -0
- package/dist/cli/utils/resolveHeaderFlag.js.map +1 -0
- package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +19 -0
- package/dist/cli/utils/resolveModelRecommendationFileOptions.js +7 -0
- package/dist/cli/utils/resolveModelRecommendationFileOptions.js.map +1 -0
- package/dist/cli/utils/splitAnsiToLines.d.ts +1 -0
- package/dist/cli/utils/splitAnsiToLines.js +17 -0
- package/dist/cli/utils/splitAnsiToLines.js.map +1 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +11 -2
- package/dist/config.js.map +1 -1
- package/dist/consts.d.ts +2 -0
- package/dist/consts.js +8 -0
- package/dist/consts.js.map +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.d.ts +8 -1
- package/dist/evaluator/LlamaChat/LlamaChat.js +15 -6
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +9 -2
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +5 -3
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaCompletion.d.ts +9 -2
- package/dist/evaluator/LlamaCompletion.js +11 -6
- package/dist/evaluator/LlamaCompletion.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.d.ts +30 -3
- package/dist/evaluator/LlamaContext/LlamaContext.js +227 -102
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaContext/types.d.ts +57 -6
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -0
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.d.ts +2 -0
- package/dist/evaluator/LlamaContext/utils/{resolveBatchItemsPrioritizingStrategy.js → resolveBatchItemsPrioritizationStrategy.js} +4 -4
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js.map +1 -0
- package/dist/evaluator/LlamaEmbeddingContext.d.ts +23 -2
- package/dist/evaluator/LlamaEmbeddingContext.js +4 -5
- package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
- package/dist/evaluator/LlamaGrammar.d.ts +3 -2
- package/dist/evaluator/LlamaGrammar.js +3 -2
- package/dist/evaluator/LlamaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaModel.d.ts +56 -6
- package/dist/evaluator/LlamaModel.js +99 -7
- package/dist/evaluator/LlamaModel.js.map +1 -1
- package/dist/evaluator/TokenBias.d.ts +22 -0
- package/dist/evaluator/TokenBias.js +33 -0
- package/dist/evaluator/TokenBias.js.map +1 -0
- package/dist/evaluator/TokenMeter.d.ts +54 -0
- package/dist/evaluator/TokenMeter.js +86 -0
- package/dist/evaluator/TokenMeter.js.map +1 -0
- package/dist/gguf/consts.d.ts +3 -0
- package/dist/gguf/consts.js +8 -0
- package/dist/gguf/consts.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/UnsupportedGgufValueTypeError.d.ts +4 -0
- package/dist/gguf/errors/UnsupportedGgufValueTypeError.js +9 -0
- package/dist/gguf/errors/UnsupportedGgufValueTypeError.js.map +1 -0
- package/dist/gguf/fileReaders/GgufFileReader.d.ts +33 -0
- package/dist/gguf/fileReaders/GgufFileReader.js +76 -0
- package/dist/gguf/fileReaders/GgufFileReader.js.map +1 -0
- package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +17 -0
- package/dist/gguf/fileReaders/GgufFsFileReader.js +45 -0
- package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -0
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +22 -0
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +63 -0
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -0
- package/dist/gguf/insights/GgufInsights.d.ts +42 -0
- package/dist/gguf/insights/GgufInsights.js +361 -0
- package/dist/gguf/insights/GgufInsights.js.map +1 -0
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +87 -0
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +136 -0
- package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -0
- package/dist/gguf/insights/utils/resolveContextContextSizeOption.d.ts +18 -0
- package/dist/gguf/insights/utils/resolveContextContextSizeOption.js +52 -0
- package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -0
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.d.ts +14 -0
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +177 -0
- package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -0
- package/dist/gguf/insights/utils/scoreLevels.d.ts +5 -0
- package/dist/gguf/insights/utils/scoreLevels.js +16 -0
- package/dist/gguf/insights/utils/scoreLevels.js.map +1 -0
- package/dist/gguf/parser/GgufV2Parser.d.ts +19 -0
- package/dist/gguf/parser/GgufV2Parser.js +115 -0
- package/dist/gguf/parser/GgufV2Parser.js.map +1 -0
- package/dist/gguf/parser/GgufV3Parser.d.ts +3 -0
- package/dist/gguf/parser/GgufV3Parser.js +4 -0
- package/dist/gguf/parser/GgufV3Parser.js.map +1 -0
- package/dist/gguf/parser/parseGguf.d.ts +8 -0
- package/dist/gguf/parser/parseGguf.js +58 -0
- package/dist/gguf/parser/parseGguf.js.map +1 -0
- package/dist/gguf/readGgufFileInfo.d.ts +30 -0
- package/dist/gguf/readGgufFileInfo.js +38 -0
- package/dist/gguf/readGgufFileInfo.js.map +1 -0
- package/dist/gguf/types/GgufFileInfoTypes.d.ts +52 -0
- package/dist/gguf/types/GgufFileInfoTypes.js +18 -0
- package/dist/gguf/types/GgufFileInfoTypes.js.map +1 -0
- package/dist/gguf/types/GgufMetadataTypes.d.ts +330 -0
- package/dist/gguf/types/GgufMetadataTypes.js +86 -0
- package/dist/gguf/types/GgufMetadataTypes.js.map +1 -0
- package/dist/gguf/types/GgufTensorInfoTypes.d.ts +37 -0
- package/dist/gguf/types/GgufTensorInfoTypes.js +33 -0
- package/dist/gguf/types/GgufTensorInfoTypes.js.map +1 -0
- package/dist/gguf/utils/GgufReadOffset.d.ts +6 -0
- package/dist/gguf/utils/GgufReadOffset.js +18 -0
- package/dist/gguf/utils/GgufReadOffset.js.map +1 -0
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.d.ts +5 -0
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js +38 -0
- package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js.map +1 -0
- package/dist/gguf/utils/getGgufFileTypeName.d.ts +4 -0
- package/dist/gguf/utils/getGgufFileTypeName.js +13 -0
- package/dist/gguf/utils/getGgufFileTypeName.js.map +1 -0
- package/dist/gguf/utils/getGgufMetadataArchitectureData.d.ts +3 -0
- package/dist/gguf/utils/getGgufMetadataArchitectureData.js +4 -0
- package/dist/gguf/utils/getGgufMetadataArchitectureData.js.map +1 -0
- package/dist/gguf/utils/normalizeGgufDownloadUrl.d.ts +1 -0
- package/dist/gguf/utils/normalizeGgufDownloadUrl.js +16 -0
- package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -0
- package/dist/index.d.ts +14 -7
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/InsufficientMemoryError.d.ts +3 -0
- package/dist/utils/InsufficientMemoryError.js +6 -0
- package/dist/utils/InsufficientMemoryError.js.map +1 -0
- package/dist/utils/LlamaText.d.ts +25 -10
- package/dist/utils/LlamaText.js +205 -23
- package/dist/utils/LlamaText.js.map +1 -1
- package/dist/utils/StopGenerationDetector.js +3 -1
- package/dist/utils/StopGenerationDetector.js.map +1 -1
- package/dist/utils/findBestOption.d.ts +4 -0
- package/dist/utils/findBestOption.js +15 -0
- package/dist/utils/findBestOption.js.map +1 -0
- package/dist/utils/getConsoleLogPrefix.js +1 -1
- package/dist/utils/getQueuedTokensBeforeStopTrigger.js +3 -3
- package/dist/utils/getQueuedTokensBeforeStopTrigger.js.map +1 -1
- package/dist/utils/getReadableContextSize.d.ts +1 -0
- package/dist/utils/getReadableContextSize.js +7 -0
- package/dist/utils/getReadableContextSize.js.map +1 -0
- package/dist/utils/gitReleaseBundles.js +68 -1
- package/dist/utils/gitReleaseBundles.js.map +1 -1
- package/dist/utils/isToken.d.ts +2 -0
- package/dist/utils/isToken.js +4 -0
- package/dist/utils/isToken.js.map +1 -0
- package/dist/utils/isUrl.d.ts +1 -0
- package/dist/utils/isUrl.js +15 -0
- package/dist/utils/isUrl.js.map +1 -0
- package/dist/utils/mergeUnionTypes.d.ts +4 -0
- package/dist/utils/parseModelFileName.d.ts +1 -0
- package/dist/utils/parseModelFileName.js +6 -1
- package/dist/utils/parseModelFileName.js.map +1 -1
- package/dist/utils/prettyPrintObject.d.ts +10 -1
- package/dist/utils/prettyPrintObject.js +57 -13
- package/dist/utils/prettyPrintObject.js.map +1 -1
- package/dist/utils/spawnCommand.js.map +1 -1
- package/dist/utils/tokenizeInput.d.ts +1 -1
- package/dist/utils/tokenizeInput.js +6 -3
- package/dist/utils/tokenizeInput.js.map +1 -1
- package/dist/utils/withOra.d.ts +2 -0
- package/dist/utils/withOra.js +14 -8
- package/dist/utils/withOra.js.map +1 -1
- package/dist/utils/withProgressLog.d.ts +23 -0
- package/dist/utils/withProgressLog.js +211 -0
- package/dist/utils/withProgressLog.js.map +1 -0
- package/dist/utils/withStatusLogs.js +1 -1
- package/dist/utils/withStatusLogs.js.map +1 -1
- package/llama/CMakeLists.txt +5 -5
- package/llama/addon.cpp +159 -9
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/gpuInfo/cuda-gpu-info.cu +21 -0
- package/llama/gpuInfo/cuda-gpu-info.h +3 -0
- package/llama/gpuInfo/metal-gpu-info.h +4 -1
- package/llama/gpuInfo/metal-gpu-info.mm +14 -1
- package/llama/gpuInfo/vulkan-gpu-info.cpp +20 -2
- package/llama/gpuInfo/vulkan-gpu-info.h +2 -0
- package/llama/grammars/README.md +10 -0
- package/llama/llama.cpp.info.json +1 -1
- package/llama/toolchains/win32.host-x64.target-arm64.cmake +41 -0
- package/llamaBins/linux-arm64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-arm64/llama-addon.node +0 -0
- package/llamaBins/linux-armv7l/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-armv7l/llama-addon.node +0 -0
- package/llamaBins/linux-x64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-x64/llama-addon.node +0 -0
- package/llamaBins/linux-x64-cuda/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -1
- package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
- package/llamaBins/mac-arm64-metal/_nlcBuildMetadata.json +1 -1
- 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 -1
- package/llamaBins/mac-x64/llama-addon.node +0 -0
- package/llamaBins/win-arm64/_nlcBuildMetadata.json +1 -0
- package/llamaBins/win-arm64/llama-addon.exp +0 -0
- package/llamaBins/win-arm64/llama-addon.lib +0 -0
- package/llamaBins/win-arm64/llama-addon.node +0 -0
- package/llamaBins/win-x64/_nlcBuildMetadata.json +1 -1
- package/llamaBins/win-x64/llama-addon.node +0 -0
- package/llamaBins/win-x64-cuda/_nlcBuildMetadata.json +1 -1
- package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
- package/llamaBins/win-x64-vulkan/_nlcBuildMetadata.json +1 -1
- package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
- package/package.json +15 -12
- package/dist/TemplateChatWrapper.js.map +0 -1
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +0 -33
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +0 -49
- package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +0 -1
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +0 -13
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +0 -63
- package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +0 -1
- package/dist/cli/commands/InspectCommand.js +0 -113
- package/dist/cli/commands/InspectCommand.js.map +0 -1
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +0 -1
- package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +0 -1
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +0 -2
- package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +0 -1
- package/dist/gguf/GGUFInsights.d.ts +0 -28
- package/dist/gguf/GGUFInsights.js +0 -58
- package/dist/gguf/GGUFInsights.js.map +0 -1
- package/dist/gguf/GGUFMetadata.d.ts +0 -19
- package/dist/gguf/GGUFMetadata.js +0 -38
- package/dist/gguf/GGUFMetadata.js.map +0 -1
- package/dist/gguf/errors/InvalidGGUFMagicError.d.ts +0 -3
- package/dist/gguf/errors/InvalidGGUFMagicError.js +0 -6
- package/dist/gguf/errors/InvalidGGUFMagicError.js.map +0 -1
- package/dist/gguf/errors/MetadataNotParsedYetError.d.ts +0 -3
- package/dist/gguf/errors/MetadataNotParsedYetError.js +0 -6
- package/dist/gguf/errors/MetadataNotParsedYetError.js.map +0 -1
- package/dist/gguf/errors/MissingNodeLlamaError.d.ts +0 -3
- package/dist/gguf/errors/MissingNodeLlamaError.js +0 -6
- package/dist/gguf/errors/MissingNodeLlamaError.js.map +0 -1
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.d.ts +0 -5
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js +0 -11
- package/dist/gguf/errors/ModelScore/NotEnoughVRamError.js.map +0 -1
- package/dist/gguf/errors/UnsupportedMetadataTypeError.d.ts +0 -4
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js +0 -8
- package/dist/gguf/errors/UnsupportedMetadataTypeError.js.map +0 -1
- package/dist/gguf/ggufParser/GGUFParser.d.ts +0 -18
- package/dist/gguf/ggufParser/GGUFParser.js +0 -123
- package/dist/gguf/ggufParser/GGUFParser.js.map +0 -1
- package/dist/gguf/ggufParser/GGUFTypes.d.ts +0 -257
- package/dist/gguf/ggufParser/GGUFTypes.js +0 -2
- package/dist/gguf/ggufParser/GGUFTypes.js.map +0 -1
- package/dist/gguf/ggufParser/checkArchitecture.d.ts +0 -14
- package/dist/gguf/ggufParser/checkArchitecture.js +0 -74
- package/dist/gguf/ggufParser/checkArchitecture.js.map +0 -1
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.d.ts +0 -38
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js +0 -83
- package/dist/gguf/ggufParser/stream/GGUFBaseStream.js.map +0 -1
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.d.ts +0 -14
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js +0 -35
- package/dist/gguf/ggufParser/stream/GGUFFetchStream.js.map +0 -1
- package/dist/gguf/ggufParser/stream/GGUFReadStream.d.ts +0 -15
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js +0 -40
- package/dist/gguf/ggufParser/stream/GGUFReadStream.js.map +0 -1
- package/dist/utils/parseModelTypeDescription.d.ts +0 -6
- package/dist/utils/parseModelTypeDescription.js +0 -9
- package/dist/utils/parseModelTypeDescription.js.map +0 -1
- package/dist/utils/resolveChatWrapper.d.ts +0 -4
- package/dist/utils/resolveChatWrapper.js +0 -16
- package/dist/utils/resolveChatWrapper.js.map +0 -1
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/firstInFirstOutStrategy.d.ts +0 -0
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/firstInFirstOutStrategy.js +0 -0
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/maximumParallelismStrategy.d.ts +0 -0
- /package/dist/evaluator/LlamaContext/utils/{batchItemsPrioritizingStrategies → batchItemsPrioritizationStrategies}/maximumParallelismStrategy.js +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { parseTextTemplate } from "../../../utils/parseTextTemplate.js";
|
|
2
|
+
export function parseFunctionCallMessageTemplate(template) {
|
|
3
|
+
if (template == null)
|
|
4
|
+
return null;
|
|
5
|
+
const [functionCallTemplate, functionCallResultTemplate] = template;
|
|
6
|
+
if (functionCallTemplate == null || functionCallResultTemplate == null)
|
|
7
|
+
throw new Error("Both function call and function call result templates are required");
|
|
8
|
+
const parsedFunctionCallTemplate = parseTextTemplate(functionCallTemplate, [{
|
|
9
|
+
text: "{{functionName}}",
|
|
10
|
+
key: "functionName"
|
|
11
|
+
}, {
|
|
12
|
+
text: "{{functionParams}}",
|
|
13
|
+
key: "functionParams"
|
|
14
|
+
}]);
|
|
15
|
+
const parsedFunctionCallResultTemplate = parseTextTemplate(functionCallResultTemplate, [{
|
|
16
|
+
text: "{{functionCallResult}}",
|
|
17
|
+
key: "functionCallResult"
|
|
18
|
+
}]);
|
|
19
|
+
const callPrefix = parsedFunctionCallTemplate.functionName.prefix;
|
|
20
|
+
const callParamsPrefix = parsedFunctionCallTemplate.functionParams.prefix;
|
|
21
|
+
const callSuffix = parsedFunctionCallTemplate.functionParams.suffix;
|
|
22
|
+
const resultPrefix = parsedFunctionCallResultTemplate.functionCallResult.prefix;
|
|
23
|
+
const resultSuffix = parsedFunctionCallResultTemplate.functionCallResult.suffix;
|
|
24
|
+
if (callPrefix.length === 0)
|
|
25
|
+
throw new Error("Function call template must have text before \"{{functionName}}\"");
|
|
26
|
+
if (callSuffix.length === 0)
|
|
27
|
+
throw new Error("Function call template must have text after \"{{functionParams}}\"");
|
|
28
|
+
if (resultPrefix.length === 0)
|
|
29
|
+
throw new Error("Function call result template must have text before \"{{functionCallResult}}\"");
|
|
30
|
+
if (resultSuffix.length === 0)
|
|
31
|
+
throw new Error("Function call result template must have text after \"{{functionCallResult}}\"");
|
|
32
|
+
return {
|
|
33
|
+
call: {
|
|
34
|
+
optionalPrefixSpace: true,
|
|
35
|
+
prefix: callPrefix,
|
|
36
|
+
paramsPrefix: callParamsPrefix,
|
|
37
|
+
suffix: callSuffix
|
|
38
|
+
},
|
|
39
|
+
result: {
|
|
40
|
+
prefix: resultPrefix,
|
|
41
|
+
suffix: resultSuffix
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=chatHistoryFunctionCallMessageTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatHistoryFunctionCallMessageTemplate.js","sourceRoot":"","sources":["../../../../src/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AAEtE,MAAM,UAAU,gCAAgC,CAAC,QAAiD;IAC9F,IAAI,QAAQ,IAAI,IAAI;QAChB,OAAO,IAAI,CAAC;IAEhB,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,GAAG,QAAQ,CAAC;IAEpE,IAAI,oBAAoB,IAAI,IAAI,IAAI,0BAA0B,IAAI,IAAI;QAClE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAE1F,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YACxE,IAAI,EAAE,kBAAkB;YACxB,GAAG,EAAE,cAAc;SACtB,EAAE;YACC,IAAI,EAAE,oBAAoB;YAC1B,GAAG,EAAE,gBAAgB;SACxB,CAAC,CAAC,CAAC;IACJ,MAAM,gCAAgC,GAAG,iBAAiB,CAAC,0BAA0B,EAAE,CAAC;YACpF,IAAI,EAAE,wBAAwB;YAC9B,GAAG,EAAE,oBAAoB;SAC5B,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAG,0BAA0B,CAAC,YAAY,CAAC,MAAM,CAAC;IAClE,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,cAAc,CAAC,MAAM,CAAC;IAC1E,MAAM,UAAU,GAAG,0BAA0B,CAAC,cAAc,CAAC,MAAM,CAAC;IAEpE,MAAM,YAAY,GAAG,gCAAgC,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAChF,MAAM,YAAY,GAAG,gCAAgC,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAEhF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAEzF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAE1F,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IAEtG,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IAErG,OAAO;QACH,IAAI,EAAE;YACF,mBAAmB,EAAE,IAAI;YACzB,MAAM,EAAE,UAAU;YAClB,YAAY,EAAE,gBAAgB;YAC9B,MAAM,EAAE,UAAU;SACrB;QACD,MAAM,EAAE;YACJ,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,YAAY;SACvB;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ChatWrapper } from "../../ChatWrapper.js";
|
|
2
|
+
import { Tokenizer } from "../../types.js";
|
|
3
|
+
import { JinjaTemplateChatWrapperOptions } from "../generic/JinjaTemplateChatWrapper.js";
|
|
4
|
+
export declare function isJinjaTemplateEquivalentToSpecializedChatWrapper(jinjaTemplateWrapperOptions: JinjaTemplateChatWrapperOptions, specializedChatWrapper: ChatWrapper, tokenizer?: Tokenizer): boolean;
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { JinjaTemplateChatWrapper } from "../generic/JinjaTemplateChatWrapper.js";
|
|
2
|
+
import { SpecialToken, LlamaText } from "../../utils/LlamaText.js";
|
|
3
|
+
import { compareTokens } from "../../utils/compareTokens.js";
|
|
4
|
+
import { StopGenerationDetector } from "../../utils/StopGenerationDetector.js";
|
|
5
|
+
export function isJinjaTemplateEquivalentToSpecializedChatWrapper(jinjaTemplateWrapperOptions, specializedChatWrapper, tokenizer) {
|
|
6
|
+
const canTestMultipleConvertSystemMessagesToUserMessages = jinjaTemplateWrapperOptions.convertUnsupportedSystemMessagesToUserMessages == null ||
|
|
7
|
+
jinjaTemplateWrapperOptions.convertUnsupportedSystemMessagesToUserMessages === "auto";
|
|
8
|
+
try {
|
|
9
|
+
const jinjaChatWrapper = new JinjaTemplateChatWrapper({
|
|
10
|
+
...jinjaTemplateWrapperOptions,
|
|
11
|
+
convertUnsupportedSystemMessagesToUserMessages: canTestMultipleConvertSystemMessagesToUserMessages
|
|
12
|
+
? false
|
|
13
|
+
: jinjaTemplateWrapperOptions.convertUnsupportedSystemMessagesToUserMessages,
|
|
14
|
+
trimLeadingWhitespaceInResponses: false
|
|
15
|
+
});
|
|
16
|
+
if (checkEquivalence(jinjaChatWrapper, specializedChatWrapper, testChatHistories, tokenizer))
|
|
17
|
+
return true;
|
|
18
|
+
const jinjaChatWrapperWithLeadingWhitespaceTrimming = new JinjaTemplateChatWrapper({
|
|
19
|
+
...jinjaTemplateWrapperOptions,
|
|
20
|
+
convertUnsupportedSystemMessagesToUserMessages: canTestMultipleConvertSystemMessagesToUserMessages
|
|
21
|
+
? false
|
|
22
|
+
: jinjaTemplateWrapperOptions.convertUnsupportedSystemMessagesToUserMessages,
|
|
23
|
+
trimLeadingWhitespaceInResponses: true
|
|
24
|
+
});
|
|
25
|
+
if (checkEquivalence(jinjaChatWrapperWithLeadingWhitespaceTrimming, specializedChatWrapper, testChatHistories, tokenizer))
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
// Do nothing
|
|
30
|
+
}
|
|
31
|
+
if (!canTestMultipleConvertSystemMessagesToUserMessages)
|
|
32
|
+
return false;
|
|
33
|
+
try {
|
|
34
|
+
const convertSystemMessagesToUserMessagesTemplate = "System: {{message}}";
|
|
35
|
+
const jinjaChatWrapper = new JinjaTemplateChatWrapper({
|
|
36
|
+
...jinjaTemplateWrapperOptions,
|
|
37
|
+
convertUnsupportedSystemMessagesToUserMessages: {
|
|
38
|
+
use: "always",
|
|
39
|
+
format: convertSystemMessagesToUserMessagesTemplate
|
|
40
|
+
},
|
|
41
|
+
trimLeadingWhitespaceInResponses: false
|
|
42
|
+
});
|
|
43
|
+
const transformedTestChatHistories = testChatHistories
|
|
44
|
+
.map((history) => (history
|
|
45
|
+
.slice()
|
|
46
|
+
.map((item, index, array) => {
|
|
47
|
+
if (item.type === "system") {
|
|
48
|
+
if (index === 0 && array.length > 1 && array[1].type === "user") {
|
|
49
|
+
array[1] = {
|
|
50
|
+
type: "user",
|
|
51
|
+
text: convertSystemMessagesToUserMessagesTemplate.replace("{{message}}", item.text) + "\n\n" + array[1].text
|
|
52
|
+
};
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
type: "user",
|
|
57
|
+
text: convertSystemMessagesToUserMessagesTemplate.replace("{{message}}", item.text)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return item;
|
|
61
|
+
})
|
|
62
|
+
.filter((item) => item != null)));
|
|
63
|
+
if (checkEquivalence(jinjaChatWrapper, specializedChatWrapper, transformedTestChatHistories, tokenizer))
|
|
64
|
+
return true;
|
|
65
|
+
const jinjaChatWrapperWithLeadingWhitespaceTrimming = new JinjaTemplateChatWrapper({
|
|
66
|
+
...jinjaTemplateWrapperOptions,
|
|
67
|
+
convertUnsupportedSystemMessagesToUserMessages: {
|
|
68
|
+
use: "always",
|
|
69
|
+
format: convertSystemMessagesToUserMessagesTemplate
|
|
70
|
+
},
|
|
71
|
+
trimLeadingWhitespaceInResponses: true
|
|
72
|
+
});
|
|
73
|
+
if (checkEquivalence(jinjaChatWrapperWithLeadingWhitespaceTrimming, specializedChatWrapper, transformedTestChatHistories, tokenizer))
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
// Do nothing
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
function checkEquivalence(jinjaChatWrapper, specializedChatWrapper, testChatHistories, tokenizer) {
|
|
82
|
+
for (const testChatHistory of testChatHistories) {
|
|
83
|
+
const jinjaRes = jinjaChatWrapper.generateContextText(testChatHistory);
|
|
84
|
+
const specializedWrapperRes = specializedChatWrapper.generateContextText(testChatHistory);
|
|
85
|
+
if (!compareContextTexts(jinjaRes.contextText, specializedWrapperRes.contextText, tokenizer))
|
|
86
|
+
return false;
|
|
87
|
+
const jinjaHasAllSpecializedStopGenerationTriggers = jinjaRes.stopGenerationTriggers
|
|
88
|
+
.every((trigger) => {
|
|
89
|
+
return [trigger, trigger.trimEnd(), trigger.trimStart(), trigger.trimStart().trimEnd()].some((normalizedJinjaTrigger) => {
|
|
90
|
+
if (normalizedJinjaTrigger.values.length === 0)
|
|
91
|
+
return true;
|
|
92
|
+
const foundSimilarTriggers = specializedWrapperRes.stopGenerationTriggers.some((specializedTrigger) => (normalizedJinjaTrigger.includes(specializedTrigger)));
|
|
93
|
+
if (foundSimilarTriggers)
|
|
94
|
+
return true;
|
|
95
|
+
if (tokenizer != null) {
|
|
96
|
+
const resolvedStopGenerationTrigger = StopGenerationDetector.resolveLlamaTextTrigger(normalizedJinjaTrigger, tokenizer);
|
|
97
|
+
const foundSimilarOrShorterTokenizedTriggers = specializedWrapperRes.stopGenerationTriggers
|
|
98
|
+
.some((specializedTrigger) => {
|
|
99
|
+
const resolvedSpecializedTrigger = StopGenerationDetector.resolveLlamaTextTrigger(specializedTrigger, tokenizer);
|
|
100
|
+
return resolvedSpecializedTrigger.every((item, index) => {
|
|
101
|
+
const resolveTriggerItem = resolvedStopGenerationTrigger[index];
|
|
102
|
+
if (typeof item === "string" && typeof resolveTriggerItem === "string")
|
|
103
|
+
return item === resolveTriggerItem;
|
|
104
|
+
else if (typeof item === "string" || typeof resolveTriggerItem === "string")
|
|
105
|
+
return false;
|
|
106
|
+
return compareTokens(item, resolveTriggerItem);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
if (foundSimilarOrShorterTokenizedTriggers)
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
return false;
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
if (!jinjaHasAllSpecializedStopGenerationTriggers)
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
function compareContextTexts(text1, text2, tokenizer) {
|
|
121
|
+
function compare(text1, text2) {
|
|
122
|
+
if (LlamaText.compare(text1, text2))
|
|
123
|
+
return true;
|
|
124
|
+
if (tokenizer != null) {
|
|
125
|
+
const tokenizedText1 = text1.tokenize(tokenizer);
|
|
126
|
+
const tokenizedText2 = text2.tokenize(tokenizer);
|
|
127
|
+
if (tokenizedText1.length === tokenizedText2.length)
|
|
128
|
+
return tokenizedText1.every((token, index) => compareTokens(token, tokenizedText2[index]));
|
|
129
|
+
}
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
const trimmedText1 = text1.trimEnd();
|
|
133
|
+
const trimmedText2 = text2.trimEnd();
|
|
134
|
+
const normalizedText1 = removeLeadingBos(trimmedText1);
|
|
135
|
+
const normalizedText2 = removeLeadingBos(trimmedText2);
|
|
136
|
+
const texts1 = (normalizedText1.length !== trimmedText1.length && tokenizer != null)
|
|
137
|
+
? [trimmedText1, normalizedText1]
|
|
138
|
+
: [normalizedText1];
|
|
139
|
+
const texts2 = (normalizedText2.length !== trimmedText2.length && tokenizer != null)
|
|
140
|
+
? [trimmedText2, normalizedText2]
|
|
141
|
+
: [normalizedText2];
|
|
142
|
+
return texts1.some((text1) => (texts2.some((text2) => (compare(text1, text2)))));
|
|
143
|
+
}
|
|
144
|
+
const testChatHistories = [
|
|
145
|
+
[{
|
|
146
|
+
type: "system",
|
|
147
|
+
text: "System message ~!@#$%^&*()\n*"
|
|
148
|
+
}, {
|
|
149
|
+
type: "user",
|
|
150
|
+
text: "Message 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"
|
|
151
|
+
}, {
|
|
152
|
+
type: "model",
|
|
153
|
+
response: [""]
|
|
154
|
+
}],
|
|
155
|
+
[{
|
|
156
|
+
type: "system",
|
|
157
|
+
text: "System message ~!@#$%^&*()\n*"
|
|
158
|
+
}, {
|
|
159
|
+
type: "user",
|
|
160
|
+
text: "Message 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"
|
|
161
|
+
}, {
|
|
162
|
+
type: "model",
|
|
163
|
+
response: ["Result 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"]
|
|
164
|
+
}],
|
|
165
|
+
[{
|
|
166
|
+
type: "system",
|
|
167
|
+
text: "System message ~!@#$%^&*()\n*"
|
|
168
|
+
}, {
|
|
169
|
+
type: "user",
|
|
170
|
+
text: "Message 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"
|
|
171
|
+
}, {
|
|
172
|
+
type: "model",
|
|
173
|
+
response: ["Result 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"]
|
|
174
|
+
}, {
|
|
175
|
+
type: "user",
|
|
176
|
+
text: "Message2 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"
|
|
177
|
+
}, {
|
|
178
|
+
type: "model",
|
|
179
|
+
response: [""]
|
|
180
|
+
}],
|
|
181
|
+
[{
|
|
182
|
+
type: "system",
|
|
183
|
+
text: "System message ~!@#$%^&*()\n*"
|
|
184
|
+
}, {
|
|
185
|
+
type: "user",
|
|
186
|
+
text: "Message 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"
|
|
187
|
+
}, {
|
|
188
|
+
type: "model",
|
|
189
|
+
response: ["Result 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"]
|
|
190
|
+
}, {
|
|
191
|
+
type: "user",
|
|
192
|
+
text: "Message2 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"
|
|
193
|
+
}, {
|
|
194
|
+
type: "model",
|
|
195
|
+
response: ["Result2 1234567890!@#$%^&*()_+-=[]{}|\\:;\"',./<>?`~"]
|
|
196
|
+
}]
|
|
197
|
+
];
|
|
198
|
+
function removeLeadingBos(llamaText) {
|
|
199
|
+
if (llamaText.values.length === 0)
|
|
200
|
+
return llamaText;
|
|
201
|
+
const firstValue = llamaText.values[0];
|
|
202
|
+
if (firstValue instanceof SpecialToken && firstValue.value === "BOS")
|
|
203
|
+
return LlamaText(llamaText.values.slice(1));
|
|
204
|
+
return llamaText;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isJinjaTemplateEquivalentToSpecializedChatWrapper.js","sourceRoot":"","sources":["../../../src/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { LlamaChatWrapper } from "../LlamaChatWrapper.js";
|
|
2
|
+
import { ChatMLChatWrapper } from "../ChatMLChatWrapper.js";
|
|
3
|
+
import { GeneralChatWrapper } from "../GeneralChatWrapper.js";
|
|
4
|
+
import { FalconChatWrapper } from "../FalconChatWrapper.js";
|
|
5
|
+
import { FunctionaryChatWrapper } from "../FunctionaryChatWrapper.js";
|
|
6
|
+
import { AlpacaChatWrapper } from "../AlpacaChatWrapper.js";
|
|
7
|
+
import { GemmaChatWrapper } from "../GemmaChatWrapper.js";
|
|
8
|
+
import { JinjaTemplateChatWrapper } from "../generic/JinjaTemplateChatWrapper.js";
|
|
9
|
+
import { TemplateChatWrapper } from "../generic/TemplateChatWrapper.js";
|
|
10
|
+
import { Tokenizer } from "../../types.js";
|
|
11
|
+
import type { GgufFileInfo } from "../../gguf/types/GgufFileInfoTypes.js";
|
|
12
|
+
export declare const specializedChatWrapperTypeNames: readonly ["general", "llamaChat", "alpacaChat", "functionary", "chatML", "falconChat", "gemma"];
|
|
13
|
+
export type SpecializedChatWrapperTypeName = (typeof specializedChatWrapperTypeNames)[number];
|
|
14
|
+
export declare const templateChatWrapperTypeNames: readonly ["template", "jinjaTemplate"];
|
|
15
|
+
export type TemplateChatWrapperTypeName = (typeof templateChatWrapperTypeNames)[number];
|
|
16
|
+
export declare const resolvableChatWrapperTypeNames: readonly ["auto", "general", "llamaChat", "alpacaChat", "functionary", "chatML", "falconChat", "gemma", "template", "jinjaTemplate"];
|
|
17
|
+
export type ResolvableChatWrapperTypeName = (typeof resolvableChatWrapperTypeNames)[number];
|
|
18
|
+
declare const chatWrappers: {
|
|
19
|
+
readonly general: typeof GeneralChatWrapper;
|
|
20
|
+
readonly llamaChat: typeof LlamaChatWrapper;
|
|
21
|
+
readonly alpacaChat: typeof AlpacaChatWrapper;
|
|
22
|
+
readonly functionary: typeof FunctionaryChatWrapper;
|
|
23
|
+
readonly chatML: typeof ChatMLChatWrapper;
|
|
24
|
+
readonly falconChat: typeof FalconChatWrapper;
|
|
25
|
+
readonly gemma: typeof GemmaChatWrapper;
|
|
26
|
+
readonly template: typeof TemplateChatWrapper;
|
|
27
|
+
readonly jinjaTemplate: typeof JinjaTemplateChatWrapper;
|
|
28
|
+
};
|
|
29
|
+
export type ResolveChatWrapperOptions = {
|
|
30
|
+
/**
|
|
31
|
+
* Resolve to a specific chat wrapper type.
|
|
32
|
+
* You better not set this option unless you need to force a specific chat wrapper type.
|
|
33
|
+
*
|
|
34
|
+
* Defaults to `"auto"`.
|
|
35
|
+
*/
|
|
36
|
+
type?: "auto" | SpecializedChatWrapperTypeName | TemplateChatWrapperTypeName;
|
|
37
|
+
bosString?: string | null;
|
|
38
|
+
filename?: string;
|
|
39
|
+
fileInfo?: GgufFileInfo;
|
|
40
|
+
tokenizer?: Tokenizer;
|
|
41
|
+
customWrapperSettings?: {
|
|
42
|
+
[wrapper in keyof typeof chatWrappers]?: ConstructorParameters<(typeof chatWrappers)[wrapper]>[0];
|
|
43
|
+
};
|
|
44
|
+
warningLogs?: boolean;
|
|
45
|
+
fallbackToOtherWrappersOnJinjaError?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Don't resolve to a Jinja chat wrapper unless `type` is set to a Jinja chat wrapper type.
|
|
48
|
+
*/
|
|
49
|
+
noJinja?: boolean;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Resolve to a chat wrapper instance based on the provided information.
|
|
53
|
+
* The more information provided, the better the resolution will be (except for `type`).
|
|
54
|
+
*
|
|
55
|
+
* It's recommended to not set `type` to a specific chat wrapper in order for the resolution to be more flexible, but it is useful for when
|
|
56
|
+
* you need to provide the ability to force a specific chat wrapper type.
|
|
57
|
+
* Note that when setting `type` to a generic chat wrapper type (such as `"template"` or `"jinjaTemplate"`), the `customWrapperSettings`
|
|
58
|
+
* must contain the necessary settings for that chat wrapper to be created.
|
|
59
|
+
*
|
|
60
|
+
* When loading a Jinja chat template from either `fileInfo` or `customWrapperSettings.jinjaTemplate.template`,
|
|
61
|
+
* if the chat template format is invalid, it fallbacks to resolve other chat wrappers,
|
|
62
|
+
* unless `fallbackToOtherWrappersOnJinjaError` is set to `false` (in which case, it will throw an error).
|
|
63
|
+
*/
|
|
64
|
+
export declare function resolveChatWrapper({ type, bosString, filename, fileInfo, tokenizer, customWrapperSettings, warningLogs, fallbackToOtherWrappersOnJinjaError, noJinja }: ResolveChatWrapperOptions): any;
|
|
65
|
+
export declare function isSpecializedChatWrapperType(type: string): type is SpecializedChatWrapperTypeName;
|
|
66
|
+
export declare function isTemplateChatWrapperType(type: string): type is TemplateChatWrapperTypeName;
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { parseModelFileName } from "../../utils/parseModelFileName.js";
|
|
2
|
+
import { LlamaChatWrapper } from "../LlamaChatWrapper.js";
|
|
3
|
+
import { ChatMLChatWrapper } from "../ChatMLChatWrapper.js";
|
|
4
|
+
import { GeneralChatWrapper } from "../GeneralChatWrapper.js";
|
|
5
|
+
import { FalconChatWrapper } from "../FalconChatWrapper.js";
|
|
6
|
+
import { FunctionaryChatWrapper } from "../FunctionaryChatWrapper.js";
|
|
7
|
+
import { AlpacaChatWrapper } from "../AlpacaChatWrapper.js";
|
|
8
|
+
import { GemmaChatWrapper } from "../GemmaChatWrapper.js";
|
|
9
|
+
import { JinjaTemplateChatWrapper } from "../generic/JinjaTemplateChatWrapper.js";
|
|
10
|
+
import { TemplateChatWrapper } from "../generic/TemplateChatWrapper.js";
|
|
11
|
+
import { getConsoleLogPrefix } from "../../utils/getConsoleLogPrefix.js";
|
|
12
|
+
import { isJinjaTemplateEquivalentToSpecializedChatWrapper } from "./isJinjaTemplateEquivalentToSpecializedChatWrapper.js";
|
|
13
|
+
export const specializedChatWrapperTypeNames = Object.freeze([
|
|
14
|
+
"general", "llamaChat", "alpacaChat", "functionary", "chatML", "falconChat", "gemma"
|
|
15
|
+
]);
|
|
16
|
+
export const templateChatWrapperTypeNames = Object.freeze([
|
|
17
|
+
"template", "jinjaTemplate"
|
|
18
|
+
]);
|
|
19
|
+
export const resolvableChatWrapperTypeNames = Object.freeze([
|
|
20
|
+
"auto",
|
|
21
|
+
...specializedChatWrapperTypeNames,
|
|
22
|
+
...templateChatWrapperTypeNames
|
|
23
|
+
]);
|
|
24
|
+
const chatWrappers = {
|
|
25
|
+
"general": GeneralChatWrapper,
|
|
26
|
+
"llamaChat": LlamaChatWrapper,
|
|
27
|
+
"alpacaChat": AlpacaChatWrapper,
|
|
28
|
+
"functionary": FunctionaryChatWrapper,
|
|
29
|
+
"chatML": ChatMLChatWrapper,
|
|
30
|
+
"falconChat": FalconChatWrapper,
|
|
31
|
+
"gemma": GemmaChatWrapper,
|
|
32
|
+
"template": TemplateChatWrapper,
|
|
33
|
+
"jinjaTemplate": JinjaTemplateChatWrapper
|
|
34
|
+
};
|
|
35
|
+
const chatWrapperToConfigType = new Map(Object.entries(chatWrappers)
|
|
36
|
+
.map(([configType, Wrapper]) => ([Wrapper, configType])));
|
|
37
|
+
/**
|
|
38
|
+
* Resolve to a chat wrapper instance based on the provided information.
|
|
39
|
+
* The more information provided, the better the resolution will be (except for `type`).
|
|
40
|
+
*
|
|
41
|
+
* It's recommended to not set `type` to a specific chat wrapper in order for the resolution to be more flexible, but it is useful for when
|
|
42
|
+
* you need to provide the ability to force a specific chat wrapper type.
|
|
43
|
+
* Note that when setting `type` to a generic chat wrapper type (such as `"template"` or `"jinjaTemplate"`), the `customWrapperSettings`
|
|
44
|
+
* must contain the necessary settings for that chat wrapper to be created.
|
|
45
|
+
*
|
|
46
|
+
* When loading a Jinja chat template from either `fileInfo` or `customWrapperSettings.jinjaTemplate.template`,
|
|
47
|
+
* if the chat template format is invalid, it fallbacks to resolve other chat wrappers,
|
|
48
|
+
* unless `fallbackToOtherWrappersOnJinjaError` is set to `false` (in which case, it will throw an error).
|
|
49
|
+
*/
|
|
50
|
+
export function resolveChatWrapper({ type = "auto", bosString, filename, fileInfo, tokenizer, customWrapperSettings, warningLogs = true, fallbackToOtherWrappersOnJinjaError = true, noJinja = false }) {
|
|
51
|
+
function createSpecializedChatWrapper(specializedChatWrapper, defaultSettings = {}) {
|
|
52
|
+
const chatWrapperConfigType = chatWrapperToConfigType.get(specializedChatWrapper);
|
|
53
|
+
const chatWrapperSettings = customWrapperSettings?.[chatWrapperConfigType];
|
|
54
|
+
return new specializedChatWrapper({
|
|
55
|
+
...(defaultSettings ?? {}),
|
|
56
|
+
...(chatWrapperSettings ?? {})
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (type !== "auto" && type != null) {
|
|
60
|
+
if (isTemplateChatWrapperType(type)) {
|
|
61
|
+
const Wrapper = chatWrappers[type];
|
|
62
|
+
if (isClassReference(Wrapper, TemplateChatWrapper)) {
|
|
63
|
+
const wrapperSettings = customWrapperSettings?.template;
|
|
64
|
+
if (wrapperSettings == null || wrapperSettings?.template == null || wrapperSettings?.historyTemplate == null ||
|
|
65
|
+
wrapperSettings?.modelRoleName == null || wrapperSettings?.userRoleName == null) {
|
|
66
|
+
if (warningLogs)
|
|
67
|
+
console.warn(getConsoleLogPrefix() + "Template chat wrapper settings must have a template, historyTemplate, modelRoleName, and userRoleName. Falling back to resolve other chat wrapper types.");
|
|
68
|
+
}
|
|
69
|
+
else
|
|
70
|
+
return new TemplateChatWrapper(wrapperSettings);
|
|
71
|
+
}
|
|
72
|
+
else if (isClassReference(Wrapper, JinjaTemplateChatWrapper)) {
|
|
73
|
+
const jinjaTemplate = customWrapperSettings?.jinjaTemplate?.template ?? fileInfo?.metadata?.tokenizer?.chat_template;
|
|
74
|
+
if (jinjaTemplate == null) {
|
|
75
|
+
if (warningLogs)
|
|
76
|
+
console.warn(getConsoleLogPrefix() + "Jinja template chat wrapper received no template. Falling back to resolve other chat wrapper types.");
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
try {
|
|
80
|
+
return new JinjaTemplateChatWrapper({
|
|
81
|
+
...(customWrapperSettings?.jinjaTemplate ?? {}),
|
|
82
|
+
template: jinjaTemplate
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
if (!fallbackToOtherWrappersOnJinjaError)
|
|
87
|
+
throw err;
|
|
88
|
+
else if (warningLogs)
|
|
89
|
+
console.error(getConsoleLogPrefix() + "Error creating Jinja template chat wrapper. Falling back to resolve other chat wrappers. Error:", err);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else
|
|
94
|
+
void (Wrapper);
|
|
95
|
+
}
|
|
96
|
+
else if (Object.hasOwn(chatWrappers, type)) {
|
|
97
|
+
const Wrapper = chatWrappers[type];
|
|
98
|
+
const wrapperSettings = customWrapperSettings?.[type];
|
|
99
|
+
return new Wrapper(wrapperSettings);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const modelJinjaTemplate = customWrapperSettings?.jinjaTemplate?.template ?? fileInfo?.metadata?.tokenizer?.chat_template;
|
|
103
|
+
if (!noJinja && modelJinjaTemplate != null && modelJinjaTemplate.trim() !== "") {
|
|
104
|
+
const jinjaTemplateChatWrapperOptions = {
|
|
105
|
+
...(customWrapperSettings?.jinjaTemplate ?? {}),
|
|
106
|
+
template: modelJinjaTemplate
|
|
107
|
+
};
|
|
108
|
+
for (const specializedChatWrapperTypeName of specializedChatWrapperTypeNames) {
|
|
109
|
+
const Wrapper = chatWrappers[specializedChatWrapperTypeName];
|
|
110
|
+
const wrapperSettings = customWrapperSettings?.[specializedChatWrapperTypeName];
|
|
111
|
+
const testOptionConfigurations = Wrapper._getOptionConfigurationsToTestIfCanSupersedeJinjaTemplate?.() ?? [];
|
|
112
|
+
if (testOptionConfigurations.length === 0)
|
|
113
|
+
testOptionConfigurations.push({});
|
|
114
|
+
for (const testConfiguration of testOptionConfigurations) {
|
|
115
|
+
const testChatWrapperSettings = {
|
|
116
|
+
...(wrapperSettings ?? {}),
|
|
117
|
+
...(testConfiguration ?? {})
|
|
118
|
+
};
|
|
119
|
+
const chatWrapper = new Wrapper(testChatWrapperSettings);
|
|
120
|
+
if (isJinjaTemplateEquivalentToSpecializedChatWrapper(jinjaTemplateChatWrapperOptions, chatWrapper, tokenizer))
|
|
121
|
+
return new Wrapper(testChatWrapperSettings);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (!fallbackToOtherWrappersOnJinjaError)
|
|
125
|
+
return new JinjaTemplateChatWrapper(jinjaTemplateChatWrapperOptions);
|
|
126
|
+
try {
|
|
127
|
+
return new JinjaTemplateChatWrapper(jinjaTemplateChatWrapperOptions);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
console.error(getConsoleLogPrefix() + "Error creating Jinja template chat wrapper. Falling back to resolve other chat wrappers. Error:", err);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// try to find a pattern in the Jinja template to resolve to a specialized chat wrapper,
|
|
134
|
+
// with a logic similar to `llama.cpp`'s `llama_chat_apply_template_internal` function
|
|
135
|
+
if (modelJinjaTemplate != null && modelJinjaTemplate.trim() !== "") {
|
|
136
|
+
if (modelJinjaTemplate.includes("<|im_start|>"))
|
|
137
|
+
return createSpecializedChatWrapper(ChatMLChatWrapper);
|
|
138
|
+
else if (modelJinjaTemplate.includes("[INST]"))
|
|
139
|
+
return createSpecializedChatWrapper(LlamaChatWrapper, {
|
|
140
|
+
addSpaceBeforeEos: modelJinjaTemplate.includes("' ' + eos_token")
|
|
141
|
+
});
|
|
142
|
+
else if (modelJinjaTemplate.includes("<start_of_turn>"))
|
|
143
|
+
return createSpecializedChatWrapper(GemmaChatWrapper);
|
|
144
|
+
}
|
|
145
|
+
if (filename != null) {
|
|
146
|
+
const { name, subType, fileType, otherInfo } = parseModelFileName(filename);
|
|
147
|
+
if (fileType?.toLowerCase() === "gguf") {
|
|
148
|
+
const lowercaseName = name?.toLowerCase();
|
|
149
|
+
const lowercaseSubType = subType?.toLowerCase();
|
|
150
|
+
const splitLowercaseSubType = (lowercaseSubType?.split("-") ?? []).concat(otherInfo.map(info => info.toLowerCase()));
|
|
151
|
+
const firstSplitLowercaseSubType = splitLowercaseSubType[0];
|
|
152
|
+
if (lowercaseName === "llama") {
|
|
153
|
+
if (splitLowercaseSubType.includes("chat"))
|
|
154
|
+
return createSpecializedChatWrapper(LlamaChatWrapper);
|
|
155
|
+
return createSpecializedChatWrapper(GeneralChatWrapper);
|
|
156
|
+
}
|
|
157
|
+
else if (lowercaseName === "codellama")
|
|
158
|
+
return createSpecializedChatWrapper(GeneralChatWrapper);
|
|
159
|
+
else if (lowercaseName === "yarn" && firstSplitLowercaseSubType === "llama")
|
|
160
|
+
return createSpecializedChatWrapper(LlamaChatWrapper);
|
|
161
|
+
else if (lowercaseName === "orca")
|
|
162
|
+
return createSpecializedChatWrapper(ChatMLChatWrapper);
|
|
163
|
+
else if (lowercaseName === "phind" && lowercaseSubType === "codellama")
|
|
164
|
+
return createSpecializedChatWrapper(LlamaChatWrapper);
|
|
165
|
+
else if (lowercaseName === "mistral")
|
|
166
|
+
return createSpecializedChatWrapper(GeneralChatWrapper);
|
|
167
|
+
else if (firstSplitLowercaseSubType === "llama")
|
|
168
|
+
return createSpecializedChatWrapper(LlamaChatWrapper);
|
|
169
|
+
else if (lowercaseSubType === "alpaca")
|
|
170
|
+
return createSpecializedChatWrapper(AlpacaChatWrapper);
|
|
171
|
+
else if (lowercaseName === "functionary")
|
|
172
|
+
return createSpecializedChatWrapper(FunctionaryChatWrapper);
|
|
173
|
+
else if (lowercaseName === "dolphin" && splitLowercaseSubType.includes("mistral"))
|
|
174
|
+
return createSpecializedChatWrapper(ChatMLChatWrapper);
|
|
175
|
+
else if (lowercaseName === "gemma")
|
|
176
|
+
return createSpecializedChatWrapper(GemmaChatWrapper);
|
|
177
|
+
else if (splitLowercaseSubType.includes("chatml"))
|
|
178
|
+
return createSpecializedChatWrapper(ChatMLChatWrapper);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (fileInfo != null) {
|
|
182
|
+
const arch = fileInfo.metadata.general?.architecture;
|
|
183
|
+
if (arch === "llama")
|
|
184
|
+
return createSpecializedChatWrapper(GeneralChatWrapper);
|
|
185
|
+
else if (arch === "falcon")
|
|
186
|
+
return createSpecializedChatWrapper(FalconChatWrapper);
|
|
187
|
+
}
|
|
188
|
+
if (bosString === "" || bosString == null)
|
|
189
|
+
return null;
|
|
190
|
+
if ("<s>[INST] <<SYS>>\n".startsWith(bosString)) {
|
|
191
|
+
return createSpecializedChatWrapper(LlamaChatWrapper);
|
|
192
|
+
}
|
|
193
|
+
else if ("<|im_start|>system\n".startsWith(bosString)) {
|
|
194
|
+
return createSpecializedChatWrapper(ChatMLChatWrapper);
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
export function isSpecializedChatWrapperType(type) {
|
|
199
|
+
return specializedChatWrapperTypeNames.includes(type);
|
|
200
|
+
}
|
|
201
|
+
export function isTemplateChatWrapperType(type) {
|
|
202
|
+
return templateChatWrapperTypeNames.includes(type);
|
|
203
|
+
}
|
|
204
|
+
// this is needed because TypeScript guards don't work automatically with class references
|
|
205
|
+
function isClassReference(value, classReference) {
|
|
206
|
+
return value === classReference;
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=resolveChatWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveChatWrapper.js","sourceRoot":"","sources":["../../../src/chatWrappers/utils/resolveChatWrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/cli.js
CHANGED
|
@@ -14,7 +14,7 @@ import { ClearCommand } from "./commands/ClearCommand.js";
|
|
|
14
14
|
import { ChatCommand } from "./commands/ChatCommand.js";
|
|
15
15
|
import { CompleteCommand } from "./commands/CompleteCommand.js";
|
|
16
16
|
import { InfillCommand } from "./commands/InfillCommand.js";
|
|
17
|
-
import { InspectCommand } from "./commands/InspectCommand.js";
|
|
17
|
+
import { InspectCommand } from "./commands/inspect/InspectCommand.js";
|
|
18
18
|
import { DebugCommand } from "./commands/DebugCommand.js";
|
|
19
19
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
20
20
|
const packageJson = fs.readJSONSync(path.join(__dirname, "..", "..", "package.json"));
|
package/dist/cli/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,sDAAsD;AACtD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAClC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,sDAAsD;AACtD,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;AAEtF,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAE1C,IAAI;KACC,UAAU,CAAC,UAAU,CAAC;KACtB,KAAK,CAAC,+BAA+B,CAAC;KACtC,OAAO,CAAC,eAAe,CAAC;KACxB,OAAO,CAAC,YAAY,CAAC;KACrB,OAAO,CAAC,YAAY,CAAC;KACrB,OAAO,CAAC,WAAW,CAAC;KACpB,OAAO,CAAC,eAAe,CAAC;KACxB,OAAO,CAAC,aAAa,CAAC;KACtB,OAAO,CAAC,cAAc,CAAC;KACvB,OAAO,CAAC,oBAAoB,CAAC;KAC7B,OAAO,CAAC,YAAY,CAAC;KACrB,iBAAiB,EAAE;KACnB,aAAa,CAAC,CAAC,CAAC;KAChB,MAAM,EAAE;KACR,cAAc,EAAE;KAChB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;KACrB,IAAI,CAAC,GAAG,CAAC;KACT,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;KAClB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;KACzC,KAAK,EAAE,CAAC"}
|
|
@@ -30,7 +30,7 @@ export const BuildCommand = {
|
|
|
30
30
|
.option("nodeTarget", {
|
|
31
31
|
alias: "t",
|
|
32
32
|
type: "string",
|
|
33
|
-
description: "The Node.js version to compile llama.cpp for. Example: v18.0.0"
|
|
33
|
+
description: "The Node.js version to compile llama.cpp for. Example: `v18.0.0`"
|
|
34
34
|
})
|
|
35
35
|
.option("gpu", {
|
|
36
36
|
type: "string",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,yCAAyC,CAAC;AACxE,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,yBAAyB,EAAE,sBAAsB,EAAE,IAAI,EAAE,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,8BAA8B,EAAC,MAAM,wDAAwD,CAAC;AACtG,OAAO,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAC,yBAAyB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAC,gCAAgC,EAAE,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AACjH,OAAO,EAAyB,sBAAsB,EAAE,0BAA0B,EAAC,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAC,oBAAoB,EAAC,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAC,yBAAyB,EAAC,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAC,MAAM,yCAAyC,CAAC;AAYxE,MAAM,CAAC,MAAM,YAAY,GAAwC;IAC7D,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,4CAA4C;IACtD,OAAO,CAAC,KAAK;QACT,OAAO,KAAK;aACP,MAAM,CAAC,MAAM,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,WAAW,EAAE,2CAA2C;SAC3D,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"BuildCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/BuildCommand.ts"],"names":[],"mappings":"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"}
|