node-llama-cpp 3.1.1 → 3.2.0

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 (127) hide show
  1. package/README.md +1 -1
  2. package/dist/ChatWrapper.js +1 -1
  3. package/dist/ChatWrapper.js.map +1 -1
  4. package/dist/bindings/AddonTypes.d.ts +6 -0
  5. package/dist/bindings/Llama.d.ts +30 -0
  6. package/dist/bindings/Llama.js +78 -8
  7. package/dist/bindings/Llama.js.map +1 -1
  8. package/dist/bindings/getLlama.d.ts +22 -1
  9. package/dist/bindings/getLlama.js +18 -3
  10. package/dist/bindings/getLlama.js.map +1 -1
  11. package/dist/bindings/utils/MemoryOrchestrator.d.ts +2 -0
  12. package/dist/bindings/utils/MemoryOrchestrator.js +3 -2
  13. package/dist/bindings/utils/MemoryOrchestrator.js.map +1 -1
  14. package/dist/bindings/utils/clearAllLocalBuilds.js +2 -2
  15. package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -1
  16. package/dist/bindings/utils/compileLLamaCpp.js +15 -1
  17. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  18. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -1
  19. package/dist/bindings/utils/getGpuTypesToUseForOption.js +1 -1
  20. package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -1
  21. package/dist/bindings/utils/getLinuxDistroInfo.js +1 -1
  22. package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -1
  23. package/dist/bindings/utils/testCmakeBinary.js +1 -1
  24. package/dist/bindings/utils/testCmakeBinary.js.map +1 -1
  25. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
  26. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -1
  27. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +1 -1
  28. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -1
  29. package/dist/chatWrappers/utils/chunkChatItems.js +1 -1
  30. package/dist/chatWrappers/utils/chunkChatItems.js.map +1 -1
  31. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -1
  32. package/dist/chatWrappers/utils/resolveChatWrapper.js +1 -1
  33. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  34. package/dist/cli/commands/ChatCommand.js +1 -2
  35. package/dist/cli/commands/ChatCommand.js.map +1 -1
  36. package/dist/cli/commands/CompleteCommand.js +1 -2
  37. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  38. package/dist/cli/commands/InfillCommand.js +1 -2
  39. package/dist/cli/commands/InfillCommand.js.map +1 -1
  40. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +0 -1
  41. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -1
  42. package/dist/cli/commands/inspect/commands/InspectGgufCommand.d.ts +1 -0
  43. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +47 -11
  44. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  45. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +14 -3
  46. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  47. package/dist/cli/utils/consolePromptQuestion.js +0 -1
  48. package/dist/cli/utils/consolePromptQuestion.js.map +1 -1
  49. package/dist/cli/utils/interactivelyAskForModel.js +3 -1
  50. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
  51. package/dist/evaluator/LlamaChat/LlamaChat.js +12 -12
  52. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  53. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +63 -8
  54. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
  55. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +8 -1
  56. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +16 -6
  57. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  58. package/dist/evaluator/LlamaCompletion.js +11 -9
  59. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  60. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +11 -0
  61. package/dist/evaluator/LlamaContext/LlamaContext.js +66 -8
  62. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  63. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js.map +1 -1
  64. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -1
  65. package/dist/evaluator/LlamaModel/LlamaModel.js +8 -4
  66. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
  67. package/dist/gguf/insights/GgufInsights.d.ts +1 -0
  68. package/dist/gguf/insights/GgufInsights.js +8 -0
  69. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  70. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +40 -4
  71. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +116 -93
  72. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -1
  73. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.d.ts +5 -0
  74. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.js +7 -0
  75. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.js.map +1 -0
  76. package/dist/gguf/insights/utils/resolveContextContextSizeOption.d.ts +11 -1
  77. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js +47 -17
  78. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -1
  79. package/dist/gguf/insights/utils/scoreLevels.js.map +1 -1
  80. package/dist/gguf/readGgufFileInfo.js +1 -1
  81. package/dist/gguf/readGgufFileInfo.js.map +1 -1
  82. package/dist/gguf/utils/getGgufMetadataKeyValue.d.ts +1 -0
  83. package/dist/gguf/utils/getGgufMetadataKeyValue.js +27 -0
  84. package/dist/gguf/utils/getGgufMetadataKeyValue.js.map +1 -0
  85. package/dist/tsconfig.tsbuildinfo +1 -1
  86. package/dist/utils/StopGenerationDetector.js +1 -1
  87. package/dist/utils/StopGenerationDetector.js.map +1 -1
  88. package/dist/utils/ThreadsSplitter.js +2 -2
  89. package/dist/utils/ThreadsSplitter.js.map +1 -1
  90. package/dist/utils/createModelDownloader.js.map +1 -1
  91. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +2 -1
  92. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +14 -1
  93. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -1
  94. package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -1
  95. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -1
  96. package/dist/utils/gbnfJson/terminals/GbnfOr.js +4 -4
  97. package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
  98. package/dist/utils/hashString.js +1 -1
  99. package/dist/utils/hashString.js.map +1 -1
  100. package/dist/utils/spawnCommand.js +1 -1
  101. package/dist/utils/spawnCommand.js.map +1 -1
  102. package/dist/utils/transformPromisable.js +1 -2
  103. package/dist/utils/transformPromisable.js.map +1 -1
  104. package/dist/utils/truncateTextAndRoundToWords.d.ts +4 -3
  105. package/dist/utils/truncateTextAndRoundToWords.js +90 -39
  106. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -1
  107. package/dist/utils/waitForLockfileRelease.js +0 -1
  108. package/dist/utils/waitForLockfileRelease.js.map +1 -1
  109. package/llama/CMakeLists.txt +6 -0
  110. package/llama/addon/AddonContext.cpp +1 -1
  111. package/llama/addon/AddonModel.cpp +4 -4
  112. package/llama/addon/AddonSampler.cpp +0 -13
  113. package/llama/addon/AddonSampler.h +0 -2
  114. package/llama/addon/addon.cpp +2 -0
  115. package/llama/addon/globals/getGpuInfo.cpp +8 -2
  116. package/llama/addon/globals/getSwapInfo.cpp +69 -0
  117. package/llama/addon/globals/getSwapInfo.h +4 -0
  118. package/llama/binariesGithubRelease.json +1 -1
  119. package/llama/gitRelease.bundle +0 -0
  120. package/llama/gpuInfo/metal-gpu-info.h +1 -1
  121. package/llama/gpuInfo/metal-gpu-info.mm +8 -1
  122. package/llama/gpuInfo/vulkan-gpu-info.cpp +17 -10
  123. package/llama/gpuInfo/vulkan-gpu-info.h +1 -1
  124. package/llama/llama.cpp.info.json +1 -1
  125. package/package.json +45 -43
  126. package/templates/packed/electron-typescript-react.json +1 -1
  127. package/templates/packed/node-typescript.json +1 -1
@@ -1,4 +1,5 @@
1
- export async function findCharacterRemovalCountToFitChatHistoryInContext({ compressChatHistory, chatHistory, tokensCountToFit, tokenizer, chatWrapper, initialCharactersRemovalCount = 0, estimatedCharactersPerToken = 5, maxDecompressionAttempts = 2 }) {
1
+ const maxSequentialUnhelpfulIterations = 100;
2
+ export async function findCharacterRemovalCountToFitChatHistoryInContext({ compressChatHistory, chatHistory, tokensCountToFit, tokenizer, chatWrapper, initialCharactersRemovalCount = 0, estimatedCharactersPerToken = 5, maxDecompressionAttempts = 2, failedCompressionErrorMessage = "Failed to compress chat history. Consider increasing the context size." }) {
2
3
  let currentEstimatedCharactersPerToken = estimatedCharactersPerToken;
3
4
  function getTokensCountForChatHistory(chatHistory) {
4
5
  const { contextText } = chatWrapper.generateContextState({ chatHistory });
@@ -24,6 +25,8 @@ export async function findCharacterRemovalCountToFitChatHistoryInContext({ compr
24
25
  }
25
26
  let latestCompressionAttempt = await getResultForCharacterRemovalCount(initialCharactersRemovalCount);
26
27
  const firstCompressionAttempt = latestCompressionAttempt;
28
+ let latestCompressionAttemptTokensCount = latestCompressionAttempt.tokensCount;
29
+ let sameTokensCountRepetitions = 0;
27
30
  if (latestCompressionAttempt.tokensCount === tokensCountToFit ||
28
31
  (latestCompressionAttempt.tokensCount < tokensCountToFit && latestCompressionAttempt.characterRemovalCount === 0))
29
32
  return {
@@ -63,6 +66,16 @@ export async function findCharacterRemovalCountToFitChatHistoryInContext({ compr
63
66
  latestCompressionAttempt.tokensCount <= tokensCountToFit &&
64
67
  latestCompressionAttempt.characterRemovalCount < bestCompressionAttempt.characterRemovalCount))
65
68
  bestCompressionAttempt = latestCompressionAttempt;
69
+ if (latestCompressionAttempt.tokensCount === latestCompressionAttemptTokensCount)
70
+ sameTokensCountRepetitions++;
71
+ else {
72
+ latestCompressionAttemptTokensCount = latestCompressionAttempt.tokensCount;
73
+ sameTokensCountRepetitions = 0;
74
+ }
75
+ if (decompressionAttempts === 0 &&
76
+ compressionAttempts >= maxSequentialUnhelpfulIterations &&
77
+ sameTokensCountRepetitions >= maxSequentialUnhelpfulIterations)
78
+ throw new Error(failedCompressionErrorMessage);
66
79
  }
67
80
  return {
68
81
  removedCharactersCount: bestCompressionAttempt.characterRemovalCount,
@@ -1 +1 @@
1
- {"version":3,"file":"findCharacterRemovalCountToFitChatHistoryInContext.js","sourceRoot":"","sources":["../../src/utils/findCharacterRemovalCountToFitChatHistoryInContext.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,kDAAkD,CAAC,EACrE,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,6BAA6B,GAAG,CAAC,EACjC,2BAA2B,GAAG,CAAC,EAC/B,wBAAwB,GAAG,CAAC,EAY/B;IAIG,IAAI,kCAAkC,GAAG,2BAA2B,CAAC;IAErE,SAAS,4BAA4B,CAAC,WAAuC;QACzE,MAAM,EAAC,WAAW,EAAC,GAAG,WAAW,CAAC,oBAAoB,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC;IACtE,CAAC;IAED,KAAK,UAAU,iCAAiC,CAAC,qBAA6B;QAC1E,IAAI,qBAAqB,KAAK,CAAC;YAC3B,OAAO;gBACH,iBAAiB,EAAE,WAAW;gBAC9B,WAAW,EAAE,4BAA4B,CAAC,WAAW,CAAC;gBACtD,qBAAqB;aACxB,CAAC;QAEN,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAC;YAChD,WAAW;YACX,kBAAkB,EAAE,qBAAqB;YACzC,2BAA2B,EAAE,kCAAkC;SAClE,CAAC,CAAC;QAEH,OAAO;YACH,iBAAiB;YACjB,WAAW,EAAE,4BAA4B,CAAC,iBAAiB,CAAC;YAC5D,qBAAqB;SACxB,CAAC;IACN,CAAC;IAED,IAAI,wBAAwB,GAAG,MAAM,iCAAiC,CAAC,6BAA6B,CAAC,CAAC;IACtG,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;IAEzD,IAAI,wBAAwB,CAAC,WAAW,KAAK,gBAAgB;QACzD,CAAC,wBAAwB,CAAC,WAAW,GAAG,gBAAgB,IAAI,wBAAwB,CAAC,qBAAqB,KAAK,CAAC,CAAC;QAEjH,OAAO;YACH,sBAAsB,EAAE,6BAA6B;YACrD,qBAAqB,EAAE,wBAAwB,CAAC,iBAAiB;SACpE,CAAC;IAEN,IAAI,sBAAsB,GAAG,wBAAwB,CAAC;IACtD,KACI,IAAI,mBAAmB,GAAG,CAAC,EAAE,qBAAqB,GAAG,CAAC,EACtD,sBAAsB,CAAC,WAAW,KAAK,gBAAgB,GACzD,CAAC;QACC,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,wBAAwB,CAAC,WAAW,IAAI,uBAAuB,CAAC,WAAW;gBAC3E,wBAAwB,CAAC,qBAAqB,IAAI,uBAAuB,CAAC,qBAAqB;gBAE/F,kCAAkC;oBAC9B,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,qBAAqB,GAAG,uBAAuB,CAAC,qBAAqB,CAAC;wBACxG,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,WAAW,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAE7F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC,IAAI,kCAAkC,KAAK,CAAC;gBAChG,kCAAkC,GAAG,2BAA2B,CAAC;QACzE,CAAC;QAED,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,WAAW,GAAG,gBAAgB,CAAC;QACnF,IAAI,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,kCAAkC,CAAC,CAAC;QAEvG,IAAI,4BAA4B,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,kBAAkB,GAAG,CAAC;gBACtB,4BAA4B,GAAG,CAAC,CAAC;iBAChC,IAAI,kBAAkB,GAAG,CAAC;gBAC3B,4BAA4B,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,kBAAkB,GAAG,CAAC;YACtB,mBAAmB,EAAE,CAAC;aACrB,IAAI,kBAAkB,GAAG,CAAC;YAC3B,qBAAqB,EAAE,CAAC;QAE5B,IAAI,qBAAqB,IAAI,wBAAwB;YACjD,MAAM;QAEV,wBAAwB,GAAG,MAAM,iCAAiC,CAC9D,wBAAwB,CAAC,qBAAqB,GAAG,4BAA4B,CAChF,CAAC;QAEF,IAAI,CACA,sBAAsB,CAAC,WAAW,GAAG,gBAAgB;YACrD,wBAAwB,CAAC,WAAW,IAAI,sBAAsB,CAAC,WAAW,CAC7E,IAAI,CACD,sBAAsB,CAAC,WAAW,GAAG,gBAAgB;YACrD,wBAAwB,CAAC,WAAW,GAAG,gBAAgB;YACvD,wBAAwB,CAAC,WAAW,GAAG,sBAAsB,CAAC,WAAW,CAC5E,IAAI,CACD,sBAAsB,CAAC,WAAW,IAAI,gBAAgB;YACtD,wBAAwB,CAAC,WAAW,IAAI,gBAAgB;YACxD,wBAAwB,CAAC,qBAAqB,GAAG,sBAAsB,CAAC,qBAAqB,CAChG;YACG,sBAAsB,GAAG,wBAAwB,CAAC;IAC1D,CAAC;IAED,OAAO;QACH,sBAAsB,EAAE,sBAAsB,CAAC,qBAAqB;QACpE,qBAAqB,EAAE,sBAAsB,CAAC,iBAAiB;KAClE,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"findCharacterRemovalCountToFitChatHistoryInContext.js","sourceRoot":"","sources":["../../src/utils/findCharacterRemovalCountToFitChatHistoryInContext.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GbnfNumber.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,UAAW,SAAQ,YAAY;IACxB,eAAe,CAAU;IAEzC,YAAmB,EAAC,eAAe,GAAG,IAAI,EAA+B;QACrE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAEM,UAAU;QACb,MAAM,aAAa,GAAG,+BAA+B,CAAC;QAEtD,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,aAAa,GAAG,qCAAqC,CAAC;QAEjE,OAAO,aAAa,CAAC;IACzB,CAAC;IAEkB,WAAW;QAC1B,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC;QAE/C,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,CAAC;CACJ"}
1
+ {"version":3,"file":"GbnfNumber.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,UAAW,SAAQ,YAAY;IACxB,eAAe,CAAU;IAEzC,YAAmB,EAAC,eAAe,GAAG,IAAI,EAA6B;QACnE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAEM,UAAU;QACb,MAAM,aAAa,GAAG,+BAA+B,CAAC;QAEtD,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,aAAa,GAAG,qCAAqC,CAAC;QAEjE,OAAO,aAAa,CAAC;IACzB,CAAC;IAEkB,WAAW;QAC1B,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC;QAE/C,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"GbnfObjectMap.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfObjectMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAGlE,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC3B,MAAM,CAA8F;IACpG,UAAU,CAAqB;IAE/C,YACI,MAAmG,EACnG,aAAiC,IAAI,kBAAkB,EAAE;QAEzD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,qBAAqB,GAAG,CAAC,QAAiB,EAAE,OAAmC,EAAE,EAAE,CAAC,CACtF,QAAQ;YACJ,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC3F,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACjF,CAAC;QAEF,OAAO,IAAI,WAAW,CAAC;YACnB,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC5C,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,IAAI,WAAW,CAAC;oBACnB,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;oBAChE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC3C,qBAAqB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC;iBAClE,CAAC,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC,CAAC;YACF,KAAK;SACR,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACJ"}
1
+ {"version":3,"file":"GbnfObjectMap.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfObjectMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAGlE,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC3B,MAAM,CAA4F;IAClG,UAAU,CAAqB;IAE/C,YACI,MAAiG,EACjG,aAAiC,IAAI,kBAAkB,EAAE;QAEzD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,qBAAqB,GAAG,CAAC,QAAiB,EAAE,OAAmC,EAAE,EAAE,CAAC,CACtF,QAAQ;YACJ,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC3F,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACjF,CAAC;QAEF,OAAO,IAAI,WAAW,CAAC;YACnB,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC5C,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,IAAI,WAAW,CAAC;oBACnB,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;oBAChE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC3C,qBAAqB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC;iBAClE,CAAC,CAAC,UAAU,EAAE,CAAC;YACpB,CAAC,CAAC;YACF,KAAK;SACR,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACJ"}
@@ -8,8 +8,8 @@ export class GbnfOr extends GbnfTerminal {
8
8
  }
9
9
  getGrammar(grammarGenerator) {
10
10
  const mappedValues = this.values
11
- .map(v => v.resolve(grammarGenerator))
12
- .filter(value => value !== "" && value !== grammarNoValue);
11
+ .map((v) => v.resolve(grammarGenerator))
12
+ .filter((value) => value !== "" && value !== grammarNoValue);
13
13
  if (mappedValues.length === 0)
14
14
  return grammarNoValue;
15
15
  else if (mappedValues.length === 1)
@@ -18,8 +18,8 @@ export class GbnfOr extends GbnfTerminal {
18
18
  }
19
19
  resolve(grammarGenerator) {
20
20
  const mappedValues = this.values
21
- .map(v => v.resolve(grammarGenerator))
22
- .filter(value => value !== "" && value !== grammarNoValue);
21
+ .map((v) => v.resolve(grammarGenerator))
22
+ .filter((value) => value !== "" && value !== grammarNoValue);
23
23
  if (mappedValues.length === 0)
24
24
  return grammarNoValue;
25
25
  else if (mappedValues.length === 1)
@@ -1 +1 @@
1
- {"version":3,"file":"GbnfOr.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfOr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,MAAO,SAAQ,YAAY;IACpB,MAAM,CAA0B;IAEhD,YAAmB,MAA+B;QAC9C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACrC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAE/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACrC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAE/D,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CACJ"}
1
+ {"version":3,"file":"GbnfOr.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfOr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,MAAO,SAAQ,YAAY;IACpB,MAAM,CAA0B;IAEhD,YAAmB,MAA+B;QAC9C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CACJ"}
@@ -2,7 +2,7 @@ import * as crypto from "node:crypto";
2
2
  export async function hashString(text) {
3
3
  const hashBuffer = await crypto.subtle.digest("SHA-1", Buffer.from(text));
4
4
  return Array.from(new Uint8Array(hashBuffer))
5
- .map(b => b.toString(36))
5
+ .map((b) => b.toString(36))
6
6
  .join("");
7
7
  }
8
8
  //# sourceMappingURL=hashString.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hashString.js","sourceRoot":"","sources":["../../src/utils/hashString.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACxB,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"hashString.js","sourceRoot":"","sources":["../../src/utils/hashString.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -48,7 +48,7 @@ export function spawnCommand(command, args, cwd, env = process.env, progressLogs
48
48
  });
49
49
  child.on("error", reject);
50
50
  child.on("disconnect", () => reject(new Error(`Command ${getCommandString()} disconnected`)));
51
- child.on("close", code => {
51
+ child.on("close", (code) => {
52
52
  if (code == 0)
53
53
  resolve(createResult());
54
54
  else
@@ -1 +1 @@
1
- {"version":3,"file":"spawnCommand.js","sourceRoot":"","sources":["../../src/utils/spawnCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawnCommand.js","sourceRoot":"","sources":["../../src/utils/spawnCommand.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ export function transformPromisable(value, transformer) {
21
21
  * @param transformer - The transformer function
22
22
  */
23
23
  export function transformPromisables(values, transformer) {
24
- if (values.some(value => value instanceof Promise))
24
+ if (values.some((value) => value instanceof Promise))
25
25
  return Promise.all(values).then(transformer);
26
26
  return transformer(values);
27
27
  }
@@ -33,7 +33,6 @@ export function transformPromisables(values, transformer) {
33
33
  */
34
34
  export function promisableLoop({ condition, callback, afterthought = () => void 0, returnValue }) {
35
35
  function iterate() {
36
- // eslint-disable-next-line no-constant-condition
37
36
  while (true) {
38
37
  const shouldContinue = condition();
39
38
  if (shouldContinue instanceof Promise)
@@ -1 +1 @@
1
- {"version":3,"file":"transformPromisable.js","sourceRoot":"","sources":["../../src/utils/transformPromisable.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAO,KAAoB,EAAE,WAAwC;IACpG,IAAI,KAAK,YAAY,OAAO;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAChC,MAA4D,EAC5D,WAAgF;IAEhF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,EAC9B,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAC3B,WAAW,EAad;IACG,SAAS,OAAO;QACZ,iDAAiD;QACjD,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC;YAEnC,IAAI,cAAc,YAAY,OAAO;gBACjC,OAAO,cAAc;qBAChB,IAAI,CAAC,CAAC,cAAc,EAAiB,EAAE;oBACpC,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;wBACzB,IAAI,KAAK,YAAY,OAAO;4BACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;wBAE1E,OAAO,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;oBAED,OAAO,WAAW,EAAE,CAAC;gBACzB,CAAC,CAAC,CAAC;YAEX,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,IAAI,KAAK,YAAY,OAAO;oBACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBAE1E,MAAM,iBAAiB,GAAG,YAAY,EAAE,CAAC;gBACzC,IAAI,iBAAiB,YAAY,OAAO;oBACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE3C,SAAS;YACb,CAAC;YAED,OAAO,WAAW,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"transformPromisable.js","sourceRoot":"","sources":["../../src/utils/transformPromisable.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAO,KAAoB,EAAE,WAAwC;IACpG,IAAI,KAAK,YAAY,OAAO;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAChC,MAA0D,EAC1D,WAA8E;IAE9E,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC;QAChD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAI,EAC9B,SAAS,EACT,QAAQ,EACR,YAAY,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAC3B,WAAW,EAad;IACG,SAAS,OAAO;QACZ,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC;YAEnC,IAAI,cAAc,YAAY,OAAO;gBACjC,OAAO,cAAc;qBAChB,IAAI,CAAC,CAAC,cAAc,EAAiB,EAAE;oBACpC,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;wBACzB,IAAI,KAAK,YAAY,OAAO;4BACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;wBAE1E,OAAO,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;oBAED,OAAO,WAAW,EAAE,CAAC;gBACzB,CAAC,CAAC,CAAC;YAEX,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,IAAI,KAAK,YAAY,OAAO;oBACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBAE1E,MAAM,iBAAiB,GAAG,YAAY,EAAE,CAAC;gBACzC,IAAI,iBAAiB,YAAY,OAAO;oBACpC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE3C,SAAS;YACb,CAAC;YAED,OAAO,WAAW,EAAE,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -2,9 +2,10 @@ import { LlamaText } from "./LlamaText.js";
2
2
  /**
3
3
  * Truncate the given text starting from the specified index and try to round to the nearest word.
4
4
  * @param text - The text to truncate and round
5
- * @param truncateStartIndex - The index to start truncating the text at
5
+ * @param truncateSize - The size of the text to truncate
6
6
  * @param maxRound - The maximum number of extra characters to delete to round to the nearest word
7
+ * @param truncateStart - Whether to truncate from the start of the text. If false, truncate from the end.
7
8
  * @returns - The truncated and rounded text
8
9
  */
9
- export declare function truncateTextAndRoundToWords(text: string, truncateStartIndex: number, maxRound?: number): string;
10
- export declare function truncateLlamaTextAndRoundToWords(llamaText: LlamaText, truncateStartIndex: number, maxRound?: number): LlamaText;
10
+ export declare function truncateTextAndRoundToWords(text: string, truncateSize: number, maxRound?: number, truncateStart?: boolean): string;
11
+ export declare function truncateLlamaTextAndRoundToWords(llamaText: LlamaText, truncateSize: number, maxRound?: number, truncateStart?: boolean): LlamaText;
@@ -3,55 +3,106 @@ const truncatePrefix = "...";
3
3
  /**
4
4
  * Truncate the given text starting from the specified index and try to round to the nearest word.
5
5
  * @param text - The text to truncate and round
6
- * @param truncateStartIndex - The index to start truncating the text at
6
+ * @param truncateSize - The size of the text to truncate
7
7
  * @param maxRound - The maximum number of extra characters to delete to round to the nearest word
8
+ * @param truncateStart - Whether to truncate from the start of the text. If false, truncate from the end.
8
9
  * @returns - The truncated and rounded text
9
10
  */
10
- export function truncateTextAndRoundToWords(text, truncateStartIndex, maxRound = 6) {
11
- const res = text.slice(truncateStartIndex);
12
- if (res.length === 0)
13
- return res;
14
- if (truncateStartIndex === 0 || text[truncateStartIndex - 1] === " ")
15
- return res;
16
- const nextSpaceIndex = res.indexOf(" ");
17
- if (nextSpaceIndex < 0) {
18
- if (res.length <= maxRound || res.length < truncatePrefix.length)
11
+ export function truncateTextAndRoundToWords(text, truncateSize, maxRound = 6, truncateStart = false) {
12
+ if (truncateStart) {
13
+ const res = text.slice(truncateSize);
14
+ if (res.length === 0)
15
+ return res;
16
+ if (truncateSize === 0 || text[truncateSize - 1] === " ")
17
+ return res;
18
+ const nextSpaceIndex = res.indexOf(" ");
19
+ if (nextSpaceIndex < 0) {
20
+ if (res.length <= maxRound || res.length < truncatePrefix.length)
21
+ return "";
22
+ return truncatePrefix + res.slice(truncatePrefix.length);
23
+ }
24
+ if (nextSpaceIndex <= maxRound)
25
+ return res.slice(nextSpaceIndex + 1);
26
+ if (res.length < truncatePrefix.length)
19
27
  return "";
20
28
  return truncatePrefix + res.slice(truncatePrefix.length);
21
29
  }
22
- if (nextSpaceIndex <= maxRound)
23
- return res.slice(nextSpaceIndex + 1);
24
- if (res.length < truncatePrefix.length)
25
- return "";
26
- return truncatePrefix + res.slice(truncatePrefix.length);
30
+ else {
31
+ const res = text.slice(0, -truncateSize);
32
+ if (res.length === 0)
33
+ return res;
34
+ if (truncateSize === 0 || (text.length === res.length || text[res.length] === " "))
35
+ return res;
36
+ const nextSpaceIndex = res.lastIndexOf(" ");
37
+ if (nextSpaceIndex < 0) {
38
+ if (res.length <= maxRound || res.length < truncatePrefix.length)
39
+ return "";
40
+ return res.slice(truncatePrefix.length) + truncatePrefix;
41
+ }
42
+ if (nextSpaceIndex <= maxRound)
43
+ return res.slice(0, nextSpaceIndex);
44
+ if (res.length < truncatePrefix.length)
45
+ return "";
46
+ return res.slice(truncatePrefix.length) + truncatePrefix;
47
+ }
27
48
  }
28
- export function truncateLlamaTextAndRoundToWords(llamaText, truncateStartIndex, maxRound = 6) {
29
- if (truncateStartIndex <= 0)
49
+ export function truncateLlamaTextAndRoundToWords(llamaText, truncateSize, maxRound = 6, truncateStart = false) {
50
+ if (truncateSize <= 0)
30
51
  return llamaText;
31
- for (let i = 0; i < llamaText.values.length; i++) {
32
- const value = llamaText.values[i];
33
- if (value == null)
34
- continue;
35
- if (typeof value === "string") {
36
- if (value.length > truncateStartIndex) {
37
- return LlamaText([
38
- truncateTextAndRoundToWords(value, truncateStartIndex, maxRound),
39
- ...llamaText.values.slice(i + 1)
40
- ]);
52
+ if (truncateStart) {
53
+ for (let i = 0; i < llamaText.values.length; i++) {
54
+ const value = llamaText.values[i];
55
+ if (value == null)
56
+ continue;
57
+ if (typeof value === "string") {
58
+ if (value.length > truncateSize) {
59
+ return LlamaText([
60
+ truncateTextAndRoundToWords(value, truncateSize, maxRound, true),
61
+ ...llamaText.values.slice(i + 1)
62
+ ]);
63
+ }
64
+ truncateSize -= value.length;
65
+ }
66
+ else if (value instanceof SpecialToken) {
67
+ truncateSize--;
68
+ if (truncateSize <= 0)
69
+ return LlamaText(llamaText.values.slice(i + 1));
70
+ }
71
+ else {
72
+ void value;
73
+ // SpecialTokensText shouldn't be truncated
74
+ if (value.value.length > truncateSize)
75
+ return LlamaText(llamaText.values.slice(i + 1));
76
+ truncateSize -= value.value.length;
41
77
  }
42
- truncateStartIndex -= value.length;
43
- }
44
- else if (value instanceof SpecialToken) {
45
- truncateStartIndex--;
46
- if (truncateStartIndex <= 0)
47
- return LlamaText(llamaText.values.slice(i + 1));
48
78
  }
49
- else {
50
- void value;
51
- // SpecialTokensText shouldn't be truncated
52
- if (value.value.length > truncateStartIndex)
53
- return LlamaText(llamaText.values.slice(i + 1));
54
- truncateStartIndex -= value.value.length;
79
+ }
80
+ else {
81
+ for (let i = llamaText.values.length - 1; i >= 0; i--) {
82
+ const value = llamaText.values[i];
83
+ if (value == null)
84
+ continue;
85
+ if (typeof value === "string") {
86
+ if (value.length > truncateSize) {
87
+ return LlamaText([
88
+ ...llamaText.values.slice(0, i),
89
+ truncateTextAndRoundToWords(value, truncateSize, maxRound, false)
90
+ ]);
91
+ }
92
+ truncateSize -= value.length;
93
+ }
94
+ else if (value instanceof SpecialToken) {
95
+ truncateSize--;
96
+ if (truncateSize <= 0)
97
+ return LlamaText(llamaText.values.slice(0, i));
98
+ }
99
+ else {
100
+ void value;
101
+ // SpecialTokensText shouldn't be truncated
102
+ if (value.value.length > truncateSize)
103
+ return LlamaText(llamaText.values.slice(0, i));
104
+ truncateSize -= value.value.length;
105
+ }
55
106
  }
56
107
  }
57
108
  return LlamaText([]);
@@ -1 +1 @@
1
- {"version":3,"file":"truncateTextAndRoundToWords.js","sourceRoot":"","sources":["../../src/utils/truncateTextAndRoundToWords.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AAE1E,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAY,EAAE,kBAA0B,EAAE,WAAmB,CAAC;IACtG,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE3C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAChB,OAAO,GAAG,CAAC;IAEf,IAAI,kBAAkB,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,KAAK,GAAG;QAChE,OAAO,GAAG,CAAC;IAEf,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAExC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM;YAC5D,OAAO,EAAE,CAAC;QAEd,OAAO,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,cAAc,IAAI,QAAQ;QAC1B,OAAO,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM;QAClC,OAAO,EAAE,CAAC;IAEd,OAAO,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,SAAoB,EAAE,kBAA0B,EAAE,WAAmB,CAAC;IACnH,IAAI,kBAAkB,IAAI,CAAC;QACvB,OAAO,SAAS,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,KAAK,IAAI,IAAI;YACb,SAAS;QAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;gBACpC,OAAO,SAAS,CAAC;oBACb,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC;oBAChE,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnC,CAAC,CAAC;YACP,CAAC;YAED,kBAAkB,IAAI,KAAK,CAAC,MAAM,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YACvC,kBAAkB,EAAE,CAAC;YACrB,IAAI,kBAAkB,IAAI,CAAC;gBACvB,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,KAAM,KAAkC,CAAC;YAEzC,2CAA2C;YAC3C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAkB;gBACvC,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEpD,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7C,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"truncateTextAndRoundToWords.js","sourceRoot":"","sources":["../../src/utils/truncateTextAndRoundToWords.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import lockfile from "proper-lockfile";
2
2
  import { isLockActive, waitForLockRelease } from "lifecycle-utils";
3
3
  import { lockfileLockScope } from "./withLockfile.js";
4
4
  export async function waitForLockfileRelease({ resourcePath, checkInterval = 1000 * 5.5, staleDuration = 1000 * 10 }) {
5
- // eslint-disable-next-line no-constant-condition
6
5
  while (true) {
7
6
  if (isLockActive(lockfileLockScope, resourcePath)) {
8
7
  await waitForLockRelease(lockfileLockScope, resourcePath);
@@ -1 +1 @@
1
- {"version":3,"file":"waitForLockfileRelease.js","sourceRoot":"","sources":["../../src/utils/waitForLockfileRelease.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EACzC,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAGtE;IACG,iDAAiD;IACjD,OAAO,IAAI,EAAE,CAAC;QACV,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,CAAC;YAChD,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC1D,SAAS;QACb,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QACnG,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAEnE,IAAI,YAAY;YACZ,SAAS;QAEb,IAAI,CAAC,cAAc;YACf,OAAO;QAEX,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"waitForLockfileRelease.js","sourceRoot":"","sources":["../../src/utils/waitForLockfileRelease.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EACzC,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAGtE;IACG,OAAO,IAAI,EAAE,CAAC;QACV,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,CAAC;YAChD,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC1D,SAAS;QACb,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QACnG,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAEnE,IAAI,YAAY;YACZ,SAAS;QAEb,IAAI,CAAC,cAAc;YACf,OAAO;QAEX,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;AACL,CAAC"}
@@ -22,6 +22,12 @@ execute_process(COMMAND node -p "require('node-addon-api').include.slice(1,-1)"
22
22
  OUTPUT_VARIABLE NODE_ADDON_API_DIR
23
23
  OUTPUT_STRIP_TRAILING_WHITESPACE)
24
24
 
25
+ set(LLAMA_BUILD_COMMON ON)
26
+
27
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
28
+ add_compile_options(-Wno-c++17-extensions)
29
+ endif()
30
+
25
31
  include_directories(${NODE_ADDON_API_DIR} ${CMAKE_JS_INC})
26
32
 
27
33
  add_subdirectory("llama.cpp")
@@ -447,7 +447,7 @@ Napi::Value AddonContext::AddToBatch(const Napi::CallbackInfo& info) {
447
447
  GGML_ASSERT(batch.n_tokens + tokensLength <= batch_n_tokens);
448
448
 
449
449
  for (size_t i = 0; i < tokensLength; i++) {
450
- llama_batch_add(batch, static_cast<llama_token>(tokens[i]), firstTokenContextIndex + i, { sequenceId }, false);
450
+ common_batch_add(batch, static_cast<llama_token>(tokens[i]), firstTokenContextIndex + i, { sequenceId }, false);
451
451
  }
452
452
 
453
453
  if (generateLogitAtTheEnd) {
@@ -426,7 +426,7 @@ Napi::Value AddonModel::Tokenize(const Napi::CallbackInfo& info) {
426
426
  std::string text = info[0].As<Napi::String>().Utf8Value();
427
427
  bool specialTokens = info[1].As<Napi::Boolean>().Value();
428
428
 
429
- std::vector<llama_token> tokens = llama_tokenize(model, text, false, specialTokens);
429
+ std::vector<llama_token> tokens = common_tokenize(model, text, false, specialTokens);
430
430
 
431
431
  Napi::Uint32Array result = Napi::Uint32Array::New(info.Env(), tokens.size());
432
432
  for (size_t i = 0; i < tokens.size(); ++i) {
@@ -539,7 +539,7 @@ Napi::Value AddonModel::PrefixToken(const Napi::CallbackInfo& info) {
539
539
  return info.Env().Undefined();
540
540
  }
541
541
 
542
- return getNapiToken(info, model, llama_token_prefix(model));
542
+ return getNapiToken(info, model, llama_token_fim_pre(model));
543
543
  }
544
544
  Napi::Value AddonModel::MiddleToken(const Napi::CallbackInfo& info) {
545
545
  if (disposed) {
@@ -547,7 +547,7 @@ Napi::Value AddonModel::MiddleToken(const Napi::CallbackInfo& info) {
547
547
  return info.Env().Undefined();
548
548
  }
549
549
 
550
- return getNapiToken(info, model, llama_token_middle(model));
550
+ return getNapiToken(info, model, llama_token_fim_mid(model));
551
551
  }
552
552
  Napi::Value AddonModel::SuffixToken(const Napi::CallbackInfo& info) {
553
553
  if (disposed) {
@@ -555,7 +555,7 @@ Napi::Value AddonModel::SuffixToken(const Napi::CallbackInfo& info) {
555
555
  return info.Env().Undefined();
556
556
  }
557
557
 
558
- return getNapiToken(info, model, llama_token_suffix(model));
558
+ return getNapiToken(info, model, llama_token_fim_suf(model));
559
559
  }
560
560
  Napi::Value AddonModel::EotToken(const Napi::CallbackInfo& info) {
561
561
  if (disposed) {
@@ -52,11 +52,6 @@ void AddonSampler::dispose() {
52
52
  topPSampler = nullptr;
53
53
  }
54
54
 
55
- if (softmaxSampler != nullptr) {
56
- llama_sampler_free(softmaxSampler);
57
- softmaxSampler = nullptr;
58
- }
59
-
60
55
  if (seedSampler != nullptr) {
61
56
  llama_sampler_free(seedSampler);
62
57
  seedSampler = nullptr;
@@ -135,10 +130,6 @@ void AddonSampler::rebuildChainIfNeeded() {
135
130
  llama_sampler_chain_add(chain, temperatureSampler);
136
131
  }
137
132
 
138
- if (softmaxSampler != nullptr) {
139
- llama_sampler_chain_add(chain, softmaxSampler);
140
- }
141
-
142
133
  if (seedSampler != nullptr) {
143
134
  llama_sampler_chain_add(chain, seedSampler);
144
135
  }
@@ -206,10 +197,6 @@ Napi::Value AddonSampler::ApplyConfig(const Napi::CallbackInfo& info) {
206
197
  }
207
198
  }
208
199
 
209
- if (softmaxSampler == nullptr) {
210
- softmaxSampler = llama_sampler_init_softmax();
211
- }
212
-
213
200
  if (config.Has("minP")) {
214
201
  auto minP = config.Get("minP").As<Napi::Number>().FloatValue();
215
202
  if (minP != minPSampler_minP) {
@@ -25,8 +25,6 @@ class AddonSampler : public Napi::ObjectWrap<AddonSampler> {
25
25
 
26
26
  llama_sampler * topPSampler = nullptr;
27
27
  float topPSampler_topP = 0.0f; // Top p sampling >=1.0 = disabled
28
-
29
- llama_sampler * softmaxSampler = nullptr;
30
28
 
31
29
  llama_sampler * seedSampler = nullptr;
32
30
  uint32_t seedSampler_seed = 0;
@@ -8,6 +8,7 @@
8
8
  #include "globals/addonLog.h"
9
9
  #include "globals/addonProgress.h"
10
10
  #include "globals/getGpuInfo.h"
11
+ #include "globals/getSwapInfo.h"
11
12
 
12
13
  bool backendInitialized = false;
13
14
  bool backendDisposed = false;
@@ -203,6 +204,7 @@ Napi::Object registerCallback(Napi::Env env, Napi::Object exports) {
203
204
  Napi::PropertyDescriptor::Function("getGpuVramInfo", getGpuVramInfo),
204
205
  Napi::PropertyDescriptor::Function("getGpuDeviceInfo", getGpuDeviceInfo),
205
206
  Napi::PropertyDescriptor::Function("getGpuType", getGpuType),
207
+ Napi::PropertyDescriptor::Function("getSwapInfo", getSwapInfo),
206
208
  Napi::PropertyDescriptor::Function("init", addonInit),
207
209
  Napi::PropertyDescriptor::Function("dispose", addonDispose),
208
210
  });
@@ -26,6 +26,7 @@ void logVulkanWarning(const char* message) {
26
26
  Napi::Value getGpuVramInfo(const Napi::CallbackInfo& info) {
27
27
  uint64_t total = 0;
28
28
  uint64_t used = 0;
29
+ uint64_t unifiedVramSize = 0;
29
30
 
30
31
  #ifdef GPU_INFO_USE_CUDA
31
32
  size_t cudaDeviceTotal = 0;
@@ -41,26 +42,31 @@ Napi::Value getGpuVramInfo(const Napi::CallbackInfo& info) {
41
42
  #ifdef GPU_INFO_USE_VULKAN
42
43
  uint64_t vulkanDeviceTotal = 0;
43
44
  uint64_t vulkanDeviceUsed = 0;
44
- const bool vulkanDeviceSupportsMemoryBudgetExtension = gpuInfoGetTotalVulkanDevicesInfo(&vulkanDeviceTotal, &vulkanDeviceUsed, logVulkanWarning);
45
+ uint64_t vulkanDeviceUnifiedVramSize = 0;
46
+ const bool vulkanDeviceSupportsMemoryBudgetExtension = gpuInfoGetTotalVulkanDevicesInfo(&vulkanDeviceTotal, &vulkanDeviceUsed, &vulkanDeviceUnifiedVramSize, logVulkanWarning);
45
47
 
46
48
  if (vulkanDeviceSupportsMemoryBudgetExtension) {
47
49
  total += vulkanDeviceTotal;
48
50
  used += vulkanDeviceUsed;
51
+ unifiedVramSize += vulkanDeviceUnifiedVramSize;
49
52
  }
50
53
  #endif
51
54
 
52
55
  #ifdef GPU_INFO_USE_METAL
53
56
  uint64_t metalDeviceTotal = 0;
54
57
  uint64_t metalDeviceUsed = 0;
55
- getMetalGpuInfo(&metalDeviceTotal, &metalDeviceUsed);
58
+ uint64_t metalDeviceUnifiedVramSize = 0;
59
+ getMetalGpuInfo(&metalDeviceTotal, &metalDeviceUsed, &metalDeviceUnifiedVramSize);
56
60
 
57
61
  total += metalDeviceTotal;
58
62
  used += metalDeviceUsed;
63
+ unifiedVramSize += metalDeviceUnifiedVramSize;
59
64
  #endif
60
65
 
61
66
  Napi::Object result = Napi::Object::New(info.Env());
62
67
  result.Set("total", Napi::Number::From(info.Env(), total));
63
68
  result.Set("used", Napi::Number::From(info.Env(), used));
69
+ result.Set("unifiedSize", Napi::Number::From(info.Env(), unifiedVramSize));
64
70
 
65
71
  return result;
66
72
  }
@@ -0,0 +1,69 @@
1
+ #include "getSwapInfo.h"
2
+ #include "addonLog.h"
3
+
4
+ #ifdef __APPLE__
5
+ #include <iostream>
6
+ #include <mach/mach.h>
7
+ #include <sys/sysctl.h>
8
+ #elif __linux__
9
+ #include <iostream>
10
+ #include <sys/sysinfo.h>
11
+ #elif _WIN32
12
+ #include <iostream>
13
+ #include <windows.h>
14
+ #include <psapi.h>
15
+ #endif
16
+
17
+
18
+ Napi::Value getSwapInfo(const Napi::CallbackInfo& info) {
19
+ uint64_t totalSwap = 0;
20
+ uint64_t freeSwap = 0;
21
+ uint64_t maxSize = 0;
22
+ bool maxSizeSet = true;
23
+
24
+ #ifdef __APPLE__
25
+ struct xsw_usage swapInfo;
26
+ size_t size = sizeof(swapInfo);
27
+
28
+ if (sysctlbyname("vm.swapusage", &swapInfo, &size, NULL, 0) == 0) {
29
+ totalSwap = swapInfo.xsu_total;
30
+ freeSwap = swapInfo.xsu_avail;
31
+ maxSizeSet = false;
32
+ } else {
33
+ addonLlamaCppLogCallback(GGML_LOG_LEVEL_ERROR, std::string("Failed to get swap info").c_str(), nullptr);
34
+ }
35
+ #elif __linux__
36
+ struct sysinfo sysInfo;
37
+
38
+ if (sysinfo(&sysInfo) == 0) {
39
+ totalSwap = sysInfo.totalswap;
40
+ freeSwap = sysInfo.freeswap;
41
+ maxSize = sysInfo.totalswap;
42
+ } else {
43
+ addonLlamaCppLogCallback(GGML_LOG_LEVEL_ERROR, std::string("Failed to get swap info").c_str(), nullptr);
44
+ }
45
+ #elif _WIN32
46
+ MEMORYSTATUSEX memInfo;
47
+ memInfo.dwLength = sizeof(MEMORYSTATUSEX);
48
+
49
+ if (GlobalMemoryStatusEx(&memInfo)) {
50
+ PERFORMANCE_INFORMATION perfInfo;
51
+ perfInfo.cb = sizeof(PERFORMANCE_INFORMATION);
52
+ if (GetPerformanceInfo(&perfInfo, sizeof(perfInfo))) {
53
+ totalSwap = memInfo.ullTotalPageFile;
54
+ freeSwap = memInfo.ullAvailPageFile;
55
+ maxSize = perfInfo.CommitLimit * perfInfo.PageSize;
56
+ } else {
57
+ addonLlamaCppLogCallback(GGML_LOG_LEVEL_ERROR, std::string("Failed to get max pagefile size").c_str(), nullptr);
58
+ }
59
+ } else {
60
+ addonLlamaCppLogCallback(GGML_LOG_LEVEL_ERROR, std::string("Failed to get pagefile info").c_str(), nullptr);
61
+ }
62
+ #endif
63
+
64
+ Napi::Object obj = Napi::Object::New(info.Env());
65
+ obj.Set("total", Napi::Number::New(info.Env(), totalSwap));
66
+ obj.Set("free", Napi::Number::New(info.Env(), freeSwap));
67
+ obj.Set("maxSize", maxSizeSet ? Napi::Number::New(info.Env(), maxSize) : Napi::Number::New(info.Env(), -1));
68
+ return obj;
69
+ }
@@ -0,0 +1,4 @@
1
+ #pragma once
2
+ #include "napi.h"
3
+
4
+ Napi::Value getSwapInfo(const Napi::CallbackInfo& info);
@@ -1,3 +1,3 @@
1
1
  {
2
- "release": "b3889"
2
+ "release": "b3995"
3
3
  }
Binary file
@@ -4,5 +4,5 @@
4
4
  #include <string>
5
5
  #include <vector>
6
6
 
7
- void getMetalGpuInfo(uint64_t * total, uint64_t * used);
7
+ void getMetalGpuInfo(uint64_t * total, uint64_t * used, uint64_t * unifiedMemorySize);
8
8
  void getMetalGpuDeviceNames(std::vector<std::string> * deviceNames);