node-llama-cpp 3.0.0-beta.1 → 3.0.0-beta.11

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 (354) hide show
  1. package/README.md +2 -0
  2. package/dist/ChatWrapper.d.ts +49 -0
  3. package/dist/ChatWrapper.js +120 -0
  4. package/dist/ChatWrapper.js.map +1 -0
  5. package/dist/{utils/getBin.d.ts → bindings/AddonTypes.d.ts} +14 -4
  6. package/dist/bindings/AddonTypes.js +2 -0
  7. package/dist/bindings/AddonTypes.js.map +1 -0
  8. package/dist/bindings/Llama.d.ts +23 -0
  9. package/dist/bindings/Llama.js +225 -0
  10. package/dist/bindings/Llama.js.map +1 -0
  11. package/dist/bindings/getLlama.d.ts +103 -0
  12. package/dist/bindings/getLlama.js +228 -0
  13. package/dist/bindings/getLlama.js.map +1 -0
  14. package/dist/bindings/types.d.ts +33 -0
  15. package/dist/bindings/types.js +30 -0
  16. package/dist/bindings/types.js.map +1 -0
  17. package/dist/bindings/utils/NoBinaryFoundError.d.ts +2 -0
  18. package/dist/bindings/utils/NoBinaryFoundError.js +7 -0
  19. package/dist/bindings/utils/NoBinaryFoundError.js.map +1 -0
  20. package/dist/{utils → bindings/utils}/binariesGithubRelease.js +1 -1
  21. package/dist/bindings/utils/binariesGithubRelease.js.map +1 -0
  22. package/dist/bindings/utils/clearAllLocalBuilds.d.ts +1 -0
  23. package/dist/bindings/utils/clearAllLocalBuilds.js +47 -0
  24. package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -0
  25. package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +11 -0
  26. package/dist/bindings/utils/cloneLlamaCppRepo.js +155 -0
  27. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -0
  28. package/dist/bindings/utils/compileLLamaCpp.d.ts +12 -0
  29. package/dist/bindings/utils/compileLLamaCpp.js +157 -0
  30. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -0
  31. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.d.ts +5 -0
  32. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +85 -0
  33. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -0
  34. package/dist/bindings/utils/getCanUsePrebuiltBinaries.d.ts +1 -0
  35. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js +8 -0
  36. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js.map +1 -0
  37. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.d.ts +2 -0
  38. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js +21 -0
  39. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js.map +1 -0
  40. package/dist/bindings/utils/getPlatform.d.ts +2 -0
  41. package/dist/bindings/utils/getPlatform.js +15 -0
  42. package/dist/bindings/utils/getPlatform.js.map +1 -0
  43. package/dist/bindings/utils/lastBuildInfo.d.ts +6 -0
  44. package/dist/bindings/utils/lastBuildInfo.js +17 -0
  45. package/dist/bindings/utils/lastBuildInfo.js.map +1 -0
  46. package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +2 -0
  47. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +28 -0
  48. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -0
  49. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.d.ts +26 -0
  50. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js +43 -0
  51. package/dist/bindings/utils/resolveChatWrapperBasedOnWrapperTypeName.js.map +1 -0
  52. package/dist/bindings/utils/resolveCustomCmakeOptions.d.ts +1 -0
  53. package/dist/bindings/utils/resolveCustomCmakeOptions.js +43 -0
  54. package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -0
  55. package/dist/chatWrappers/AlpacaChatWrapper.d.ts +12 -0
  56. package/dist/chatWrappers/AlpacaChatWrapper.js +21 -0
  57. package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -0
  58. package/dist/chatWrappers/ChatMLChatWrapper.d.ts +18 -0
  59. package/dist/chatWrappers/ChatMLChatWrapper.js +83 -0
  60. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -0
  61. package/dist/chatWrappers/EmptyChatWrapper.d.ts +4 -0
  62. package/dist/chatWrappers/EmptyChatWrapper.js +5 -0
  63. package/dist/chatWrappers/EmptyChatWrapper.js.map +1 -0
  64. package/dist/chatWrappers/FalconChatWrapper.d.ts +21 -0
  65. package/dist/chatWrappers/FalconChatWrapper.js +104 -0
  66. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -0
  67. package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +41 -0
  68. package/dist/chatWrappers/FunctionaryChatWrapper.js +200 -0
  69. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -0
  70. package/dist/chatWrappers/GeneralChatWrapper.d.ts +21 -0
  71. package/dist/chatWrappers/GeneralChatWrapper.js +112 -0
  72. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -0
  73. package/dist/chatWrappers/LlamaChatWrapper.d.ts +13 -0
  74. package/dist/chatWrappers/LlamaChatWrapper.js +78 -0
  75. package/dist/chatWrappers/LlamaChatWrapper.js.map +1 -0
  76. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +5 -5
  77. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +28 -17
  78. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +1 -1
  79. package/dist/cli/cli.js +8 -0
  80. package/dist/cli/cli.js.map +1 -1
  81. package/dist/cli/commands/BuildCommand.d.ts +2 -1
  82. package/dist/cli/commands/BuildCommand.js +50 -10
  83. package/dist/cli/commands/BuildCommand.js.map +1 -1
  84. package/dist/cli/commands/ChatCommand.d.ts +11 -4
  85. package/dist/cli/commands/ChatCommand.js +138 -64
  86. package/dist/cli/commands/ChatCommand.js.map +1 -1
  87. package/dist/cli/commands/ClearCommand.js +4 -6
  88. package/dist/cli/commands/ClearCommand.js.map +1 -1
  89. package/dist/cli/commands/CompleteCommand.d.ts +25 -0
  90. package/dist/cli/commands/CompleteCommand.js +278 -0
  91. package/dist/cli/commands/CompleteCommand.js.map +1 -0
  92. package/dist/cli/commands/DebugCommand.d.ts +7 -0
  93. package/dist/cli/commands/DebugCommand.js +59 -0
  94. package/dist/cli/commands/DebugCommand.js.map +1 -0
  95. package/dist/cli/commands/DownloadCommand.d.ts +2 -1
  96. package/dist/cli/commands/DownloadCommand.js +47 -40
  97. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  98. package/dist/cli/commands/InfillCommand.d.ts +27 -0
  99. package/dist/cli/commands/InfillCommand.js +316 -0
  100. package/dist/cli/commands/InfillCommand.js.map +1 -0
  101. package/dist/cli/commands/OnPostInstallCommand.js +7 -10
  102. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
  103. package/dist/config.d.ts +10 -3
  104. package/dist/config.js +18 -7
  105. package/dist/config.js.map +1 -1
  106. package/dist/consts.d.ts +1 -0
  107. package/dist/consts.js +2 -0
  108. package/dist/consts.js.map +1 -0
  109. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +154 -0
  110. package/dist/evaluator/LlamaChat/LlamaChat.js +684 -0
  111. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -0
  112. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.d.ts +22 -0
  113. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js +121 -0
  114. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js.map +1 -0
  115. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +16 -0
  116. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +135 -0
  117. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
  118. package/dist/{llamaEvaluator → evaluator/LlamaChatSession}/LlamaChatSession.d.ts +59 -25
  119. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +219 -0
  120. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
  121. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +7 -0
  122. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +8 -0
  123. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
  124. package/dist/evaluator/LlamaCompletion.d.ts +148 -0
  125. package/dist/evaluator/LlamaCompletion.js +402 -0
  126. package/dist/evaluator/LlamaCompletion.js.map +1 -0
  127. package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.d.ts +20 -23
  128. package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.js +77 -107
  129. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -0
  130. package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.d.ts +6 -14
  131. package/dist/evaluator/LlamaContext/types.js.map +1 -0
  132. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +1 -0
  133. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +1 -0
  134. package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +1 -0
  135. package/dist/evaluator/LlamaEmbeddingContext.d.ts +37 -0
  136. package/dist/evaluator/LlamaEmbeddingContext.js +78 -0
  137. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -0
  138. package/dist/evaluator/LlamaGrammar.d.ts +30 -0
  139. package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.js +14 -18
  140. package/dist/evaluator/LlamaGrammar.js.map +1 -0
  141. package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.js +4 -4
  142. package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -0
  143. package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.d.ts +2 -1
  144. package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.js +4 -2
  145. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -0
  146. package/dist/{llamaEvaluator → evaluator}/LlamaModel.d.ts +24 -6
  147. package/dist/{llamaEvaluator → evaluator}/LlamaModel.js +51 -12
  148. package/dist/evaluator/LlamaModel.js.map +1 -0
  149. package/dist/index.d.ts +30 -17
  150. package/dist/index.js +29 -15
  151. package/dist/index.js.map +1 -1
  152. package/dist/state.d.ts +2 -0
  153. package/dist/state.js +7 -0
  154. package/dist/state.js.map +1 -1
  155. package/dist/types.d.ts +72 -3
  156. package/dist/types.js +5 -1
  157. package/dist/types.js.map +1 -1
  158. package/dist/utils/LlamaText.d.ts +42 -0
  159. package/dist/utils/LlamaText.js +207 -0
  160. package/dist/utils/LlamaText.js.map +1 -0
  161. package/dist/utils/StopGenerationDetector.d.ts +28 -0
  162. package/dist/utils/StopGenerationDetector.js +205 -0
  163. package/dist/utils/StopGenerationDetector.js.map +1 -0
  164. package/dist/utils/TokenStreamRegulator.d.ts +30 -0
  165. package/dist/utils/TokenStreamRegulator.js +96 -0
  166. package/dist/utils/TokenStreamRegulator.js.map +1 -0
  167. package/dist/utils/UnsupportedError.d.ts +2 -0
  168. package/dist/utils/UnsupportedError.js +7 -0
  169. package/dist/utils/UnsupportedError.js.map +1 -0
  170. package/dist/utils/appendUserMessageToChatHistory.d.ts +2 -0
  171. package/dist/utils/appendUserMessageToChatHistory.js +18 -0
  172. package/dist/utils/appendUserMessageToChatHistory.js.map +1 -0
  173. package/dist/utils/cmake.js +16 -11
  174. package/dist/utils/cmake.js.map +1 -1
  175. package/dist/utils/compareTokens.d.ts +2 -0
  176. package/dist/utils/compareTokens.js +4 -0
  177. package/dist/utils/compareTokens.js.map +1 -0
  178. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +18 -0
  179. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +61 -0
  180. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -0
  181. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +1 -0
  182. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +17 -0
  183. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  184. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +1 -1
  185. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
  186. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.d.ts +6 -0
  187. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js +21 -0
  188. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -0
  189. package/dist/utils/gbnfJson/types.d.ts +1 -1
  190. package/dist/utils/gbnfJson/types.js.map +1 -1
  191. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +1 -0
  192. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  193. package/dist/utils/getConsoleLogPrefix.d.ts +1 -0
  194. package/dist/utils/getConsoleLogPrefix.js +9 -0
  195. package/dist/utils/getConsoleLogPrefix.js.map +1 -0
  196. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +1 -15
  197. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  198. package/dist/utils/getGrammarsFolder.d.ts +2 -1
  199. package/dist/utils/getGrammarsFolder.js +8 -7
  200. package/dist/utils/getGrammarsFolder.js.map +1 -1
  201. package/dist/utils/getModuleVersion.d.ts +1 -0
  202. package/dist/utils/getModuleVersion.js +13 -0
  203. package/dist/utils/getModuleVersion.js.map +1 -0
  204. package/dist/utils/getQueuedTokensBeforeStopTrigger.d.ts +6 -0
  205. package/dist/utils/getQueuedTokensBeforeStopTrigger.js +22 -0
  206. package/dist/utils/getQueuedTokensBeforeStopTrigger.js.map +1 -0
  207. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.d.ts +2 -0
  208. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +49 -0
  209. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -0
  210. package/dist/utils/gitReleaseBundles.js +6 -5
  211. package/dist/utils/gitReleaseBundles.js.map +1 -1
  212. package/dist/utils/hashString.d.ts +1 -0
  213. package/dist/utils/hashString.js +8 -0
  214. package/dist/utils/hashString.js.map +1 -0
  215. package/dist/utils/isLockfileActive.d.ts +4 -0
  216. package/dist/utils/isLockfileActive.js +12 -0
  217. package/dist/utils/isLockfileActive.js.map +1 -0
  218. package/dist/utils/parseModelTypeDescription.d.ts +1 -1
  219. package/dist/utils/prettyPrintObject.d.ts +1 -0
  220. package/dist/utils/prettyPrintObject.js +40 -0
  221. package/dist/utils/prettyPrintObject.js.map +1 -0
  222. package/dist/utils/removeNullFields.d.ts +1 -0
  223. package/dist/utils/removeNullFields.js +8 -0
  224. package/dist/utils/removeNullFields.js.map +1 -1
  225. package/dist/utils/resolveChatWrapper.d.ts +4 -0
  226. package/dist/utils/resolveChatWrapper.js +16 -0
  227. package/dist/utils/resolveChatWrapper.js.map +1 -0
  228. package/dist/utils/resolveGithubRelease.d.ts +2 -0
  229. package/dist/utils/resolveGithubRelease.js +36 -0
  230. package/dist/utils/resolveGithubRelease.js.map +1 -0
  231. package/dist/utils/spawnCommand.d.ts +1 -1
  232. package/dist/utils/spawnCommand.js +4 -2
  233. package/dist/utils/spawnCommand.js.map +1 -1
  234. package/dist/utils/tokenizeInput.d.ts +3 -0
  235. package/dist/utils/tokenizeInput.js +9 -0
  236. package/dist/utils/tokenizeInput.js.map +1 -0
  237. package/dist/utils/truncateTextAndRoundToWords.d.ts +8 -0
  238. package/dist/utils/truncateTextAndRoundToWords.js +27 -0
  239. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -0
  240. package/dist/utils/waitForLockfileRelease.d.ts +5 -0
  241. package/dist/utils/waitForLockfileRelease.js +20 -0
  242. package/dist/utils/waitForLockfileRelease.js.map +1 -0
  243. package/dist/utils/withLockfile.d.ts +7 -0
  244. package/dist/utils/withLockfile.js +44 -0
  245. package/dist/utils/withLockfile.js.map +1 -0
  246. package/dist/utils/withOra.js +11 -1
  247. package/dist/utils/withOra.js.map +1 -1
  248. package/dist/utils/withStatusLogs.d.ts +2 -1
  249. package/dist/utils/withStatusLogs.js +11 -8
  250. package/dist/utils/withStatusLogs.js.map +1 -1
  251. package/llama/.clang-format +1 -2
  252. package/llama/CMakeLists.txt +87 -2
  253. package/llama/addon.cpp +319 -31
  254. package/llama/binariesGithubRelease.json +1 -1
  255. package/llama/gitRelease.bundle +0 -0
  256. package/llama/gpuInfo/cuda-gpu-info.cu +99 -0
  257. package/llama/gpuInfo/cuda-gpu-info.h +7 -0
  258. package/llama/gpuInfo/metal-gpu-info.h +5 -0
  259. package/llama/gpuInfo/metal-gpu-info.mm +17 -0
  260. package/llama/llama.cpp.info.json +4 -0
  261. package/llamaBins/linux-arm64/.buildMetadata.json +1 -0
  262. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  263. package/llamaBins/linux-armv7l/.buildMetadata.json +1 -0
  264. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  265. package/llamaBins/linux-x64/.buildMetadata.json +1 -0
  266. package/llamaBins/linux-x64/llama-addon.node +0 -0
  267. package/llamaBins/linux-x64-cuda/.buildMetadata.json +1 -0
  268. package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
  269. package/llamaBins/mac-arm64-metal/.buildMetadata.json +1 -0
  270. package/llamaBins/mac-arm64-metal/ggml-metal.metal +6491 -0
  271. package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
  272. package/llamaBins/mac-x64/.buildMetadata.json +1 -0
  273. package/llamaBins/mac-x64/llama-addon.node +0 -0
  274. package/llamaBins/win-x64/.buildMetadata.json +1 -0
  275. package/llamaBins/win-x64/llama-addon.exp +0 -0
  276. package/llamaBins/win-x64/llama-addon.node +0 -0
  277. package/llamaBins/win-x64-cuda/.buildMetadata.json +1 -0
  278. package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
  279. package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
  280. package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
  281. package/package.json +37 -15
  282. package/dist/AbortError.d.ts +0 -2
  283. package/dist/AbortError.js +0 -7
  284. package/dist/AbortError.js.map +0 -1
  285. package/dist/ChatPromptWrapper.d.ts +0 -11
  286. package/dist/ChatPromptWrapper.js +0 -20
  287. package/dist/ChatPromptWrapper.js.map +0 -1
  288. package/dist/chatWrappers/ChatMLChatPromptWrapper.d.ts +0 -12
  289. package/dist/chatWrappers/ChatMLChatPromptWrapper.js +0 -22
  290. package/dist/chatWrappers/ChatMLChatPromptWrapper.js.map +0 -1
  291. package/dist/chatWrappers/EmptyChatPromptWrapper.d.ts +0 -4
  292. package/dist/chatWrappers/EmptyChatPromptWrapper.js +0 -5
  293. package/dist/chatWrappers/EmptyChatPromptWrapper.js.map +0 -1
  294. package/dist/chatWrappers/FalconChatPromptWrapper.d.ts +0 -19
  295. package/dist/chatWrappers/FalconChatPromptWrapper.js +0 -33
  296. package/dist/chatWrappers/FalconChatPromptWrapper.js.map +0 -1
  297. package/dist/chatWrappers/GeneralChatPromptWrapper.d.ts +0 -19
  298. package/dist/chatWrappers/GeneralChatPromptWrapper.js +0 -38
  299. package/dist/chatWrappers/GeneralChatPromptWrapper.js.map +0 -1
  300. package/dist/chatWrappers/LlamaChatPromptWrapper.d.ts +0 -12
  301. package/dist/chatWrappers/LlamaChatPromptWrapper.js +0 -23
  302. package/dist/chatWrappers/LlamaChatPromptWrapper.js.map +0 -1
  303. package/dist/chatWrappers/generateContextTextFromConversationHistory.d.ts +0 -15
  304. package/dist/chatWrappers/generateContextTextFromConversationHistory.js +0 -39
  305. package/dist/chatWrappers/generateContextTextFromConversationHistory.js.map +0 -1
  306. package/dist/llamaEvaluator/LlamaBins.d.ts +0 -19
  307. package/dist/llamaEvaluator/LlamaBins.js +0 -5
  308. package/dist/llamaEvaluator/LlamaBins.js.map +0 -1
  309. package/dist/llamaEvaluator/LlamaChatSession.js +0 -290
  310. package/dist/llamaEvaluator/LlamaChatSession.js.map +0 -1
  311. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +0 -1
  312. package/dist/llamaEvaluator/LlamaContext/types.js.map +0 -1
  313. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +0 -1
  314. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +0 -1
  315. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +0 -1
  316. package/dist/llamaEvaluator/LlamaGrammar.d.ts +0 -32
  317. package/dist/llamaEvaluator/LlamaGrammar.js.map +0 -1
  318. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +0 -1
  319. package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +0 -1
  320. package/dist/llamaEvaluator/LlamaModel.js.map +0 -1
  321. package/dist/utils/binariesGithubRelease.js.map +0 -1
  322. package/dist/utils/clearLlamaBuild.d.ts +0 -1
  323. package/dist/utils/clearLlamaBuild.js +0 -12
  324. package/dist/utils/clearLlamaBuild.js.map +0 -1
  325. package/dist/utils/cloneLlamaCppRepo.d.ts +0 -2
  326. package/dist/utils/cloneLlamaCppRepo.js +0 -102
  327. package/dist/utils/cloneLlamaCppRepo.js.map +0 -1
  328. package/dist/utils/compileLLamaCpp.d.ts +0 -8
  329. package/dist/utils/compileLLamaCpp.js +0 -127
  330. package/dist/utils/compileLLamaCpp.js.map +0 -1
  331. package/dist/utils/getBin.js +0 -78
  332. package/dist/utils/getBin.js.map +0 -1
  333. package/dist/utils/getReleaseInfo.d.ts +0 -7
  334. package/dist/utils/getReleaseInfo.js +0 -30
  335. package/dist/utils/getReleaseInfo.js.map +0 -1
  336. package/dist/utils/getTextCompletion.d.ts +0 -3
  337. package/dist/utils/getTextCompletion.js +0 -12
  338. package/dist/utils/getTextCompletion.js.map +0 -1
  339. package/dist/utils/usedBinFlag.d.ts +0 -6
  340. package/dist/utils/usedBinFlag.js +0 -15
  341. package/dist/utils/usedBinFlag.js.map +0 -1
  342. package/llama/usedBin.json +0 -3
  343. package/llamaBins/mac-arm64/ggml-metal.metal +0 -2929
  344. package/llamaBins/mac-arm64/llama-addon.node +0 -0
  345. package/llamaBins/mac-x64/ggml-metal.metal +0 -2929
  346. /package/dist/{utils → bindings/utils}/binariesGithubRelease.d.ts +0 -0
  347. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.js +0 -0
  348. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.d.ts +0 -0
  349. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js +0 -0
  350. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.d.ts +0 -0
  351. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js +0 -0
  352. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +0 -0
  353. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js +0 -0
  354. /package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.d.ts +0 -0
@@ -0,0 +1,8 @@
1
+ import * as crypto from "node:crypto";
2
+ export async function hashString(text) {
3
+ const hashBuffer = await crypto.subtle.digest("SHA-1", Buffer.from(text));
4
+ return Array.from(new Uint8Array(hashBuffer))
5
+ .map(b => b.toString(36))
6
+ .join("");
7
+ }
8
+ //# sourceMappingURL=hashString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashString.js","sourceRoot":"","sources":["../../src/utils/hashString.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IACzC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACxB,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function isLockfileActive({ resourcePath, staleDuration }: {
2
+ resourcePath: string;
3
+ staleDuration?: number;
4
+ }): Promise<boolean>;
@@ -0,0 +1,12 @@
1
+ import lockfile from "proper-lockfile";
2
+ import { isLockActive } from "lifecycle-utils";
3
+ import { lockfileLockScope } from "./withLockfile.js";
4
+ export async function isLockfileActive({ resourcePath, staleDuration = 1000 * 10 }) {
5
+ if (isLockActive(lockfileLockScope, resourcePath))
6
+ return true;
7
+ const lockfileActive = await lockfile.check(resourcePath, { stale: staleDuration, realpath: false });
8
+ if (lockfileActive)
9
+ return true;
10
+ return isLockActive(lockfileLockScope, resourcePath);
11
+ }
12
+ //# sourceMappingURL=isLockfileActive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isLockfileActive.js","sourceRoot":"","sources":["../../src/utils/isLockfileActive.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACnC,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAG1C;IACG,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC;QAC7C,OAAO,IAAI,CAAC;IAEhB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;IACnG,IAAI,cAAc;QACd,OAAO,IAAI,CAAC;IAEhB,OAAO,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AddonModelArchName, AddonModelFileTypeName, AddonModelTypeName, ModelTypeDescription } from "./getBin.js";
1
+ import type { AddonModelArchName, AddonModelFileTypeName, AddonModelTypeName, ModelTypeDescription } from "../bindings/AddonTypes.js";
2
2
  export declare function parseModelTypeDescription(modelTypeDescription: ModelTypeDescription): {
3
3
  arch: AddonModelArchName;
4
4
  type: AddonModelTypeName;
@@ -0,0 +1 @@
1
+ export declare function prettyPrintObject(obj: any, indent?: number): string;
@@ -0,0 +1,40 @@
1
+ import chalk from "chalk";
2
+ export function prettyPrintObject(obj, indent = 4) {
3
+ if (typeof obj === "string")
4
+ return chalk.green(JSON.stringify(obj, null, 4));
5
+ else if (typeof obj === "number")
6
+ return chalk.yellow(obj);
7
+ else if (typeof obj === "boolean")
8
+ return chalk.magenta.italic(obj);
9
+ else if (obj === null)
10
+ return chalk.magenta.italic("null");
11
+ else if (obj === undefined)
12
+ return chalk.magenta.italic("undefined");
13
+ else if (obj instanceof Array)
14
+ return [
15
+ chalk.whiteBright("["),
16
+ obj.map(prettyPrintObject)
17
+ .join(chalk.whiteBright(", ")),
18
+ chalk.whiteBright("]")
19
+ ].join("");
20
+ const rows = [];
21
+ for (const key of Object.keys(obj)) {
22
+ const value = obj[key];
23
+ rows.push([
24
+ " ".repeat(indent),
25
+ canStringBeKeyWithoutQuotes(key)
26
+ ? chalk.red(key)
27
+ : chalk.green(JSON.stringify(key)),
28
+ chalk.whiteBright(": "),
29
+ prettyPrintObject(value, indent)
30
+ .replaceAll("\n", "\n" + " ".repeat(indent))
31
+ ].join(""));
32
+ }
33
+ if (rows.length === 0)
34
+ return chalk.whiteBright("{}");
35
+ return chalk.whiteBright("{\n") + rows.join(chalk.whiteBright(",\n")) + chalk.whiteBright("\n") + chalk.whiteBright("}");
36
+ }
37
+ function canStringBeKeyWithoutQuotes(key) {
38
+ return JSON.stringify(key).slice(1, -1) === key && /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(key);
39
+ }
40
+ //# sourceMappingURL=prettyPrintObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettyPrintObject.js","sourceRoot":"","sources":["../../src/utils/prettyPrintObject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,iBAAiB,CAAC,GAAQ,EAAE,SAAiB,CAAC;IAC1D,IAAI,OAAO,GAAG,KAAK,QAAQ;QACvB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAChD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACxB,IAAI,OAAO,GAAG,KAAK,SAAS;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAChC,IAAI,GAAG,KAAK,IAAI;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACnC,IAAI,GAAG,KAAK,SAAS;QACtB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACxC,IAAI,GAAG,YAAY,KAAK;QACzB,OAAO;YACH,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;YACtB,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC;iBACrB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;SACzB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAuB,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAClB,2BAA2B,CAAC,GAAG,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBAChB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACtC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YACvB,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC;iBAC3B,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACnD,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACf;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QACjB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnC,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC7H,CAAC;AAED,SAAS,2BAA2B,CAAC,GAAW;IAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5F,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare function removeNullFields<T extends object>(obj: T): T;
2
+ export declare function removeUndefinedFields<T extends object>(obj: T): T;
@@ -6,4 +6,12 @@ export function removeNullFields(obj) {
6
6
  }
7
7
  return newObj;
8
8
  }
9
+ export function removeUndefinedFields(obj) {
10
+ const newObj = Object.assign({}, obj);
11
+ for (const key in obj) {
12
+ if (newObj[key] === undefined)
13
+ delete newObj[key];
14
+ }
15
+ return newObj;
16
+ }
9
17
  //# sourceMappingURL=removeNullFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeNullFields.js","sourceRoot":"","sources":["../../src/utils/removeNullFields.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAmB,GAAM;IACrD,MAAM,MAAM,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"removeNullFields.js","sourceRoot":"","sources":["../../src/utils/removeNullFields.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAmB,GAAM;IACrD,MAAM,MAAM,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAmB,GAAM;IAC1D,MAAM,MAAM,GAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEzC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ChatWrapper } from "../ChatWrapper.js";
2
+ import { GeneralChatWrapper } from "../chatWrappers/GeneralChatWrapper.js";
3
+ import { LlamaModel } from "../evaluator/LlamaModel.js";
4
+ export declare function resolveChatWrapper(chatWrapper: "auto" | ChatWrapper, model: LlamaModel): ChatWrapper | import("../index.js").LlamaChatWrapper | GeneralChatWrapper | import("../index.js").FalconChatWrapper;
@@ -0,0 +1,16 @@
1
+ import { resolveChatWrapperBasedOnModel } from "../chatWrappers/resolveChatWrapperBasedOnModel.js";
2
+ import { GeneralChatWrapper } from "../chatWrappers/GeneralChatWrapper.js";
3
+ export function resolveChatWrapper(chatWrapper, model) {
4
+ if (chatWrapper === "auto") {
5
+ const chatWrapper = resolveChatWrapperBasedOnModel({
6
+ bosString: model.tokens.bosString,
7
+ filename: model.filename,
8
+ typeDescription: model.typeDescription
9
+ });
10
+ if (chatWrapper != null)
11
+ return new chatWrapper();
12
+ return new GeneralChatWrapper();
13
+ }
14
+ return chatWrapper;
15
+ }
16
+ //# sourceMappingURL=resolveChatWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveChatWrapper.js","sourceRoot":"","sources":["../../src/utils/resolveChatWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,8BAA8B,EAAC,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAC,kBAAkB,EAAC,MAAM,uCAAuC,CAAC;AAGzE,MAAM,UAAU,kBAAkB,CAAC,WAAiC,EAAE,KAAiB;IACnF,IAAI,WAAW,KAAK,MAAM,EAAE;QACxB,MAAM,WAAW,GAAG,8BAA8B,CAAC;YAC/C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;YACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,KAAK,CAAC,eAAe;SACzC,CAAC,CAAC;QAEH,IAAI,WAAW,IAAI,IAAI;YACnB,OAAO,IAAI,WAAW,EAAE,CAAC;QAE7B,OAAO,IAAI,kBAAkB,EAAE,CAAC;KACnC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveGithubRelease(githubOwner: string, githubRepo: string, release: string): Promise<string>;
2
+ export declare function isGithubReleaseNeedsResolving(release: string): boolean;
@@ -0,0 +1,36 @@
1
+ import { Octokit } from "octokit";
2
+ import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
3
+ export async function resolveGithubRelease(githubOwner, githubRepo, release) {
4
+ const octokit = new Octokit();
5
+ const repo = githubOwner + "/" + githubRepo;
6
+ let githubRelease = null;
7
+ try {
8
+ if (release === "latest") {
9
+ githubRelease = await octokit.rest.repos.getLatestRelease({
10
+ owner: githubOwner,
11
+ repo: githubRepo
12
+ });
13
+ }
14
+ else {
15
+ githubRelease = await octokit.rest.repos.getReleaseByTag({
16
+ owner: githubOwner,
17
+ repo: githubRepo,
18
+ tag: release
19
+ });
20
+ }
21
+ }
22
+ catch (err) {
23
+ console.error(getConsoleLogPrefix() + "Failed to fetch llama.cpp release info", err);
24
+ }
25
+ if (githubRelease == null) {
26
+ throw new Error(`Failed to find release "${release}" of "${repo}"`);
27
+ }
28
+ if (githubRelease.data.tag_name == null) {
29
+ throw new Error(`Failed to find tag of release "${release}" of "${repo}"`);
30
+ }
31
+ return githubRelease.data.tag_name;
32
+ }
33
+ export function isGithubReleaseNeedsResolving(release) {
34
+ return release === "latest";
35
+ }
36
+ //# sourceMappingURL=resolveGithubRelease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveGithubRelease.js","sourceRoot":"","sources":["../../src/utils/resolveGithubRelease.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,UAAkB,EAAE,OAAe;IAC/F,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC;IAK5C,IAAI,aAAa,GAA6B,IAAI,CAAC;IAEnD,IAAI;QACA,IAAI,OAAO,KAAK,QAAQ,EAAE;YACtB,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBACtD,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,UAAU;aACnB,CAAC,CAAC;SACN;aAAM;YACH,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBACrD,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,OAAO;aACf,CAAC,CAAC;SACN;KACJ;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,wCAAwC,EAAE,GAAG,CAAC,CAAC;KACxF;IAED,IAAI,aAAa,IAAI,IAAI,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,SAAS,IAAI,GAAG,CAAC,CAAC;KACvE;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,SAAS,IAAI,GAAG,CAAC,CAAC;KAC9E;IAED,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAe;IACzD,OAAO,OAAO,KAAK,QAAQ,CAAC;AAChC,CAAC"}
@@ -1,2 +1,2 @@
1
1
  /// <reference types="node" />
2
- export declare function spawnCommand(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv): Promise<void>;
2
+ export declare function spawnCommand(command: string, args: string[], cwd: string, env?: NodeJS.ProcessEnv, progressLogs?: boolean): Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import spawn from "cross-spawn";
2
- export function spawnCommand(command, args, cwd, env = process.env) {
2
+ export function spawnCommand(command, args, cwd, env = process.env, progressLogs = true) {
3
3
  function getCommandString() {
4
4
  let res = command;
5
5
  for (const arg of args) {
@@ -14,7 +14,9 @@ export function spawnCommand(command, args, cwd, env = process.env) {
14
14
  }
15
15
  return new Promise((resolve, reject) => {
16
16
  const child = spawn(command, args, {
17
- stdio: "inherit",
17
+ stdio: progressLogs
18
+ ? "inherit"
19
+ : ["ignore", "ignore", process.stderr],
18
20
  cwd,
19
21
  env,
20
22
  detached: false,
@@ -1 +1 @@
1
- {"version":3,"file":"spawnCommand.js","sourceRoot":"","sources":["../../src/utils/spawnCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAc,EAAE,GAAW,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG;IACxF,SAAS,gBAAgB;QACrB,IAAI,GAAG,GAAG,OAAO,CAAC;QAElB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnB,GAAG,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aAC7C;iBAAM;gBACH,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;aACpB;SACJ;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,SAAS;YAChB,GAAG;YACH,GAAG;YACH,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,IAAI,CAAC;gBACT,OAAO,EAAE,CAAC;;gBAEV,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9F,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACrB,IAAI,IAAI,IAAI,CAAC;gBACT,OAAO,EAAE,CAAC;;gBAEV,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"spawnCommand.js","sourceRoot":"","sources":["../../src/utils/spawnCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAc,EAAE,GAAW,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,eAAwB,IAAI;IACtH,SAAS,gBAAgB;QACrB,IAAI,GAAG,GAAG,OAAO,CAAC;QAElB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnB,GAAG,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;aAC7C;iBAAM;gBACH,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;aACpB;SACJ;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAC/B,KAAK,EAAE,YAAY;gBACf,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC;YAC1C,GAAG;YACH,GAAG;YACH,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,IAAI,CAAC;gBACT,OAAO,EAAE,CAAC;;gBAEV,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9F,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACrB,IAAI,IAAI,IAAI,CAAC;gBACT,OAAO,EAAE,CAAC;;gBAEV,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,gBAAgB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Token, Tokenizer } from "../types.js";
2
+ import { LlamaText } from "./LlamaText.js";
3
+ export declare function tokenizeInput(input: Token[] | string | LlamaText, tokenizer: Tokenizer): Token[];
@@ -0,0 +1,9 @@
1
+ import { isLlamaText } from "./LlamaText.js";
2
+ export function tokenizeInput(input, tokenizer) {
3
+ if (typeof input === "string")
4
+ return tokenizer(input, false);
5
+ else if (isLlamaText(input))
6
+ return input.tokenize(tokenizer);
7
+ return input;
8
+ }
9
+ //# sourceMappingURL=tokenizeInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenizeInput.js","sourceRoot":"","sources":["../../src/utils/tokenizeInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,KAAmC,EAAE,SAAoB;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC9B,IAAI,WAAW,CAAC,KAAK,CAAC;QACvB,OAAO,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Truncate the given text starting from the specified index and try to round to the nearest word.
3
+ * @param text - The text to truncate and round
4
+ * @param truncateStartIndex - The index to start truncating the text at
5
+ * @param maxRound - The maximum number of extra characters to delete to round to the nearest word
6
+ * @returns - The truncated and rounded text
7
+ */
8
+ export declare function truncateTextAndRoundToWords(text: string, truncateStartIndex: number, maxRound?: number): string;
@@ -0,0 +1,27 @@
1
+ const truncatePrefix = "...";
2
+ /**
3
+ * Truncate the given text starting from the specified index and try to round to the nearest word.
4
+ * @param text - The text to truncate and round
5
+ * @param truncateStartIndex - The index to start truncating the text at
6
+ * @param maxRound - The maximum number of extra characters to delete to round to the nearest word
7
+ * @returns - The truncated and rounded text
8
+ */
9
+ export function truncateTextAndRoundToWords(text, truncateStartIndex, maxRound = 6) {
10
+ const res = text.slice(truncateStartIndex);
11
+ if (res.length === 0)
12
+ return res;
13
+ if (truncateStartIndex === 0 || text[truncateStartIndex - 1] === " ")
14
+ return res;
15
+ const nextSpaceIndex = res.indexOf(" ");
16
+ if (nextSpaceIndex < 0) {
17
+ if (res.length <= maxRound || res.length < truncatePrefix.length)
18
+ return "";
19
+ return truncatePrefix + res.slice(truncatePrefix.length);
20
+ }
21
+ if (nextSpaceIndex <= maxRound)
22
+ return res.slice(nextSpaceIndex + 1);
23
+ if (res.length < truncatePrefix.length)
24
+ return "";
25
+ return truncatePrefix + res.slice(truncatePrefix.length);
26
+ }
27
+ //# sourceMappingURL=truncateTextAndRoundToWords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncateTextAndRoundToWords.js","sourceRoot":"","sources":["../../src/utils/truncateTextAndRoundToWords.ts"],"names":[],"mappings":"AAAA,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;QACpB,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;KAC5D;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"}
@@ -0,0 +1,5 @@
1
+ export declare function waitForLockfileRelease({ resourcePath, checkInterval, staleDuration }: {
2
+ resourcePath: string;
3
+ checkInterval?: number;
4
+ staleDuration?: number;
5
+ }): Promise<void>;
@@ -0,0 +1,20 @@
1
+ import lockfile from "proper-lockfile";
2
+ import { isLockActive, waitForLockRelease } from "lifecycle-utils";
3
+ import { lockfileLockScope } from "./withLockfile.js";
4
+ export async function waitForLockfileRelease({ resourcePath, checkInterval = 1000 * 5.5, staleDuration = 1000 * 10 }) {
5
+ // eslint-disable-next-line no-constant-condition
6
+ while (true) {
7
+ if (isLockActive(lockfileLockScope, resourcePath)) {
8
+ await waitForLockRelease(lockfileLockScope, resourcePath);
9
+ continue;
10
+ }
11
+ const lockfileActive = await lockfile.check(resourcePath, { stale: staleDuration, realpath: false });
12
+ const lockIsActive = isLockActive(lockfileLockScope, resourcePath);
13
+ if (lockIsActive)
14
+ continue;
15
+ if (!lockfileActive)
16
+ return;
17
+ await new Promise((resolve) => setTimeout(resolve, checkInterval));
18
+ }
19
+ }
20
+ //# sourceMappingURL=waitForLockfileRelease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForLockfileRelease.js","sourceRoot":"","sources":["../../src/utils/waitForLockfileRelease.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,YAAY,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EACzC,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAGtE;IACG,iDAAiD;IACjD,OAAO,IAAI,EAAE;QACT,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE;YAC/C,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC1D,SAAS;SACZ;QAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;QACnG,MAAM,YAAY,GAAG,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAEnE,IAAI,YAAY;YACZ,SAAS;QAEb,IAAI,CAAC,cAAc;YACf,OAAO;QAEX,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;KACtE;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const lockfileLockScope: {};
2
+ export declare function withLockfile<const T>({ resourcePath, staleDuration, updateInterval, retries }: {
3
+ resourcePath: string;
4
+ staleDuration?: number;
5
+ updateInterval?: number;
6
+ retries?: number;
7
+ }, callback: () => T | Promise<T>): Promise<T>;
@@ -0,0 +1,44 @@
1
+ import lockfile from "proper-lockfile";
2
+ import { withLock } from "lifecycle-utils";
3
+ import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
4
+ export const lockfileLockScope = {};
5
+ export async function withLockfile({ resourcePath, staleDuration = 1000 * 10, updateInterval = staleDuration / 2, retries = 2 }, callback) {
6
+ return await withLock(lockfileLockScope, resourcePath, async () => {
7
+ let releaseLock;
8
+ let res;
9
+ const lockPromise = lockfile.lock(resourcePath, {
10
+ stale: staleDuration,
11
+ update: updateInterval,
12
+ retries,
13
+ realpath: false
14
+ });
15
+ try {
16
+ releaseLock = await lockPromise;
17
+ }
18
+ catch (err) {
19
+ console.error(getConsoleLogPrefix() + `Failed to acquire lockfile for "${resourcePath}"`, err);
20
+ throw err;
21
+ }
22
+ try {
23
+ res = await callback();
24
+ }
25
+ catch (err) {
26
+ try {
27
+ await releaseLock();
28
+ }
29
+ catch (err) {
30
+ console.error(getConsoleLogPrefix() + `Failed to release lockfile for "${resourcePath}"`, err);
31
+ }
32
+ throw err;
33
+ }
34
+ try {
35
+ await releaseLock();
36
+ }
37
+ catch (err) {
38
+ console.error(getConsoleLogPrefix() + `Failed to release lockfile for "${resourcePath}"`, err);
39
+ throw err;
40
+ }
41
+ return res;
42
+ });
43
+ }
44
+ //# sourceMappingURL=withLockfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withLockfile.js","sourceRoot":"","sources":["../../src/utils/withLockfile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,EACI,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,EAAE,cAAc,GAAG,aAAa,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAG3F,EACD,QAA8B;IAE9B,OAAO,MAAM,QAAQ,CAAC,iBAAiB,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;QAC9D,IAAI,WAAgC,CAAC;QACrC,IAAI,GAAM,CAAC;QAEX,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE;YAC5C,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,cAAc;YACtB,OAAO;YACP,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QAEH,IAAI;YACA,WAAW,GAAG,MAAM,WAAW,CAAC;SACnC;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,mCAAmC,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/F,MAAM,GAAG,CAAC;SACb;QAED,IAAI;YACA,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;SAC1B;QAAC,OAAO,GAAG,EAAE;YACV,IAAI;gBACA,MAAM,WAAW,EAAE,CAAC;aACvB;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,mCAAmC,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;aAClG;YAED,MAAM,GAAG,CAAC;SACb;QAED,IAAI;YACA,MAAM,WAAW,EAAE,CAAC;SACvB;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,mCAAmC,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/F,MAAM,GAAG,CAAC;SACb;QAED,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,6 +1,16 @@
1
1
  import ora from "ora";
2
+ import { isRunningInsideGoogleColab } from "../config.js";
3
+ import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
4
+ import withStatusLogs from "./withStatusLogs.js";
2
5
  export default async function withOra(message, callback) {
3
- const spinner = ora(typeof message === "string" ? message : message.loading);
6
+ if (isRunningInsideGoogleColab)
7
+ return withStatusLogs(message, callback);
8
+ const spinner = ora({
9
+ prefixText: getConsoleLogPrefix(),
10
+ ...(typeof message === "string"
11
+ ? { text: message }
12
+ : message)
13
+ });
4
14
  spinner.start();
5
15
  try {
6
16
  const res = await callback();
@@ -1 +1 @@
1
- {"version":3,"file":"withOra.js","sourceRoot":"","sources":["../../src/utils/withOra.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,OAAO,CACjC,OAIC,EACD,QAA0B;IAE1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI;QACA,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE7B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;YAEjC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEtB,OAAO,GAAG,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,IAAI,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;YAE3B,OAAO,CAAC,IAAI,EAAE,CAAC;QAEnB,MAAM,EAAE,CAAC;KACZ;AACL,CAAC"}
1
+ {"version":3,"file":"withOra.js","sourceRoot":"","sources":["../../src/utils/withOra.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,0BAA0B,EAAC,MAAM,cAAc,CAAC;AACxD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,OAAO,CACjC,OAIC,EACD,QAA0B;IAE1B,IAAI,0BAA0B;QAC1B,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,GAAG,CAAC;QAChB,UAAU,EAAE,mBAAmB,EAAE;QACjC,GAAG,CACC,OAAO,OAAO,KAAK,QAAQ;YACvB,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAqC;YACrD,CAAC,CAAC,OAAO,CAChB;KACJ,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI;QACA,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE7B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;YAEjC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEtB,OAAO,GAAG,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,IAAI,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;YAE3B,OAAO,CAAC,IAAI,EAAE,CAAC;QAEnB,MAAM,EAAE,CAAC;KACZ;AACL,CAAC"}
@@ -1,5 +1,6 @@
1
- export default function withStatusLogs<T>(message: string | {
1
+ export default function withStatusLogs<T>(messageAndOptions: string | {
2
2
  loading: string;
3
3
  success?: string;
4
4
  fail?: string;
5
+ disableLogs?: boolean;
5
6
  }, callback: () => Promise<T>): Promise<T>;
@@ -1,21 +1,24 @@
1
1
  import chalk from "chalk";
2
2
  import logSymbols from "log-symbols";
3
+ import { getConsoleLogPrefix } from "./getConsoleLogPrefix.js";
3
4
  const clockChar = "\u25f7";
4
- export default async function withStatusLogs(message, callback) {
5
- console.log(`${chalk.cyan(clockChar)} ${typeof message === "string" ? message : message.loading}`);
5
+ export default async function withStatusLogs(messageAndOptions, callback) {
6
+ if (typeof messageAndOptions !== "string" && messageAndOptions.disableLogs)
7
+ return await callback();
8
+ console.log(getConsoleLogPrefix() + `${chalk.cyan(clockChar)} ${typeof messageAndOptions === "string" ? messageAndOptions : messageAndOptions.loading}`);
6
9
  try {
7
10
  const res = await callback();
8
- if (typeof message !== "string")
9
- console.log(`${logSymbols.success} ${message.success}`);
11
+ if (typeof messageAndOptions !== "string")
12
+ console.log(getConsoleLogPrefix() + `${logSymbols.success} ${messageAndOptions.success}`);
10
13
  else
11
- console.log(`${logSymbols.success} ${message}`);
14
+ console.log(getConsoleLogPrefix() + `${logSymbols.success} ${messageAndOptions}`);
12
15
  return res;
13
16
  }
14
17
  catch (er) {
15
- if (typeof message !== "string")
16
- console.log(`${logSymbols.error} ${message.fail}`);
18
+ if (typeof messageAndOptions !== "string")
19
+ console.log(getConsoleLogPrefix() + `${logSymbols.error} ${messageAndOptions.fail}`);
17
20
  else
18
- console.log(`${logSymbols.error} ${message}`);
21
+ console.log(getConsoleLogPrefix() + `${logSymbols.error} ${messageAndOptions}`);
19
22
  throw er;
20
23
  }
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"withStatusLogs.js","sourceRoot":"","sources":["../../src/utils/withStatusLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CACxC,OAIC,EACD,QAA0B;IAE1B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnG,IAAI;QACA,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE7B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;;YAExD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;QAEpD,OAAO,GAAG,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,IAAI,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;;YAEnD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAC;QAElD,MAAM,EAAE,CAAC;KACZ;AACL,CAAC"}
1
+ {"version":3,"file":"withStatusLogs.js","sourceRoot":"","sources":["../../src/utils/withStatusLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc,CACxC,iBAKC,EACD,QAA0B;IAE1B,IAAI,OAAO,iBAAiB,KAAK,QAAQ,IAAI,iBAAiB,CAAC,WAAW;QACtE,OAAO,MAAM,QAAQ,EAAE,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;IAEzJ,IAAI;QACA,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAE7B,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;;YAE1F,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,OAAO,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAEtF,OAAO,GAAG,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,IAAI,OAAO,iBAAiB,KAAK,QAAQ;YACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;;YAErF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,GAAG,UAAU,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAEpF,MAAM,EAAE,CAAC;KACZ;AACL,CAAC"}
@@ -17,7 +17,7 @@ FixNamespaceComments: false
17
17
  IndentAccessModifiers: true
18
18
  SpaceAfterCStyleCast: false
19
19
  PointerAlignment: Left
20
- IndentCaseLabels: false
20
+ IndentCaseLabels: true
21
21
  BinPackArguments: false
22
22
  BinPackParameters: false
23
23
  Cpp11BracedListStyle: false
@@ -29,7 +29,6 @@ AlwaysBreakTemplateDeclarations: No
29
29
  DeriveLineEnding: false
30
30
  UseCRLF: false
31
31
  AllowAllArgumentsOnNextLine: true
32
- AlignAfterOpenBracket: DontAlign
33
32
  PackConstructorInitializers: CurrentLine
34
33
  AlignAfterOpenBracket: BlockIndent
35
34
  BraceWrapping:
@@ -19,17 +19,102 @@ execute_process(COMMAND node -p "require('node-addon-api').include.slice(1,-1)"
19
19
  include_directories(${NODE_ADDON_API_DIR} ${CMAKE_JS_INC})
20
20
 
21
21
  add_subdirectory("llama.cpp")
22
+ include_directories("gpuInfo")
22
23
  include_directories("llama.cpp")
23
24
  include_directories("./llama.cpp/common")
24
25
 
25
- file(GLOB SOURCE_FILES "addon.cpp")
26
+ if (LLAMA_CUBLAS)
27
+ cmake_minimum_required(VERSION 3.17)
26
28
 
27
- add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC})
29
+ find_package(CUDAToolkit)
30
+ if (CUDAToolkit_FOUND)
31
+ message(STATUS "Using cuBLAS for GPU info")
32
+
33
+ enable_language(CUDA)
34
+
35
+ set(GPU_INFO_HEADERS ${GPU_INFO_HEADERS} gpuInfo/cuda-gpu-info.h)
36
+ set(GPU_INFO_SOURCES ${GPU_INFO_SOURCES} gpuInfo/cuda-gpu-info.cu)
37
+
38
+ add_compile_definitions(GPU_INFO_USE_CUBLAS)
39
+
40
+ if (LLAMA_STATIC)
41
+ set(LLAMA_EXTRA_LIBS ${GPU_INFO_EXTRA_LIBS} CUDA::cudart_static)
42
+ else()
43
+ set(LLAMA_EXTRA_LIBS ${GPU_INFO_EXTRA_LIBS} CUDA::cudart)
44
+ endif()
45
+
46
+ set(GPU_INFO_EXTRA_LIBS ${GPU_INFO_EXTRA_LIBS} CUDA::cuda_driver)
47
+
48
+ if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
49
+ # copied from llama.cpp/CMakLists.txt under "if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)"
50
+ if (LLAMA_CUDA_F16 OR LLAMA_CUDA_DMMV_F16)
51
+ set(CMAKE_CUDA_ARCHITECTURES "60;61;70")
52
+ else()
53
+ set(CMAKE_CUDA_ARCHITECTURES "52;61;70")
54
+ endif()
55
+ endif()
56
+ else()
57
+ message(WARNING "cuBLAS not found. Not using it for GPU info")
58
+ endif()
59
+ endif()
60
+
61
+ if (LLAMA_HIPBLAS)
62
+ list(APPEND CMAKE_PREFIX_PATH /opt/rocm)
63
+
64
+ if (NOT ${CMAKE_C_COMPILER_ID} MATCHES "Clang")
65
+ message(WARNING "Only LLVM is supported for HIP, hint: CC=/opt/rocm/llvm/bin/clang")
66
+ endif()
67
+ if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
68
+ message(WARNING "Only LLVM is supported for HIP, hint: CXX=/opt/rocm/llvm/bin/clang++")
69
+ endif()
70
+
71
+ find_package(hip)
72
+ find_package(hipblas)
73
+ find_package(rocblas)
74
+
75
+ if (${hipblas_FOUND} AND ${hip_FOUND})
76
+ message(STATUS "Using HIP and hipBLAS for GPU info")
77
+ add_compile_definitions(GPU_INFO_USE_HIPBLAS GPU_INFO_USE_CUBLAS)
78
+ add_library(gpu-info-rocm OBJECT gpuInfo/cuda-gpu-info.cu gpuInfo/cuda-gpu-info.h)
79
+ set_source_files_properties(gpuInfo/cuda-gpu-info.cu PROPERTIES LANGUAGE CXX)
80
+ target_link_libraries(gpu-info-rocm PRIVATE hip::device PUBLIC hip::host roc::rocblas roc::hipblas)
81
+
82
+ set(GPU_INFO_EXTRA_LIBS ${GPU_INFO_EXTRA_LIBS} gpu-info-rocm)
83
+ else()
84
+ message(WARNING "hipBLAS or HIP not found. Try setting CMAKE_PREFIX_PATH=/opt/rocm")
85
+ endif()
86
+ endif()
87
+
88
+ if (LLAMA_METAL)
89
+ find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
90
+ find_library(METAL_FRAMEWORK Metal REQUIRED)
91
+ find_library(METALKIT_FRAMEWORK MetalKit REQUIRED)
92
+
93
+ message(STATUS "Using Metal for GPU info")
94
+ set(GPU_INFO_HEADERS ${GPU_INFO_HEADERS} gpuInfo/metal-gpu-info.h)
95
+ set(GPU_INFO_SOURCES ${GPU_INFO_SOURCES} gpuInfo/metal-gpu-info.mm)
96
+
97
+ add_compile_definitions(GPU_INFO_USE_METAL)
98
+
99
+ set(GPU_INFO_EXTRA_LIBS ${GPU_INFO_EXTRA_LIBS}
100
+ ${FOUNDATION_LIBRARY}
101
+ ${METAL_FRAMEWORK}
102
+ ${METALKIT_FRAMEWORK}
103
+ )
104
+ endif()
105
+
106
+ file(GLOB SOURCE_FILES "addon.cpp" ${GPU_INFO_SOURCES})
107
+
108
+ add_library(${PROJECT_NAME} SHARED ${SOURCE_FILES} ${CMAKE_JS_SRC} ${GPU_INFO_HEADERS})
28
109
  set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
29
110
  target_link_libraries(${PROJECT_NAME} ${CMAKE_JS_LIB})
30
111
  target_link_libraries(${PROJECT_NAME} "llama")
31
112
  target_link_libraries(${PROJECT_NAME} "common")
32
113
 
114
+ if (DEFINED GPU_INFO_EXTRA_LIBS)
115
+ target_link_libraries(${PROJECT_NAME} ${GPU_INFO_EXTRA_LIBS})
116
+ endif()
117
+
33
118
  if(MSVC AND CMAKE_JS_NODELIB_DEF AND CMAKE_JS_NODELIB_TARGET)
34
119
  # Generate node.lib
35
120
  execute_process(COMMAND ${CMAKE_AR} /def:${CMAKE_JS_NODELIB_DEF} /out:${CMAKE_JS_NODELIB_TARGET} ${CMAKE_STATIC_LINKER_FLAGS})