node-llama-cpp 3.17.1 → 3.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/bindings/AddonTypes.d.ts +13 -0
  2. package/dist/bindings/Llama.js +20 -2
  3. package/dist/bindings/Llama.js.map +1 -1
  4. package/dist/bindings/getLlama.d.ts +1 -1
  5. package/dist/bindings/getLlama.js +19 -8
  6. package/dist/bindings/getLlama.js.map +1 -1
  7. package/dist/bindings/utils/compileLLamaCpp.d.ts +2 -1
  8. package/dist/bindings/utils/compileLLamaCpp.js +8 -0
  9. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  10. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +1 -1
  11. package/dist/bindings/utils/getLlamaGpuTypes.js +2 -0
  12. package/dist/bindings/utils/getLlamaGpuTypes.js.map +1 -1
  13. package/dist/chatWrappers/QwenChatWrapper.d.ts +7 -0
  14. package/dist/chatWrappers/QwenChatWrapper.js +176 -56
  15. package/dist/chatWrappers/QwenChatWrapper.js.map +1 -1
  16. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +127 -88
  17. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
  18. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.d.ts +16 -10
  19. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js +115 -5
  20. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js.map +1 -1
  21. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js +1 -0
  22. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js.map +1 -1
  23. package/dist/cli/commands/ChatCommand.d.ts +3 -0
  24. package/dist/cli/commands/ChatCommand.js +34 -5
  25. package/dist/cli/commands/ChatCommand.js.map +1 -1
  26. package/dist/cli/commands/CompleteCommand.d.ts +3 -0
  27. package/dist/cli/commands/CompleteCommand.js +34 -4
  28. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  29. package/dist/cli/commands/InfillCommand.d.ts +3 -0
  30. package/dist/cli/commands/InfillCommand.js +34 -4
  31. package/dist/cli/commands/InfillCommand.js.map +1 -1
  32. package/dist/cli/commands/OnPostInstallCommand.js +31 -4
  33. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
  34. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.d.ts +3 -0
  35. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +28 -1
  36. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -1
  37. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +5 -0
  38. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  39. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +51 -4
  40. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  41. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +3 -0
  42. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +46 -5
  43. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
  44. package/dist/cli/utils/interactivelyAskForModel.d.ts +4 -1
  45. package/dist/cli/utils/interactivelyAskForModel.js +21 -7
  46. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
  47. package/dist/cli/utils/packageJsonConfig.d.ts +6 -0
  48. package/dist/cli/utils/packageJsonConfig.js +51 -0
  49. package/dist/cli/utils/packageJsonConfig.js.map +1 -0
  50. package/dist/cli/utils/packageManager.d.ts +1 -0
  51. package/dist/cli/utils/packageManager.js +15 -0
  52. package/dist/cli/utils/packageManager.js.map +1 -0
  53. package/dist/cli/utils/printCommonInfoLines.js +9 -0
  54. package/dist/cli/utils/printCommonInfoLines.js.map +1 -1
  55. package/dist/cli/utils/resolveCommandGgufPath.d.ts +4 -1
  56. package/dist/cli/utils/resolveCommandGgufPath.js +9 -2
  57. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
  58. package/dist/cli/utils/resolveNpmrcConfig.d.ts +18 -0
  59. package/dist/cli/utils/resolveNpmrcConfig.js +129 -0
  60. package/dist/cli/utils/resolveNpmrcConfig.js.map +1 -0
  61. package/dist/config.d.ts +6 -1
  62. package/dist/config.js +12 -2
  63. package/dist/config.js.map +1 -1
  64. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +8 -2
  65. package/dist/evaluator/LlamaChat/LlamaChat.js +99 -6
  66. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  67. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +8 -2
  68. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
  69. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +8 -2
  70. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  71. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +91 -0
  72. package/dist/evaluator/LlamaContext/LlamaContext.js +215 -19
  73. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  74. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.d.ts +27 -0
  75. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js +130 -0
  76. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js.map +1 -0
  77. package/dist/evaluator/LlamaContext/types.d.ts +32 -1
  78. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +33 -0
  79. package/dist/evaluator/LlamaModel/LlamaModel.js +24 -3
  80. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  81. package/dist/gguf/insights/GgufInsights.d.ts +12 -1
  82. package/dist/gguf/insights/GgufInsights.js +246 -49
  83. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  84. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +13 -4
  85. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +17 -5
  86. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -1
  87. package/dist/gguf/insights/utils/resolveContextContextSizeOption.d.ts +4 -1
  88. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js +7 -1
  89. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -1
  90. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.d.ts +4 -1
  91. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +16 -4
  92. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -1
  93. package/dist/gguf/types/GgufMetadataTypes.d.ts +18 -2
  94. package/dist/gguf/types/GgufMetadataTypes.js +6 -0
  95. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  96. package/dist/gguf/types/GgufTensorInfoTypes.d.ts +4 -2
  97. package/dist/gguf/types/GgufTensorInfoTypes.js +11 -1
  98. package/dist/gguf/types/GgufTensorInfoTypes.js.map +1 -1
  99. package/dist/gguf/utils/getGgufFileTypeName.d.ts +1 -1
  100. package/dist/gguf/utils/ggufQuantNames.js +1 -0
  101. package/dist/gguf/utils/ggufQuantNames.js.map +1 -1
  102. package/dist/tsconfig.tsbuildinfo +1 -1
  103. package/dist/types.d.ts +1 -0
  104. package/dist/utils/getBuildDefaults.d.ts +1 -1
  105. package/dist/utils/getFirstWritableDir.d.ts +8 -0
  106. package/dist/utils/getFirstWritableDir.js +60 -0
  107. package/dist/utils/getFirstWritableDir.js.map +1 -0
  108. package/dist/utils/getTempDir.d.ts +10 -0
  109. package/dist/utils/getTempDir.js +121 -0
  110. package/dist/utils/getTempDir.js.map +1 -0
  111. package/dist/utils/prettyPrintObject.js +1 -1
  112. package/dist/utils/prettyPrintObject.js.map +1 -1
  113. package/dist/utils/resolveModelFile.js +19 -8
  114. package/dist/utils/resolveModelFile.js.map +1 -1
  115. package/llama/addon/AddonContext.cpp +182 -0
  116. package/llama/addon/AddonContext.h +27 -0
  117. package/llama/addon/addon.cpp +1 -0
  118. package/llama/binariesGithubRelease.json +1 -1
  119. package/llama/gitRelease.bundle +0 -0
  120. package/llama/llama.cpp.info.json +1 -1
  121. package/package.json +24 -24
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/ChatWrapper.ts","../src/apiDocsIndex.ts","../src/commands.ts","../src/config.ts","../src/consts.ts","../src/state.ts","../src/types.ts","../src/bindings/AddonTypes.ts","../src/bindings/Llama.ts","../src/bindings/consts.ts","../src/bindings/getLlama.ts","../src/bindings/types.ts","../src/bindings/utils/MemoryOrchestrator.ts","../src/bindings/utils/NoBinaryFoundError.ts","../src/bindings/utils/asyncEvery.ts","../src/bindings/utils/asyncSome.ts","../src/bindings/utils/binariesGithubRelease.ts","../src/bindings/utils/clearAllLocalBuilds.ts","../src/bindings/utils/cloneLlamaCppRepo.ts","../src/bindings/utils/compileLLamaCpp.ts","../src/bindings/utils/detectAvailableComputeLayers.ts","../src/bindings/utils/detectBuildTools.ts","../src/bindings/utils/detectGlibc.ts","../src/bindings/utils/disposeBeforeExit.ts","../src/bindings/utils/getBestComputeLayersAvailable.ts","../src/bindings/utils/getBuildFolderNameForBuildOptions.ts","../src/bindings/utils/getCanUsePrebuiltBinaries.ts","../src/bindings/utils/getExampleUsageCodeOfGetLlama.ts","../src/bindings/utils/getGpuTypesToUseForOption.ts","../src/bindings/utils/getLinuxDistroInfo.ts","../src/bindings/utils/getLlamaGpuTypes.ts","../src/bindings/utils/getLlamaWithoutBackend.ts","../src/bindings/utils/getPlatform.ts","../src/bindings/utils/getPlatformInfo.ts","../src/bindings/utils/hasBuildingFromSourceDependenciesInstalled.ts","../src/bindings/utils/hasFileInPath.ts","../src/bindings/utils/lastBuildInfo.ts","../src/bindings/utils/logBinaryUsageExampleToConsole.ts","../src/bindings/utils/logDistroInstallInstruction.ts","../src/bindings/utils/resolveActualBindingBinaryPath.ts","../src/bindings/utils/resolveCustomCmakeOptions.ts","../src/bindings/utils/testBindingBinary.ts","../src/bindings/utils/testCmakeBinary.ts","../src/chatWrappers/AlpacaChatWrapper.ts","../src/chatWrappers/ChatMLChatWrapper.ts","../src/chatWrappers/DeepSeekChatWrapper.ts","../src/chatWrappers/EmptyChatWrapper.ts","../src/chatWrappers/FalconChatWrapper.ts","../src/chatWrappers/FunctionaryChatWrapper.ts","../src/chatWrappers/GemmaChatWrapper.ts","../src/chatWrappers/GeneralChatWrapper.ts","../src/chatWrappers/HarmonyChatWrapper.ts","../src/chatWrappers/Llama2ChatWrapper.ts","../src/chatWrappers/Llama3ChatWrapper.ts","../src/chatWrappers/Llama3_1ChatWrapper.ts","../src/chatWrappers/Llama3_2LightweightChatWrapper.ts","../src/chatWrappers/MistralChatWrapper.ts","../src/chatWrappers/QwenChatWrapper.ts","../src/chatWrappers/SeedChatWrapper.ts","../src/chatWrappers/generic/JinjaTemplateChatWrapper.ts","../src/chatWrappers/generic/TemplateChatWrapper.ts","../src/chatWrappers/generic/utils/UniqueIdGenerator.ts","../src/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.ts","../src/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.ts","../src/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.ts","../src/chatWrappers/generic/utils/getFirstValidResult.ts","../src/chatWrappers/generic/utils/squashChatHistoryItems.ts","../src/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.ts","../src/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.ts","../src/chatWrappers/utils/chunkChatItems.ts","../src/chatWrappers/utils/getModelLinageNames.ts","../src/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.ts","../src/chatWrappers/utils/isLlama3_2LightweightModel.ts","../src/chatWrappers/utils/jsonDumps.ts","../src/chatWrappers/utils/resolveChatWrapper.ts","../src/cli/cli.ts","../src/cli/projectTemplates.ts","../src/cli/recommendedModels.ts","../src/cli/startCreateCli.ts","../src/cli/commands/ChatCommand.ts","../src/cli/commands/CompleteCommand.ts","../src/cli/commands/DebugCommand.ts","../src/cli/commands/InfillCommand.ts","../src/cli/commands/InitCommand.ts","../src/cli/commands/OnPostInstallCommand.ts","../src/cli/commands/PullCommand.ts","../src/cli/commands/inspect/InspectCommand.ts","../src/cli/commands/inspect/commands/InspectEstimateCommand.ts","../src/cli/commands/inspect/commands/InspectGgufCommand.ts","../src/cli/commands/inspect/commands/InspectGpuCommand.ts","../src/cli/commands/inspect/commands/InspectMeasureCommand.ts","../src/cli/commands/source/SourceCommand.ts","../src/cli/commands/source/commands/BuildCommand.ts","../src/cli/commands/source/commands/ClearCommand.ts","../src/cli/commands/source/commands/DownloadCommand.ts","../src/cli/utils/ConsoleInteraction.ts","../src/cli/utils/ConsoleTable.ts","../src/cli/utils/basicChooseFromListConsoleInteraction.ts","../src/cli/utils/consolePromptQuestion.ts","../src/cli/utils/getReadablePath.ts","../src/cli/utils/interactivelyAskForModel.ts","../src/cli/utils/isRunningUnderRosetta.ts","../src/cli/utils/logUsedGpuTypeOption.ts","../src/cli/utils/parseXtcArg.ts","../src/cli/utils/printCommonInfoLines.ts","../src/cli/utils/printInfoLine.ts","../src/cli/utils/printModelDestination.ts","../src/cli/utils/projectTemplates.ts","../src/cli/utils/renderModelCompatibilityPercentageWithColors.ts","../src/cli/utils/resolveCommandGgufPath.ts","../src/cli/utils/resolveHeaderFlag.ts","../src/cli/utils/resolveModelRecommendationFileOptions.ts","../src/cli/utils/splitAnsiToLines.ts","../src/cli/utils/toBytes.ts","../src/cli/utils/withCliCommandDescriptionDocsUrl.ts","../src/evaluator/LlamaCompletion.ts","../src/evaluator/LlamaEmbedding.ts","../src/evaluator/LlamaEmbeddingContext.ts","../src/evaluator/LlamaGrammar.ts","../src/evaluator/LlamaGrammarEvaluationState.ts","../src/evaluator/LlamaJsonSchemaGrammar.ts","../src/evaluator/LlamaRankingContext.ts","../src/evaluator/TokenBias.ts","../src/evaluator/TokenMeter.ts","../src/evaluator/LlamaChat/LlamaChat.ts","../src/evaluator/LlamaChat/utils/FunctionCallNameGrammar.ts","../src/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.ts","../src/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.ts","../src/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.ts","../src/evaluator/LlamaChatSession/LlamaChatSession.ts","../src/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.ts","../src/evaluator/LlamaChatSession/utils/defineChatSessionFunction.ts","../src/evaluator/LlamaContext/LlamaContext.ts","../src/evaluator/LlamaContext/LlamaSampler.ts","../src/evaluator/LlamaContext/TokenPredictor.ts","../src/evaluator/LlamaContext/types.ts","../src/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.ts","../src/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.ts","../src/evaluator/LlamaContext/utils/padSafeContextSize.ts","../src/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.ts","../src/evaluator/LlamaModel/LlamaModel.ts","../src/evaluator/LlamaModel/utils/TokenAttributes.ts","../src/evaluator/utils/chunkDocument.ts","../src/gguf/consts.ts","../src/gguf/readGgufFileInfo.ts","../src/gguf/errors/InvalidGgufMagicError.ts","../src/gguf/errors/UnsupportedGgufValueTypeError.ts","../src/gguf/fileReaders/GgufFileReader.ts","../src/gguf/fileReaders/GgufFsFileReader.ts","../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts","../src/gguf/insights/GgufInsights.ts","../src/gguf/insights/GgufInsightsConfigurationResolver.ts","../src/gguf/insights/GgufInsightsTokens.ts","../src/gguf/insights/utils/getRamUsageFromUnifiedVram.ts","../src/gguf/insights/utils/resolveContextContextSizeOption.ts","../src/gguf/insights/utils/resolveModelGpuLayersOption.ts","../src/gguf/insights/utils/scoreLevels.ts","../src/gguf/parser/GgufV2Parser.ts","../src/gguf/parser/GgufV3Parser.ts","../src/gguf/parser/parseGguf.ts","../src/gguf/types/GgufFileInfoTypes.ts","../src/gguf/types/GgufMetadataTypes.ts","../src/gguf/types/GgufTensorInfoTypes.ts","../src/gguf/utils/GgufReadOffset.ts","../src/gguf/utils/convertMetadataKeyValueRecordToNestedObject.ts","../src/gguf/utils/getGgufFileTypeName.ts","../src/gguf/utils/getGgufMetadataArchitectureData.ts","../src/gguf/utils/getGgufMetadataKeyValue.ts","../src/gguf/utils/ggufQuantNames.ts","../src/gguf/utils/normalizeGgufDownloadUrl.ts","../src/gguf/utils/resolveBinarySplitGgufPartUrls.ts","../src/gguf/utils/resolveSplitGgufParts.ts","../src/utils/DisposeGuard.ts","../src/utils/InsufficientMemoryError.ts","../src/utils/LlamaText.ts","../src/utils/LruCache.ts","../src/utils/OpenAIFormat.ts","../src/utils/OverridesObject.ts","../src/utils/ReplHistory.ts","../src/utils/StopGenerationDetector.ts","../src/utils/ThreadsSplitter.ts","../src/utils/TokenStreamRegulator.ts","../src/utils/UnsupportedError.ts","../src/utils/appendUserMessageToChatHistory.ts","../src/utils/clearTempFolder.ts","../src/utils/cmake.ts","../src/utils/compareTokens.ts","../src/utils/createModelDownloader.ts","../src/utils/findBestOption.ts","../src/utils/findCharacterRemovalCountToFitChatHistoryInContext.ts","../src/utils/getBuildDefaults.ts","../src/utils/getChatWrapperSegmentDefinition.ts","../src/utils/getConsoleLogPrefix.ts","../src/utils/getGrammarsFolder.ts","../src/utils/getLlamaClasses.ts","../src/utils/getModuleVersion.ts","../src/utils/getQueuedTokensBeforeStopTrigger.ts","../src/utils/getReadableContextSize.ts","../src/utils/getTypeScriptTypeStringForGbnfJsonSchema.ts","../src/utils/gitReleaseBundles.ts","../src/utils/hashString.ts","../src/utils/includesText.ts","../src/utils/isLockfileActive.ts","../src/utils/isToken.ts","../src/utils/isUrl.ts","../src/utils/mergeUnionTypes.ts","../src/utils/modelDownloadEndpoints.ts","../src/utils/modelFileAccessTokens.ts","../src/utils/optionsMatrix.ts","../src/utils/parseModelFileName.ts","../src/utils/parseModelUri.ts","../src/utils/parseTextTemplate.ts","../src/utils/prettyPrintObject.ts","../src/utils/pushAll.ts","../src/utils/removeNullFields.ts","../src/utils/resolveGithubRelease.ts","../src/utils/resolveLastTokens.ts","../src/utils/resolveModelDestination.ts","../src/utils/resolveModelFile.ts","../src/utils/runtime.ts","../src/utils/safeEventCallback.ts","../src/utils/signalSleep.ts","../src/utils/spawnCommand.ts","../src/utils/tokenizeInput.ts","../src/utils/tokenizerUtils.ts","../src/utils/transformPromisable.ts","../src/utils/truncateTextAndRoundToWords.ts","../src/utils/utilTypes.ts","../src/utils/waitForLockfileRelease.ts","../src/utils/withLockfile.ts","../src/utils/withOra.ts","../src/utils/withProgressLog.ts","../src/utils/withStatusLogs.ts","../src/utils/wrapAbortSignal.ts","../src/utils/gbnfJson/GbnfGrammarGenerator.ts","../src/utils/gbnfJson/GbnfTerminal.ts","../src/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.ts","../src/utils/gbnfJson/types.ts","../src/utils/gbnfJson/terminals/GbnfAnyJson.ts","../src/utils/gbnfJson/terminals/GbnfArray.ts","../src/utils/gbnfJson/terminals/GbnfBoolean.ts","../src/utils/gbnfJson/terminals/GbnfBooleanValue.ts","../src/utils/gbnfJson/terminals/GbnfCommaWhitespace.ts","../src/utils/gbnfJson/terminals/GbnfFormatString.ts","../src/utils/gbnfJson/terminals/GbnfGrammar.ts","../src/utils/gbnfJson/terminals/GbnfInsideStringChar.ts","../src/utils/gbnfJson/terminals/GbnfNull.ts","../src/utils/gbnfJson/terminals/GbnfNumber.ts","../src/utils/gbnfJson/terminals/GbnfNumberValue.ts","../src/utils/gbnfJson/terminals/GbnfObjectMap.ts","../src/utils/gbnfJson/terminals/GbnfOr.ts","../src/utils/gbnfJson/terminals/GbnfRef.ts","../src/utils/gbnfJson/terminals/GbnfRepetition.ts","../src/utils/gbnfJson/terminals/GbnfString.ts","../src/utils/gbnfJson/terminals/GbnfStringValue.ts","../src/utils/gbnfJson/terminals/GbnfVerbatimText.ts","../src/utils/gbnfJson/terminals/GbnfWhitespace.ts","../src/utils/gbnfJson/terminals/gbnfConsts.ts","../src/utils/gbnfJson/utils/GbnfJsonScopeState.ts","../src/utils/gbnfJson/utils/defsScope.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.ts","../src/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.ts"],"version":"5.9.3"}
1
+ {"root":["../src/index.ts","../src/ChatWrapper.ts","../src/apiDocsIndex.ts","../src/commands.ts","../src/config.ts","../src/consts.ts","../src/state.ts","../src/types.ts","../src/bindings/AddonTypes.ts","../src/bindings/Llama.ts","../src/bindings/consts.ts","../src/bindings/getLlama.ts","../src/bindings/types.ts","../src/bindings/utils/MemoryOrchestrator.ts","../src/bindings/utils/NoBinaryFoundError.ts","../src/bindings/utils/asyncEvery.ts","../src/bindings/utils/asyncSome.ts","../src/bindings/utils/binariesGithubRelease.ts","../src/bindings/utils/clearAllLocalBuilds.ts","../src/bindings/utils/cloneLlamaCppRepo.ts","../src/bindings/utils/compileLLamaCpp.ts","../src/bindings/utils/detectAvailableComputeLayers.ts","../src/bindings/utils/detectBuildTools.ts","../src/bindings/utils/detectGlibc.ts","../src/bindings/utils/disposeBeforeExit.ts","../src/bindings/utils/getBestComputeLayersAvailable.ts","../src/bindings/utils/getBuildFolderNameForBuildOptions.ts","../src/bindings/utils/getCanUsePrebuiltBinaries.ts","../src/bindings/utils/getExampleUsageCodeOfGetLlama.ts","../src/bindings/utils/getGpuTypesToUseForOption.ts","../src/bindings/utils/getLinuxDistroInfo.ts","../src/bindings/utils/getLlamaGpuTypes.ts","../src/bindings/utils/getLlamaWithoutBackend.ts","../src/bindings/utils/getPlatform.ts","../src/bindings/utils/getPlatformInfo.ts","../src/bindings/utils/hasBuildingFromSourceDependenciesInstalled.ts","../src/bindings/utils/hasFileInPath.ts","../src/bindings/utils/lastBuildInfo.ts","../src/bindings/utils/logBinaryUsageExampleToConsole.ts","../src/bindings/utils/logDistroInstallInstruction.ts","../src/bindings/utils/resolveActualBindingBinaryPath.ts","../src/bindings/utils/resolveCustomCmakeOptions.ts","../src/bindings/utils/testBindingBinary.ts","../src/bindings/utils/testCmakeBinary.ts","../src/chatWrappers/AlpacaChatWrapper.ts","../src/chatWrappers/ChatMLChatWrapper.ts","../src/chatWrappers/DeepSeekChatWrapper.ts","../src/chatWrappers/EmptyChatWrapper.ts","../src/chatWrappers/FalconChatWrapper.ts","../src/chatWrappers/FunctionaryChatWrapper.ts","../src/chatWrappers/GemmaChatWrapper.ts","../src/chatWrappers/GeneralChatWrapper.ts","../src/chatWrappers/HarmonyChatWrapper.ts","../src/chatWrappers/Llama2ChatWrapper.ts","../src/chatWrappers/Llama3ChatWrapper.ts","../src/chatWrappers/Llama3_1ChatWrapper.ts","../src/chatWrappers/Llama3_2LightweightChatWrapper.ts","../src/chatWrappers/MistralChatWrapper.ts","../src/chatWrappers/QwenChatWrapper.ts","../src/chatWrappers/SeedChatWrapper.ts","../src/chatWrappers/generic/JinjaTemplateChatWrapper.ts","../src/chatWrappers/generic/TemplateChatWrapper.ts","../src/chatWrappers/generic/utils/UniqueIdGenerator.ts","../src/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.ts","../src/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.ts","../src/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.ts","../src/chatWrappers/generic/utils/getFirstValidResult.ts","../src/chatWrappers/generic/utils/squashChatHistoryItems.ts","../src/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.ts","../src/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.ts","../src/chatWrappers/utils/chunkChatItems.ts","../src/chatWrappers/utils/getModelLinageNames.ts","../src/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.ts","../src/chatWrappers/utils/isLlama3_2LightweightModel.ts","../src/chatWrappers/utils/jsonDumps.ts","../src/chatWrappers/utils/resolveChatWrapper.ts","../src/cli/cli.ts","../src/cli/projectTemplates.ts","../src/cli/recommendedModels.ts","../src/cli/startCreateCli.ts","../src/cli/commands/ChatCommand.ts","../src/cli/commands/CompleteCommand.ts","../src/cli/commands/DebugCommand.ts","../src/cli/commands/InfillCommand.ts","../src/cli/commands/InitCommand.ts","../src/cli/commands/OnPostInstallCommand.ts","../src/cli/commands/PullCommand.ts","../src/cli/commands/inspect/InspectCommand.ts","../src/cli/commands/inspect/commands/InspectEstimateCommand.ts","../src/cli/commands/inspect/commands/InspectGgufCommand.ts","../src/cli/commands/inspect/commands/InspectGpuCommand.ts","../src/cli/commands/inspect/commands/InspectMeasureCommand.ts","../src/cli/commands/source/SourceCommand.ts","../src/cli/commands/source/commands/BuildCommand.ts","../src/cli/commands/source/commands/ClearCommand.ts","../src/cli/commands/source/commands/DownloadCommand.ts","../src/cli/utils/ConsoleInteraction.ts","../src/cli/utils/ConsoleTable.ts","../src/cli/utils/basicChooseFromListConsoleInteraction.ts","../src/cli/utils/consolePromptQuestion.ts","../src/cli/utils/getReadablePath.ts","../src/cli/utils/interactivelyAskForModel.ts","../src/cli/utils/isRunningUnderRosetta.ts","../src/cli/utils/logUsedGpuTypeOption.ts","../src/cli/utils/packageJsonConfig.ts","../src/cli/utils/packageManager.ts","../src/cli/utils/parseXtcArg.ts","../src/cli/utils/printCommonInfoLines.ts","../src/cli/utils/printInfoLine.ts","../src/cli/utils/printModelDestination.ts","../src/cli/utils/projectTemplates.ts","../src/cli/utils/renderModelCompatibilityPercentageWithColors.ts","../src/cli/utils/resolveCommandGgufPath.ts","../src/cli/utils/resolveHeaderFlag.ts","../src/cli/utils/resolveModelRecommendationFileOptions.ts","../src/cli/utils/resolveNpmrcConfig.ts","../src/cli/utils/splitAnsiToLines.ts","../src/cli/utils/toBytes.ts","../src/cli/utils/withCliCommandDescriptionDocsUrl.ts","../src/evaluator/LlamaCompletion.ts","../src/evaluator/LlamaEmbedding.ts","../src/evaluator/LlamaEmbeddingContext.ts","../src/evaluator/LlamaGrammar.ts","../src/evaluator/LlamaGrammarEvaluationState.ts","../src/evaluator/LlamaJsonSchemaGrammar.ts","../src/evaluator/LlamaRankingContext.ts","../src/evaluator/TokenBias.ts","../src/evaluator/TokenMeter.ts","../src/evaluator/LlamaChat/LlamaChat.ts","../src/evaluator/LlamaChat/utils/FunctionCallNameGrammar.ts","../src/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.ts","../src/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.ts","../src/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.ts","../src/evaluator/LlamaChatSession/LlamaChatSession.ts","../src/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.ts","../src/evaluator/LlamaChatSession/utils/defineChatSessionFunction.ts","../src/evaluator/LlamaContext/LlamaContext.ts","../src/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.ts","../src/evaluator/LlamaContext/LlamaSampler.ts","../src/evaluator/LlamaContext/TokenPredictor.ts","../src/evaluator/LlamaContext/types.ts","../src/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.ts","../src/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.ts","../src/evaluator/LlamaContext/utils/padSafeContextSize.ts","../src/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.ts","../src/evaluator/LlamaModel/LlamaModel.ts","../src/evaluator/LlamaModel/utils/TokenAttributes.ts","../src/evaluator/utils/chunkDocument.ts","../src/gguf/consts.ts","../src/gguf/readGgufFileInfo.ts","../src/gguf/errors/InvalidGgufMagicError.ts","../src/gguf/errors/UnsupportedGgufValueTypeError.ts","../src/gguf/fileReaders/GgufFileReader.ts","../src/gguf/fileReaders/GgufFsFileReader.ts","../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts","../src/gguf/insights/GgufInsights.ts","../src/gguf/insights/GgufInsightsConfigurationResolver.ts","../src/gguf/insights/GgufInsightsTokens.ts","../src/gguf/insights/utils/getRamUsageFromUnifiedVram.ts","../src/gguf/insights/utils/resolveContextContextSizeOption.ts","../src/gguf/insights/utils/resolveModelGpuLayersOption.ts","../src/gguf/insights/utils/scoreLevels.ts","../src/gguf/parser/GgufV2Parser.ts","../src/gguf/parser/GgufV3Parser.ts","../src/gguf/parser/parseGguf.ts","../src/gguf/types/GgufFileInfoTypes.ts","../src/gguf/types/GgufMetadataTypes.ts","../src/gguf/types/GgufTensorInfoTypes.ts","../src/gguf/utils/GgufReadOffset.ts","../src/gguf/utils/convertMetadataKeyValueRecordToNestedObject.ts","../src/gguf/utils/getGgufFileTypeName.ts","../src/gguf/utils/getGgufMetadataArchitectureData.ts","../src/gguf/utils/getGgufMetadataKeyValue.ts","../src/gguf/utils/ggufQuantNames.ts","../src/gguf/utils/normalizeGgufDownloadUrl.ts","../src/gguf/utils/resolveBinarySplitGgufPartUrls.ts","../src/gguf/utils/resolveSplitGgufParts.ts","../src/utils/DisposeGuard.ts","../src/utils/InsufficientMemoryError.ts","../src/utils/LlamaText.ts","../src/utils/LruCache.ts","../src/utils/OpenAIFormat.ts","../src/utils/OverridesObject.ts","../src/utils/ReplHistory.ts","../src/utils/StopGenerationDetector.ts","../src/utils/ThreadsSplitter.ts","../src/utils/TokenStreamRegulator.ts","../src/utils/UnsupportedError.ts","../src/utils/appendUserMessageToChatHistory.ts","../src/utils/clearTempFolder.ts","../src/utils/cmake.ts","../src/utils/compareTokens.ts","../src/utils/createModelDownloader.ts","../src/utils/findBestOption.ts","../src/utils/findCharacterRemovalCountToFitChatHistoryInContext.ts","../src/utils/getBuildDefaults.ts","../src/utils/getChatWrapperSegmentDefinition.ts","../src/utils/getConsoleLogPrefix.ts","../src/utils/getFirstWritableDir.ts","../src/utils/getGrammarsFolder.ts","../src/utils/getLlamaClasses.ts","../src/utils/getModuleVersion.ts","../src/utils/getQueuedTokensBeforeStopTrigger.ts","../src/utils/getReadableContextSize.ts","../src/utils/getTempDir.ts","../src/utils/getTypeScriptTypeStringForGbnfJsonSchema.ts","../src/utils/gitReleaseBundles.ts","../src/utils/hashString.ts","../src/utils/includesText.ts","../src/utils/isLockfileActive.ts","../src/utils/isToken.ts","../src/utils/isUrl.ts","../src/utils/mergeUnionTypes.ts","../src/utils/modelDownloadEndpoints.ts","../src/utils/modelFileAccessTokens.ts","../src/utils/optionsMatrix.ts","../src/utils/parseModelFileName.ts","../src/utils/parseModelUri.ts","../src/utils/parseTextTemplate.ts","../src/utils/prettyPrintObject.ts","../src/utils/pushAll.ts","../src/utils/removeNullFields.ts","../src/utils/resolveGithubRelease.ts","../src/utils/resolveLastTokens.ts","../src/utils/resolveModelDestination.ts","../src/utils/resolveModelFile.ts","../src/utils/runtime.ts","../src/utils/safeEventCallback.ts","../src/utils/signalSleep.ts","../src/utils/spawnCommand.ts","../src/utils/tokenizeInput.ts","../src/utils/tokenizerUtils.ts","../src/utils/transformPromisable.ts","../src/utils/truncateTextAndRoundToWords.ts","../src/utils/utilTypes.ts","../src/utils/waitForLockfileRelease.ts","../src/utils/withLockfile.ts","../src/utils/withOra.ts","../src/utils/withProgressLog.ts","../src/utils/withStatusLogs.ts","../src/utils/wrapAbortSignal.ts","../src/utils/gbnfJson/GbnfGrammarGenerator.ts","../src/utils/gbnfJson/GbnfTerminal.ts","../src/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.ts","../src/utils/gbnfJson/types.ts","../src/utils/gbnfJson/terminals/GbnfAnyJson.ts","../src/utils/gbnfJson/terminals/GbnfArray.ts","../src/utils/gbnfJson/terminals/GbnfBoolean.ts","../src/utils/gbnfJson/terminals/GbnfBooleanValue.ts","../src/utils/gbnfJson/terminals/GbnfCommaWhitespace.ts","../src/utils/gbnfJson/terminals/GbnfFormatString.ts","../src/utils/gbnfJson/terminals/GbnfGrammar.ts","../src/utils/gbnfJson/terminals/GbnfInsideStringChar.ts","../src/utils/gbnfJson/terminals/GbnfNull.ts","../src/utils/gbnfJson/terminals/GbnfNumber.ts","../src/utils/gbnfJson/terminals/GbnfNumberValue.ts","../src/utils/gbnfJson/terminals/GbnfObjectMap.ts","../src/utils/gbnfJson/terminals/GbnfOr.ts","../src/utils/gbnfJson/terminals/GbnfRef.ts","../src/utils/gbnfJson/terminals/GbnfRepetition.ts","../src/utils/gbnfJson/terminals/GbnfString.ts","../src/utils/gbnfJson/terminals/GbnfStringValue.ts","../src/utils/gbnfJson/terminals/GbnfVerbatimText.ts","../src/utils/gbnfJson/terminals/GbnfWhitespace.ts","../src/utils/gbnfJson/terminals/gbnfConsts.ts","../src/utils/gbnfJson/utils/GbnfJsonScopeState.ts","../src/utils/gbnfJson/utils/defsScope.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.ts","../src/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.ts"],"version":"5.9.3"}
package/dist/types.d.ts CHANGED
@@ -405,3 +405,4 @@ export type LLamaContextualDryRepeatPenalty = {
405
405
  */
406
406
  sequenceBreakers?: string[];
407
407
  };
408
+ export type NodeLlamaCppPostinstallBehavior = "auto" | "ignoreFailedBuild" | "skip";
@@ -1,5 +1,5 @@
1
1
  export declare function getBuildDefaults(): Promise<{
2
2
  repo: string;
3
3
  release: string;
4
- gpuSupport: false | "metal" | "cuda" | "vulkan" | "auto";
4
+ gpuSupport: false | "auto" | "metal" | "cuda" | "vulkan";
5
5
  }>;
@@ -0,0 +1,8 @@
1
+ export declare function getFirstWritableDir(dirPaths: string[]): Promise<string | null>;
2
+ export declare function isPathWritableWithCache(dirPath: string): Promise<boolean>;
3
+ export declare function isPathWritable(dirPath: string): Promise<boolean>;
4
+ /**
5
+ * Check whether a path is inside an asar when running in Electron,
6
+ * which means that the path is not writable and inaccessible outside the Electron app.
7
+ */
8
+ export declare function isPathInsideAsar(dirPath: string, excludeUnpacked?: boolean): boolean;
@@ -0,0 +1,60 @@
1
+ import path from "path";
2
+ import fs from "fs-extra";
3
+ import { runningInElectron } from "./runtime.js";
4
+ import { LruCache } from "./LruCache.js";
5
+ export async function getFirstWritableDir(dirPaths) {
6
+ for (const dirPath of dirPaths) {
7
+ if (isPathInsideAsar(dirPath))
8
+ continue;
9
+ if (await isPathWritable(dirPath))
10
+ return dirPath;
11
+ }
12
+ return null;
13
+ }
14
+ const writableCheckCache = new LruCache(20);
15
+ export async function isPathWritableWithCache(dirPath) {
16
+ const isWritable = writableCheckCache.get(dirPath) ?? await isPathWritable(dirPath);
17
+ writableCheckCache.set(dirPath, isWritable);
18
+ return isWritable;
19
+ }
20
+ export async function isPathWritable(dirPath) {
21
+ let checkPath = path.resolve(dirPath);
22
+ while (true) {
23
+ try {
24
+ const stat = await fs.lstat(checkPath);
25
+ if (!stat.isDirectory())
26
+ return false;
27
+ break;
28
+ }
29
+ catch (error) {
30
+ if (error?.code !== "ENOENT")
31
+ return false;
32
+ const nextCheckPath = path.dirname(checkPath);
33
+ if (nextCheckPath === checkPath)
34
+ return false;
35
+ checkPath = nextCheckPath;
36
+ }
37
+ }
38
+ try {
39
+ await fs.access(path.dirname(checkPath), fs.constants.W_OK | fs.constants.X_OK);
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ return true;
45
+ }
46
+ /**
47
+ * Check whether a path is inside an asar when running in Electron,
48
+ * which means that the path is not writable and inaccessible outside the Electron app.
49
+ */
50
+ export function isPathInsideAsar(dirPath, excludeUnpacked = false) {
51
+ if (!runningInElectron)
52
+ return false;
53
+ const normalizedPath = dirPath.toLowerCase();
54
+ if (normalizedPath.endsWith(".asar") ||
55
+ (!excludeUnpacked && normalizedPath.endsWith(".asar.unpacked")))
56
+ return true;
57
+ return normalizedPath.includes(".asar" + path.sep) ||
58
+ (!excludeUnpacked && normalizedPath.includes(".asar.unpacked" + path.sep));
59
+ }
60
+ //# sourceMappingURL=getFirstWritableDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFirstWritableDir.js","sourceRoot":"","sources":["../../src/utils/getFirstWritableDir.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAkB;IACxD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,gBAAgB,CAAC,OAAO,CAAC;YACzB,SAAS;QAEb,IAAI,MAAM,cAAc,CAAC,OAAO,CAAC;YAC7B,OAAO,OAAO,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,QAAQ,CAAkB,EAAE,CAAC,CAAC;AAC7D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAe;IACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACpF,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC5C,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe;IAChD,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,IAAI,EAAE,CAAC;QACV,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,OAAO,KAAK,CAAC;YAEjB,MAAM;QACV,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ;gBACxB,OAAO,KAAK,CAAC;YAEjB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,aAAa,KAAK,SAAS;gBAC3B,OAAO,KAAK,CAAC;YAEjB,SAAS,GAAG,aAAa,CAAC;QAC9B,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,kBAA2B,KAAK;IAC9E,IAAI,CAAC,iBAAiB;QAClB,OAAO,KAAK,CAAC;IAEjB,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChC,CAAC,CAAC,eAAe,IAAI,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC;IAEhB,OAAO,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QAC9C,CAAC,CAAC,eAAe,IAAI,cAAc,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function getTempDir(helperTempDirs?: string[]): Promise<FsPathHandle | undefined>;
2
+ export declare class FsPathHandle {
3
+ readonly path: string;
4
+ private _finalizationRegistry;
5
+ private _disposed;
6
+ constructor(dirPath: string);
7
+ dispose(): Promise<void>;
8
+ [Symbol.asyncDispose](): Promise<void>;
9
+ [Symbol.dispose](): void;
10
+ }
@@ -0,0 +1,121 @@
1
+ import path from "path";
2
+ import os from "os";
3
+ import fs from "fs-extra";
4
+ import { cliHomedirTempDirectory, localTempDirectory } from "../config.js";
5
+ import { isPathWritableWithCache } from "./getFirstWritableDir.js";
6
+ const currentDate = new Date();
7
+ const currentRunId = [
8
+ process.pid + ".",
9
+ String(currentDate.getFullYear()).padStart(4, "0"),
10
+ String(currentDate.getMonth() + 1).padStart(2, "0"),
11
+ String(currentDate.getDate()).padStart(2, "0"),
12
+ String(currentDate.getHours()).padStart(2, "0"),
13
+ String(currentDate.getMinutes()).padStart(2, "0"),
14
+ String(currentDate.getSeconds()).padStart(2, "0"),
15
+ String(currentDate.getMilliseconds()).padStart(3, "0"),
16
+ ".",
17
+ Math.random()
18
+ .toString(36)
19
+ .slice(2)
20
+ ].join("");
21
+ let lastResolvedTempDir = undefined;
22
+ export async function getTempDir(helperTempDirs) {
23
+ for (const tempDir of helperTempDirs ?? []) {
24
+ if (await isPathWritableWithCache(tempDir))
25
+ return new FsPathHandle(path.join(tempDir, "nlc." + currentRunId));
26
+ }
27
+ if (lastResolvedTempDir != null)
28
+ return new FsPathHandle(lastResolvedTempDir);
29
+ if (await isPathWritableWithCache(localTempDirectory))
30
+ lastResolvedTempDir = path.join(localTempDirectory, currentRunId);
31
+ else if (await isPathWritableWithCache(os.tmpdir()))
32
+ lastResolvedTempDir = path.join(os.tmpdir(), "nlc." + currentRunId);
33
+ else if (await isPathWritableWithCache(cliHomedirTempDirectory))
34
+ lastResolvedTempDir = path.join(cliHomedirTempDirectory, currentRunId);
35
+ if (lastResolvedTempDir != null)
36
+ return new FsPathHandle(lastResolvedTempDir);
37
+ return undefined;
38
+ }
39
+ const pathUsages = new Map();
40
+ function addPathUsage(tempDirPath) {
41
+ const usage = pathUsages.get(tempDirPath) ?? 0;
42
+ pathUsages.set(tempDirPath, usage + 1);
43
+ if (usage === 0)
44
+ ensureExitEventRegistration();
45
+ }
46
+ function removePathUsage(tempDirPath, removeAsync = false) {
47
+ const usage = pathUsages.get(tempDirPath);
48
+ if (usage == null)
49
+ return;
50
+ if (usage <= 1) {
51
+ pathUsages.delete(tempDirPath);
52
+ if (removeAsync)
53
+ return fs.remove(tempDirPath)
54
+ .then(doNothing)
55
+ .catch(doNothing);
56
+ try {
57
+ fs.removeSync(tempDirPath);
58
+ }
59
+ catch (err) {
60
+ // do nothing
61
+ }
62
+ ensureExitEventRegistration();
63
+ }
64
+ else
65
+ pathUsages.set(tempDirPath, usage - 1);
66
+ }
67
+ function removePathUsageSync(tempDirPath) {
68
+ removePathUsage(tempDirPath);
69
+ }
70
+ let onExitRegistered = false;
71
+ function ensureExitEventRegistration() {
72
+ if (pathUsages.size === 0 && onExitRegistered) {
73
+ process.off("beforeExit", onExit);
74
+ onExitRegistered = false;
75
+ }
76
+ else if (pathUsages.size > 0 && !onExitRegistered) {
77
+ process.on("beforeExit", onExit);
78
+ onExitRegistered = true;
79
+ }
80
+ }
81
+ function onExit() {
82
+ for (const tempDirPath of pathUsages.keys()) {
83
+ try {
84
+ fs.removeSync(tempDirPath);
85
+ }
86
+ catch (err) {
87
+ // do nothing
88
+ }
89
+ }
90
+ }
91
+ export class FsPathHandle {
92
+ path;
93
+ _finalizationRegistry;
94
+ _disposed = false;
95
+ constructor(dirPath) {
96
+ this.path = dirPath;
97
+ this._finalizationRegistry = new FinalizationRegistry(removePathUsageSync);
98
+ addPathUsage(this.path);
99
+ this._finalizationRegistry.register(this, this.path);
100
+ }
101
+ async dispose() {
102
+ if (this._disposed)
103
+ return;
104
+ this._disposed = true;
105
+ this._finalizationRegistry.unregister(this);
106
+ await removePathUsage(this.path, true);
107
+ }
108
+ [Symbol.asyncDispose]() {
109
+ return this.dispose();
110
+ }
111
+ [Symbol.dispose]() {
112
+ if (this._disposed)
113
+ return;
114
+ this._disposed = true;
115
+ this._finalizationRegistry.unregister(this);
116
+ removePathUsage(this.path, false);
117
+ }
118
+ }
119
+ function doNothing() {
120
+ }
121
+ //# sourceMappingURL=getTempDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTempDir.js","sourceRoot":"","sources":["../../src/utils/getTempDir.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ function prettyPrintArray(arr, indent = 4, options = {}) {
46
46
  const hiddenItems = arr.length - slicedArray.length;
47
47
  const arrayItems = slicedArray.map((item) => prettyPrintObject(item, indent, options))
48
48
  .concat(hiddenItems > 0
49
- ? [chalk.white("..." + hiddenItems + " more item" + (hiddenItems !== 1 ? "s" : ""))]
49
+ ? [chalk.white("..." + hiddenItems.toLocaleString("en-US") + " more item" + (hiddenItems !== 1 ? "s" : ""))]
50
50
  : []);
51
51
  const oneLineJoinedArrayItems = arrayItems.join(chalk.whiteBright(", "));
52
52
  if (options.maxArrayItemsWidth != null &&
@@ -1 +1 @@
1
- {"version":3,"file":"prettyPrintObject.js","sourceRoot":"","sources":["../../src/utils/prettyPrintObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prettyPrintObject.js","sourceRoot":"","sources":["../../src/utils/prettyPrintObject.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import path from "path";
2
2
  import fs from "fs-extra";
3
3
  import chalk from "chalk";
4
+ import { acquireLock } from "lifecycle-utils";
4
5
  import { cliModelsDirectory } from "../config.js";
5
6
  import { getReadablePath } from "../cli/utils/getReadablePath.js";
6
7
  import { resolveSplitGgufParts } from "../gguf/utils/resolveSplitGgufParts.js";
@@ -150,14 +151,24 @@ export async function resolveModelFile(uriOrPath, optionsOrDirectory) {
150
151
  return foundExpectedFilePath;
151
152
  }
152
153
  }
153
- if (resolvedCli)
154
- console.info(`Downloading to ${chalk.yellow(getReadablePath(resolvedDirectory))}${downloader.splitBinaryParts != null
155
- ? chalk.gray(` (combining ${downloader.splitBinaryParts} parts into a single file)`)
156
- : ""}`);
157
- await downloader.download({ signal });
158
- if (resolvedCli)
159
- console.info(`Downloaded to ${chalk.yellow(getReadablePath(downloader.entrypointFilePath))}`);
160
- return downloader.entrypointFilePath;
154
+ const lock = await acquireLock([resolveModelFile, "download", downloader.entrypointFilePath]);
155
+ try {
156
+ if (await fs.pathExists(downloader.entrypointFilePath)) {
157
+ await downloader.cancel({ deleteTempFile: false });
158
+ return downloader.entrypointFilePath;
159
+ }
160
+ if (resolvedCli)
161
+ console.info(`Downloading to ${chalk.yellow(getReadablePath(resolvedDirectory))}${downloader.splitBinaryParts != null
162
+ ? chalk.gray(` (combining ${downloader.splitBinaryParts} parts into a single file)`)
163
+ : ""}`);
164
+ await downloader.download({ signal });
165
+ if (resolvedCli)
166
+ console.info(`Downloaded to ${chalk.yellow(getReadablePath(downloader.entrypointFilePath))}`);
167
+ return downloader.entrypointFilePath;
168
+ }
169
+ finally {
170
+ lock.dispose();
171
+ }
161
172
  }
162
173
  async function findMatchingFilesInDirectory(dirPath, fileNames) {
163
174
  let directoryFileNames = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveModelFile.js","sourceRoot":"","sources":["../../src/utils/resolveModelFile.ts"],"names":[],"mappings":"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"}
@@ -443,6 +443,20 @@ AddonContext::AddonContext(const Napi::CallbackInfo& info) : Napi::ObjectWrap<Ad
443
443
  context_params.no_perf = !(options.Get("performanceTracking").As<Napi::Boolean>().Value());
444
444
  }
445
445
 
446
+ if (options.Has("kvCacheKeyType") && options.Get("kvCacheKeyType").IsNumber()) {
447
+ auto keyType = options.Get("kvCacheKeyType").As<Napi::Number>().Int32Value();
448
+ if (keyType >= 0 && keyType < GGML_TYPE_COUNT) {
449
+ context_params.type_k = static_cast<ggml_type>(keyType);
450
+ }
451
+ }
452
+
453
+ if (options.Has("kvCacheValueType") && options.Get("kvCacheValueType").IsNumber()) {
454
+ auto valueType = options.Get("kvCacheValueType").As<Napi::Number>().Int32Value();
455
+ if (valueType >= 0 && valueType < GGML_TYPE_COUNT) {
456
+ context_params.type_v = static_cast<ggml_type>(valueType);
457
+ }
458
+ }
459
+
446
460
  if (options.Has("swaFullCache")) {
447
461
  context_params.swa_full = options.Get("swaFullCache").As<Napi::Boolean>().Value();
448
462
  }
@@ -965,6 +979,69 @@ Napi::Value AddonContext::SetLoras(const Napi::CallbackInfo& info) {
965
979
  return info.Env().Undefined();
966
980
  }
967
981
 
982
+ class RestoreCheckpointWorker : public Napi::AsyncWorker {
983
+ public:
984
+ AddonContext* context;
985
+ AddonContextSequenceCheckpoint* checkpoint;
986
+ std::size_t maxPosIndex;
987
+ bool restoreSuccess = false;
988
+
989
+ RestoreCheckpointWorker(const Napi::CallbackInfo& info, AddonContext* context, AddonContextSequenceCheckpoint* checkpoint, std::size_t maxPosIndex)
990
+ : Napi::AsyncWorker(info.Env(), "RestoreCheckpointWorker"),
991
+ context(context),
992
+ checkpoint(checkpoint),
993
+ maxPosIndex(maxPosIndex),
994
+ deferred(Napi::Promise::Deferred::New(info.Env())) {
995
+ context->Ref();
996
+ checkpoint->Ref();
997
+ }
998
+ ~RestoreCheckpointWorker() {
999
+ context->Unref();
1000
+ checkpoint->Unref();
1001
+ }
1002
+
1003
+ Napi::Promise GetPromise() {
1004
+ return deferred.Promise();
1005
+ }
1006
+
1007
+ protected:
1008
+ Napi::Promise::Deferred deferred;
1009
+
1010
+ void Execute() {
1011
+ try {
1012
+ std::lock_guard<std::mutex> lock(checkpoint->dataMutex);
1013
+
1014
+ std::size_t dataSize = checkpoint->data.size();
1015
+ std::size_t restoreSize = llama_state_seq_set_data_ext(context->ctx, checkpoint->data.data(), dataSize, checkpoint->sequenceId, LLAMA_STATE_SEQ_FLAGS_PARTIAL_ONLY);
1016
+ if (restoreSize == dataSize) {
1017
+ restoreSuccess = (
1018
+ llama_memory_seq_rm(llama_get_memory(context->ctx), checkpoint->sequenceId, maxPosIndex + 1, -1) &&
1019
+ llama_memory_seq_pos_max(llama_get_memory(context->ctx), checkpoint->sequenceId) == maxPosIndex
1020
+ );
1021
+ }
1022
+ } catch (const std::exception& e) {
1023
+ SetError(e.what());
1024
+ } catch(...) {
1025
+ SetError("Unknown error when calling \"llama_state_seq_set_data_ext\"");
1026
+ }
1027
+ }
1028
+ void OnOK() {
1029
+ deferred.Resolve(Napi::Boolean::New(Env(), restoreSuccess));
1030
+ }
1031
+ void OnError(const Napi::Error& err) {
1032
+ deferred.Reject(err.Value());
1033
+ }
1034
+ };
1035
+
1036
+ Napi::Value AddonContext::RestoreCheckpoint(const Napi::CallbackInfo& info) {
1037
+ AddonContextSequenceCheckpoint* checkpoint = Napi::ObjectWrap<AddonContextSequenceCheckpoint>::Unwrap(info[0].As<Napi::Object>());
1038
+ std::size_t maxPosIndex = info[1].As<Napi::Number>().Int32Value();
1039
+
1040
+ RestoreCheckpointWorker* worker = new RestoreCheckpointWorker(info, this, checkpoint, maxPosIndex);
1041
+ worker->Queue();
1042
+ return worker->GetPromise();
1043
+ }
1044
+
968
1045
  void AddonContext::init(Napi::Object exports) {
969
1046
  exports.Set(
970
1047
  "AddonContext",
@@ -992,8 +1069,113 @@ void AddonContext::init(Napi::Object exports) {
992
1069
  InstanceMethod("saveSequenceStateToFile", &AddonContext::SaveSequenceStateToFile),
993
1070
  InstanceMethod("loadSequenceStateFromFile", &AddonContext::LoadSequenceStateFromFile),
994
1071
  InstanceMethod("setLoras", &AddonContext::SetLoras),
1072
+ InstanceMethod("restoreCheckpoint", &AddonContext::RestoreCheckpoint),
995
1073
  InstanceMethod("dispose", &AddonContext::Dispose),
996
1074
  }
997
1075
  )
998
1076
  );
999
1077
  }
1078
+
1079
+ AddonContextSequenceCheckpoint::AddonContextSequenceCheckpoint(const Napi::CallbackInfo& info) : Napi::ObjectWrap<AddonContextSequenceCheckpoint>(info) {
1080
+
1081
+ }
1082
+ AddonContextSequenceCheckpoint::~AddonContextSequenceCheckpoint() {
1083
+ dispose();
1084
+ }
1085
+
1086
+ class AddonContextSequenceCheckpointInitWorker : public Napi::AsyncWorker {
1087
+ public:
1088
+ AddonContextSequenceCheckpoint* checkpoint;
1089
+ AddonContext* context;
1090
+
1091
+ AddonContextSequenceCheckpointInitWorker(const Napi::CallbackInfo& info, AddonContextSequenceCheckpoint* checkpoint, AddonContext* context)
1092
+ : Napi::AsyncWorker(info.Env(), "AddonContextSequenceCheckpointInitWorker"),
1093
+ checkpoint(checkpoint),
1094
+ context(context),
1095
+ deferred(Napi::Promise::Deferred::New(info.Env())) {
1096
+ checkpoint->Ref();
1097
+ context->Ref();
1098
+ }
1099
+ ~AddonContextSequenceCheckpointInitWorker() {
1100
+ checkpoint->Unref();
1101
+ context->Unref();
1102
+ }
1103
+
1104
+ Napi::Promise GetPromise() {
1105
+ return deferred.Promise();
1106
+ }
1107
+
1108
+ protected:
1109
+ Napi::Promise::Deferred deferred;
1110
+
1111
+ void Execute() {
1112
+ try {
1113
+ checkpoint->minPos = llama_memory_seq_pos_min(llama_get_memory(context->ctx), checkpoint->sequenceId);
1114
+ checkpoint->maxPos = llama_memory_seq_pos_max(llama_get_memory(context->ctx), checkpoint->sequenceId);
1115
+ const size_t checkpointSize = llama_state_seq_get_size_ext(context->ctx, checkpoint->sequenceId, LLAMA_STATE_SEQ_FLAGS_PARTIAL_ONLY);
1116
+
1117
+ checkpoint->data.resize(checkpointSize, 0);
1118
+ llama_state_seq_get_data_ext(context->ctx, checkpoint->data.data(), checkpointSize, checkpoint->sequenceId, LLAMA_STATE_SEQ_FLAGS_PARTIAL_ONLY);
1119
+ } catch (const std::exception& e) {
1120
+ SetError(e.what());
1121
+ } catch(...) {
1122
+ SetError("Unknown error when calling \"llama_state_seq_get_data_ext\"");
1123
+ }
1124
+ }
1125
+ void OnOK() {
1126
+ deferred.Resolve(Env().Undefined());
1127
+ }
1128
+ void OnError(const Napi::Error& err) {
1129
+ deferred.Reject(err.Value());
1130
+ }
1131
+ };
1132
+
1133
+ Napi::Value AddonContextSequenceCheckpoint::Init(const Napi::CallbackInfo& info) {
1134
+ AddonContext * context = Napi::ObjectWrap<AddonContext>::Unwrap(info[0].As<Napi::Object>());
1135
+ sequenceId = info[1].As<Napi::Number>().Int32Value();
1136
+
1137
+ AddonContextSequenceCheckpointInitWorker* worker = new AddonContextSequenceCheckpointInitWorker(info, this, context);
1138
+ worker->Queue();
1139
+ return worker->GetPromise();
1140
+ }
1141
+
1142
+ Napi::Value AddonContextSequenceCheckpoint::Dispose(const Napi::CallbackInfo& info) {
1143
+ dispose();
1144
+ return info.Env().Undefined();
1145
+ }
1146
+
1147
+ void AddonContextSequenceCheckpoint::dispose() {
1148
+ std::lock_guard<std::mutex> lock(dataMutex);
1149
+ data.clear();
1150
+ data.resize(0);
1151
+ }
1152
+
1153
+ Napi::Value AddonContextSequenceCheckpoint::GetSize(const Napi::CallbackInfo& info) {
1154
+ return Napi::Number::New(info.Env(), data.size());
1155
+ }
1156
+
1157
+ Napi::Value AddonContextSequenceCheckpoint::GetMinPos(const Napi::CallbackInfo& info) {
1158
+ return Napi::Number::New(info.Env(), minPos);
1159
+ }
1160
+
1161
+ Napi::Value AddonContextSequenceCheckpoint::GetMaxPos(const Napi::CallbackInfo& info) {
1162
+ return Napi::Number::New(info.Env(), maxPos);
1163
+ }
1164
+
1165
+ void AddonContextSequenceCheckpoint::init(Napi::Object exports) {
1166
+ exports.Set(
1167
+ "AddonContextSequenceCheckpoint",
1168
+ DefineClass(
1169
+ exports.Env(),
1170
+ "AddonContextSequenceCheckpoint",
1171
+ {
1172
+ InstanceMethod("init", &AddonContextSequenceCheckpoint::Init),
1173
+ InstanceMethod("dispose", &AddonContextSequenceCheckpoint::Dispose),
1174
+
1175
+ InstanceAccessor("size", &AddonContextSequenceCheckpoint::GetSize, nullptr),
1176
+ InstanceAccessor("minPos", &AddonContextSequenceCheckpoint::GetMinPos, nullptr),
1177
+ InstanceAccessor("maxPos", &AddonContextSequenceCheckpoint::GetMaxPos, nullptr),
1178
+ }
1179
+ )
1180
+ );
1181
+ }