@realtimex/node-llama-cpp 0.1.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 (876) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +108 -0
  3. package/dist/ChatWrapper.d.ts +27 -0
  4. package/dist/ChatWrapper.js +233 -0
  5. package/dist/ChatWrapper.js.map +1 -0
  6. package/dist/apiDocsIndex.d.ts +1 -0
  7. package/dist/apiDocsIndex.js +7 -0
  8. package/dist/apiDocsIndex.js.map +1 -0
  9. package/dist/bindings/AddonTypes.d.ts +203 -0
  10. package/dist/bindings/AddonTypes.js +2 -0
  11. package/dist/bindings/AddonTypes.js.map +1 -0
  12. package/dist/bindings/Llama.d.ts +104 -0
  13. package/dist/bindings/Llama.js +570 -0
  14. package/dist/bindings/Llama.js.map +1 -0
  15. package/dist/bindings/consts.d.ts +2 -0
  16. package/dist/bindings/consts.js +13 -0
  17. package/dist/bindings/consts.js.map +1 -0
  18. package/dist/bindings/getLlama.d.ts +297 -0
  19. package/dist/bindings/getLlama.js +569 -0
  20. package/dist/bindings/getLlama.js.map +1 -0
  21. package/dist/bindings/types.d.ts +72 -0
  22. package/dist/bindings/types.js +105 -0
  23. package/dist/bindings/types.js.map +1 -0
  24. package/dist/bindings/utils/MemoryOrchestrator.d.ts +23 -0
  25. package/dist/bindings/utils/MemoryOrchestrator.js +50 -0
  26. package/dist/bindings/utils/MemoryOrchestrator.js.map +1 -0
  27. package/dist/bindings/utils/NoBinaryFoundError.d.ts +2 -0
  28. package/dist/bindings/utils/NoBinaryFoundError.js +7 -0
  29. package/dist/bindings/utils/NoBinaryFoundError.js.map +1 -0
  30. package/dist/bindings/utils/asyncEvery.d.ts +5 -0
  31. package/dist/bindings/utils/asyncEvery.js +15 -0
  32. package/dist/bindings/utils/asyncEvery.js.map +1 -0
  33. package/dist/bindings/utils/asyncSome.d.ts +5 -0
  34. package/dist/bindings/utils/asyncSome.js +29 -0
  35. package/dist/bindings/utils/asyncSome.js.map +1 -0
  36. package/dist/bindings/utils/binariesGithubRelease.d.ts +6 -0
  37. package/dist/bindings/utils/binariesGithubRelease.js +15 -0
  38. package/dist/bindings/utils/binariesGithubRelease.js.map +1 -0
  39. package/dist/bindings/utils/clearAllLocalBuilds.d.ts +1 -0
  40. package/dist/bindings/utils/clearAllLocalBuilds.js +47 -0
  41. package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -0
  42. package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +11 -0
  43. package/dist/bindings/utils/cloneLlamaCppRepo.js +166 -0
  44. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -0
  45. package/dist/bindings/utils/compileLLamaCpp.d.ts +22 -0
  46. package/dist/bindings/utils/compileLLamaCpp.js +526 -0
  47. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -0
  48. package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +18 -0
  49. package/dist/bindings/utils/detectAvailableComputeLayers.js +311 -0
  50. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -0
  51. package/dist/bindings/utils/detectBuildTools.d.ts +14 -0
  52. package/dist/bindings/utils/detectBuildTools.js +149 -0
  53. package/dist/bindings/utils/detectBuildTools.js.map +1 -0
  54. package/dist/bindings/utils/detectGlibc.d.ts +4 -0
  55. package/dist/bindings/utils/detectGlibc.js +74 -0
  56. package/dist/bindings/utils/detectGlibc.js.map +1 -0
  57. package/dist/bindings/utils/disposeBeforeExit.d.ts +8 -0
  58. package/dist/bindings/utils/disposeBeforeExit.js +36 -0
  59. package/dist/bindings/utils/disposeBeforeExit.js.map +1 -0
  60. package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +9 -0
  61. package/dist/bindings/utils/getBestComputeLayersAvailable.js +29 -0
  62. package/dist/bindings/utils/getBestComputeLayersAvailable.js.map +1 -0
  63. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.d.ts +6 -0
  64. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +105 -0
  65. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -0
  66. package/dist/bindings/utils/getCanUsePrebuiltBinaries.d.ts +1 -0
  67. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js +8 -0
  68. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js.map +1 -0
  69. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.d.ts +2 -0
  70. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js +21 -0
  71. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js.map +1 -0
  72. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +12 -0
  73. package/dist/bindings/utils/getGpuTypesToUseForOption.js +39 -0
  74. package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -0
  75. package/dist/bindings/utils/getLinuxDistroInfo.d.ts +9 -0
  76. package/dist/bindings/utils/getLinuxDistroInfo.js +46 -0
  77. package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -0
  78. package/dist/bindings/utils/getLlamaGpuTypes.d.ts +13 -0
  79. package/dist/bindings/utils/getLlamaGpuTypes.js +36 -0
  80. package/dist/bindings/utils/getLlamaGpuTypes.js.map +1 -0
  81. package/dist/bindings/utils/getLlamaWithoutBackend.d.ts +5 -0
  82. package/dist/bindings/utils/getLlamaWithoutBackend.js +40 -0
  83. package/dist/bindings/utils/getLlamaWithoutBackend.js.map +1 -0
  84. package/dist/bindings/utils/getPlatform.d.ts +2 -0
  85. package/dist/bindings/utils/getPlatform.js +15 -0
  86. package/dist/bindings/utils/getPlatform.js.map +1 -0
  87. package/dist/bindings/utils/getPlatformInfo.d.ts +5 -0
  88. package/dist/bindings/utils/getPlatformInfo.js +28 -0
  89. package/dist/bindings/utils/getPlatformInfo.js.map +1 -0
  90. package/dist/bindings/utils/hasBuildingFromSourceDependenciesInstalled.d.ts +3 -0
  91. package/dist/bindings/utils/hasBuildingFromSourceDependenciesInstalled.js +27 -0
  92. package/dist/bindings/utils/hasBuildingFromSourceDependenciesInstalled.js.map +1 -0
  93. package/dist/bindings/utils/hasFileInPath.d.ts +2 -0
  94. package/dist/bindings/utils/hasFileInPath.js +34 -0
  95. package/dist/bindings/utils/hasFileInPath.js.map +1 -0
  96. package/dist/bindings/utils/lastBuildInfo.d.ts +6 -0
  97. package/dist/bindings/utils/lastBuildInfo.js +17 -0
  98. package/dist/bindings/utils/lastBuildInfo.js.map +1 -0
  99. package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +2 -0
  100. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +22 -0
  101. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -0
  102. package/dist/bindings/utils/logDistroInstallInstruction.d.ts +14 -0
  103. package/dist/bindings/utils/logDistroInstallInstruction.js +48 -0
  104. package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -0
  105. package/dist/bindings/utils/resolveActualBindingBinaryPath.d.ts +1 -0
  106. package/dist/bindings/utils/resolveActualBindingBinaryPath.js +18 -0
  107. package/dist/bindings/utils/resolveActualBindingBinaryPath.js.map +1 -0
  108. package/dist/bindings/utils/resolveCustomCmakeOptions.d.ts +1 -0
  109. package/dist/bindings/utils/resolveCustomCmakeOptions.js +43 -0
  110. package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -0
  111. package/dist/bindings/utils/testBindingBinary.d.ts +2 -0
  112. package/dist/bindings/utils/testBindingBinary.js +269 -0
  113. package/dist/bindings/utils/testBindingBinary.js.map +1 -0
  114. package/dist/bindings/utils/testCmakeBinary.d.ts +5 -0
  115. package/dist/bindings/utils/testCmakeBinary.js +32 -0
  116. package/dist/bindings/utils/testCmakeBinary.js.map +1 -0
  117. package/dist/chatWrappers/AlpacaChatWrapper.d.ts +17 -0
  118. package/dist/chatWrappers/AlpacaChatWrapper.js +33 -0
  119. package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -0
  120. package/dist/chatWrappers/ChatMLChatWrapper.d.ts +6 -0
  121. package/dist/chatWrappers/ChatMLChatWrapper.js +85 -0
  122. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -0
  123. package/dist/chatWrappers/DeepSeekChatWrapper.d.ts +37 -0
  124. package/dist/chatWrappers/DeepSeekChatWrapper.js +294 -0
  125. package/dist/chatWrappers/DeepSeekChatWrapper.js.map +1 -0
  126. package/dist/chatWrappers/EmptyChatWrapper.d.ts +4 -0
  127. package/dist/chatWrappers/EmptyChatWrapper.js +5 -0
  128. package/dist/chatWrappers/EmptyChatWrapper.js.map +1 -0
  129. package/dist/chatWrappers/FalconChatWrapper.d.ts +19 -0
  130. package/dist/chatWrappers/FalconChatWrapper.js +126 -0
  131. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -0
  132. package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +17 -0
  133. package/dist/chatWrappers/FunctionaryChatWrapper.js +622 -0
  134. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -0
  135. package/dist/chatWrappers/GemmaChatWrapper.d.ts +7 -0
  136. package/dist/chatWrappers/GemmaChatWrapper.js +96 -0
  137. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -0
  138. package/dist/chatWrappers/GeneralChatWrapper.d.ts +19 -0
  139. package/dist/chatWrappers/GeneralChatWrapper.js +140 -0
  140. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -0
  141. package/dist/chatWrappers/HarmonyChatWrapper.d.ts +78 -0
  142. package/dist/chatWrappers/HarmonyChatWrapper.js +539 -0
  143. package/dist/chatWrappers/HarmonyChatWrapper.js.map +1 -0
  144. package/dist/chatWrappers/Llama2ChatWrapper.d.ts +12 -0
  145. package/dist/chatWrappers/Llama2ChatWrapper.js +95 -0
  146. package/dist/chatWrappers/Llama2ChatWrapper.js.map +1 -0
  147. package/dist/chatWrappers/Llama3ChatWrapper.d.ts +16 -0
  148. package/dist/chatWrappers/Llama3ChatWrapper.js +173 -0
  149. package/dist/chatWrappers/Llama3ChatWrapper.js.map +1 -0
  150. package/dist/chatWrappers/Llama3_1ChatWrapper.d.ts +32 -0
  151. package/dist/chatWrappers/Llama3_1ChatWrapper.js +290 -0
  152. package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -0
  153. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.d.ts +35 -0
  154. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js +264 -0
  155. package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js.map +1 -0
  156. package/dist/chatWrappers/MistralChatWrapper.d.ts +16 -0
  157. package/dist/chatWrappers/MistralChatWrapper.js +180 -0
  158. package/dist/chatWrappers/MistralChatWrapper.js.map +1 -0
  159. package/dist/chatWrappers/QwenChatWrapper.d.ts +36 -0
  160. package/dist/chatWrappers/QwenChatWrapper.js +344 -0
  161. package/dist/chatWrappers/QwenChatWrapper.js.map +1 -0
  162. package/dist/chatWrappers/SeedChatWrapper.d.ts +25 -0
  163. package/dist/chatWrappers/SeedChatWrapper.js +183 -0
  164. package/dist/chatWrappers/SeedChatWrapper.js.map +1 -0
  165. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +138 -0
  166. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +665 -0
  167. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -0
  168. package/dist/chatWrappers/generic/TemplateChatWrapper.d.ts +76 -0
  169. package/dist/chatWrappers/generic/TemplateChatWrapper.js +212 -0
  170. package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -0
  171. package/dist/chatWrappers/generic/utils/UniqueIdGenerator.d.ts +7 -0
  172. package/dist/chatWrappers/generic/utils/UniqueIdGenerator.js +30 -0
  173. package/dist/chatWrappers/generic/utils/UniqueIdGenerator.js.map +1 -0
  174. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.d.ts +24 -0
  175. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js +45 -0
  176. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js.map +1 -0
  177. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.d.ts +25 -0
  178. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js +690 -0
  179. package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js.map +1 -0
  180. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.d.ts +2 -0
  181. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js +66 -0
  182. package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js.map +1 -0
  183. package/dist/chatWrappers/generic/utils/getFirstValidResult.d.ts +6 -0
  184. package/dist/chatWrappers/generic/utils/getFirstValidResult.js +19 -0
  185. package/dist/chatWrappers/generic/utils/getFirstValidResult.js.map +1 -0
  186. package/dist/chatWrappers/generic/utils/squashChatHistoryItems.d.ts +2 -0
  187. package/dist/chatWrappers/generic/utils/squashChatHistoryItems.js +35 -0
  188. package/dist/chatWrappers/generic/utils/squashChatHistoryItems.js.map +1 -0
  189. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.d.ts +22 -0
  190. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.js +28 -0
  191. package/dist/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.js.map +1 -0
  192. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +76 -0
  193. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +177 -0
  194. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -0
  195. package/dist/chatWrappers/utils/chunkChatItems.d.ts +10 -0
  196. package/dist/chatWrappers/utils/chunkChatItems.js +44 -0
  197. package/dist/chatWrappers/utils/chunkChatItems.js.map +1 -0
  198. package/dist/chatWrappers/utils/getModelLinageNames.d.ts +2 -0
  199. package/dist/chatWrappers/utils/getModelLinageNames.js +18 -0
  200. package/dist/chatWrappers/utils/getModelLinageNames.js.map +1 -0
  201. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.d.ts +4 -0
  202. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +394 -0
  203. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -0
  204. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.d.ts +2 -0
  205. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js +9 -0
  206. package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js.map +1 -0
  207. package/dist/chatWrappers/utils/jsonDumps.d.ts +7 -0
  208. package/dist/chatWrappers/utils/jsonDumps.js +18 -0
  209. package/dist/chatWrappers/utils/jsonDumps.js.map +1 -0
  210. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +148 -0
  211. package/dist/chatWrappers/utils/resolveChatWrapper.js +325 -0
  212. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -0
  213. package/dist/cli/cli.d.ts +2 -0
  214. package/dist/cli/cli.js +45 -0
  215. package/dist/cli/cli.js.map +1 -0
  216. package/dist/cli/commands/ChatCommand.d.ts +59 -0
  217. package/dist/cli/commands/ChatCommand.js +856 -0
  218. package/dist/cli/commands/ChatCommand.js.map +1 -0
  219. package/dist/cli/commands/CompleteCommand.d.ts +47 -0
  220. package/dist/cli/commands/CompleteCommand.js +658 -0
  221. package/dist/cli/commands/CompleteCommand.js.map +1 -0
  222. package/dist/cli/commands/DebugCommand.d.ts +7 -0
  223. package/dist/cli/commands/DebugCommand.js +55 -0
  224. package/dist/cli/commands/DebugCommand.js.map +1 -0
  225. package/dist/cli/commands/InfillCommand.d.ts +49 -0
  226. package/dist/cli/commands/InfillCommand.js +693 -0
  227. package/dist/cli/commands/InfillCommand.js.map +1 -0
  228. package/dist/cli/commands/InitCommand.d.ts +12 -0
  229. package/dist/cli/commands/InitCommand.js +230 -0
  230. package/dist/cli/commands/InitCommand.js.map +1 -0
  231. package/dist/cli/commands/OnPostInstallCommand.d.ts +4 -0
  232. package/dist/cli/commands/OnPostInstallCommand.js +62 -0
  233. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -0
  234. package/dist/cli/commands/PullCommand.d.ts +13 -0
  235. package/dist/cli/commands/PullCommand.js +158 -0
  236. package/dist/cli/commands/PullCommand.js.map +1 -0
  237. package/dist/cli/commands/inspect/InspectCommand.d.ts +4 -0
  238. package/dist/cli/commands/inspect/InspectCommand.js +21 -0
  239. package/dist/cli/commands/inspect/InspectCommand.js.map +1 -0
  240. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.d.ts +17 -0
  241. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js +275 -0
  242. package/dist/cli/commands/inspect/commands/InspectEstimateCommand.js.map +1 -0
  243. package/dist/cli/commands/inspect/commands/InspectGgufCommand.d.ts +13 -0
  244. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +230 -0
  245. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -0
  246. package/dist/cli/commands/inspect/commands/InspectGpuCommand.d.ts +4 -0
  247. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +296 -0
  248. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -0
  249. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +26 -0
  250. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +869 -0
  251. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -0
  252. package/dist/cli/commands/source/SourceCommand.d.ts +4 -0
  253. package/dist/cli/commands/source/SourceCommand.js +19 -0
  254. package/dist/cli/commands/source/SourceCommand.js.map +1 -0
  255. package/dist/cli/commands/source/commands/BuildCommand.d.ts +16 -0
  256. package/dist/cli/commands/source/commands/BuildCommand.js +148 -0
  257. package/dist/cli/commands/source/commands/BuildCommand.js.map +1 -0
  258. package/dist/cli/commands/source/commands/ClearCommand.d.ts +7 -0
  259. package/dist/cli/commands/source/commands/ClearCommand.js +54 -0
  260. package/dist/cli/commands/source/commands/ClearCommand.js.map +1 -0
  261. package/dist/cli/commands/source/commands/DownloadCommand.d.ts +16 -0
  262. package/dist/cli/commands/source/commands/DownloadCommand.js +219 -0
  263. package/dist/cli/commands/source/commands/DownloadCommand.js.map +1 -0
  264. package/dist/cli/projectTemplates.d.ts +7 -0
  265. package/dist/cli/projectTemplates.js +10 -0
  266. package/dist/cli/projectTemplates.js.map +1 -0
  267. package/dist/cli/recommendedModels.d.ts +2 -0
  268. package/dist/cli/recommendedModels.js +428 -0
  269. package/dist/cli/recommendedModels.js.map +1 -0
  270. package/dist/cli/startCreateCli.d.ts +2 -0
  271. package/dist/cli/startCreateCli.js +26 -0
  272. package/dist/cli/startCreateCli.js.map +1 -0
  273. package/dist/cli/utils/ConsoleInteraction.d.ts +22 -0
  274. package/dist/cli/utils/ConsoleInteraction.js +122 -0
  275. package/dist/cli/utils/ConsoleInteraction.js.map +1 -0
  276. package/dist/cli/utils/ConsoleTable.d.ts +24 -0
  277. package/dist/cli/utils/ConsoleTable.js +90 -0
  278. package/dist/cli/utils/ConsoleTable.js.map +1 -0
  279. package/dist/cli/utils/basicChooseFromListConsoleInteraction.d.ts +13 -0
  280. package/dist/cli/utils/basicChooseFromListConsoleInteraction.js +111 -0
  281. package/dist/cli/utils/basicChooseFromListConsoleInteraction.js.map +1 -0
  282. package/dist/cli/utils/consolePromptQuestion.d.ts +6 -0
  283. package/dist/cli/utils/consolePromptQuestion.js +81 -0
  284. package/dist/cli/utils/consolePromptQuestion.js.map +1 -0
  285. package/dist/cli/utils/getReadablePath.d.ts +1 -0
  286. package/dist/cli/utils/getReadablePath.js +14 -0
  287. package/dist/cli/utils/getReadablePath.js.map +1 -0
  288. package/dist/cli/utils/interactivelyAskForModel.d.ts +13 -0
  289. package/dist/cli/utils/interactivelyAskForModel.js +485 -0
  290. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -0
  291. package/dist/cli/utils/isRunningUnderRosetta.d.ts +1 -0
  292. package/dist/cli/utils/isRunningUnderRosetta.js +20 -0
  293. package/dist/cli/utils/isRunningUnderRosetta.js.map +1 -0
  294. package/dist/cli/utils/logUsedGpuTypeOption.d.ts +2 -0
  295. package/dist/cli/utils/logUsedGpuTypeOption.js +9 -0
  296. package/dist/cli/utils/logUsedGpuTypeOption.js.map +1 -0
  297. package/dist/cli/utils/packageJsonConfig.d.ts +6 -0
  298. package/dist/cli/utils/packageJsonConfig.js +51 -0
  299. package/dist/cli/utils/packageJsonConfig.js.map +1 -0
  300. package/dist/cli/utils/packageManager.d.ts +1 -0
  301. package/dist/cli/utils/packageManager.js +15 -0
  302. package/dist/cli/utils/packageManager.js.map +1 -0
  303. package/dist/cli/utils/parseXtcArg.d.ts +5 -0
  304. package/dist/cli/utils/parseXtcArg.js +16 -0
  305. package/dist/cli/utils/parseXtcArg.js.map +1 -0
  306. package/dist/cli/utils/printCommonInfoLines.d.ts +12 -0
  307. package/dist/cli/utils/printCommonInfoLines.js +163 -0
  308. package/dist/cli/utils/printCommonInfoLines.js.map +1 -0
  309. package/dist/cli/utils/printInfoLine.d.ts +12 -0
  310. package/dist/cli/utils/printInfoLine.js +54 -0
  311. package/dist/cli/utils/printInfoLine.js.map +1 -0
  312. package/dist/cli/utils/printModelDestination.d.ts +2 -0
  313. package/dist/cli/utils/printModelDestination.js +11 -0
  314. package/dist/cli/utils/printModelDestination.js.map +1 -0
  315. package/dist/cli/utils/projectTemplates.d.ts +19 -0
  316. package/dist/cli/utils/projectTemplates.js +47 -0
  317. package/dist/cli/utils/projectTemplates.js.map +1 -0
  318. package/dist/cli/utils/renderModelCompatibilityPercentageWithColors.d.ts +6 -0
  319. package/dist/cli/utils/renderModelCompatibilityPercentageWithColors.js +14 -0
  320. package/dist/cli/utils/renderModelCompatibilityPercentageWithColors.js.map +1 -0
  321. package/dist/cli/utils/resolveCommandGgufPath.d.ts +19 -0
  322. package/dist/cli/utils/resolveCommandGgufPath.js +123 -0
  323. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -0
  324. package/dist/cli/utils/resolveHeaderFlag.d.ts +1 -0
  325. package/dist/cli/utils/resolveHeaderFlag.js +21 -0
  326. package/dist/cli/utils/resolveHeaderFlag.js.map +1 -0
  327. package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +14 -0
  328. package/dist/cli/utils/resolveModelRecommendationFileOptions.js +12 -0
  329. package/dist/cli/utils/resolveModelRecommendationFileOptions.js.map +1 -0
  330. package/dist/cli/utils/resolveNpmrcConfig.d.ts +18 -0
  331. package/dist/cli/utils/resolveNpmrcConfig.js +129 -0
  332. package/dist/cli/utils/resolveNpmrcConfig.js.map +1 -0
  333. package/dist/cli/utils/splitAnsiToLines.d.ts +1 -0
  334. package/dist/cli/utils/splitAnsiToLines.js +32 -0
  335. package/dist/cli/utils/splitAnsiToLines.js.map +1 -0
  336. package/dist/cli/utils/toBytes.d.ts +1 -0
  337. package/dist/cli/utils/toBytes.js +5 -0
  338. package/dist/cli/utils/toBytes.js.map +1 -0
  339. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.d.ts +2 -0
  340. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.js +23 -0
  341. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.js.map +1 -0
  342. package/dist/commands.d.ts +6 -0
  343. package/dist/commands.js +9 -0
  344. package/dist/commands.js.map +1 -0
  345. package/dist/config.d.ts +79 -0
  346. package/dist/config.js +127 -0
  347. package/dist/config.js.map +1 -0
  348. package/dist/consts.d.ts +4 -0
  349. package/dist/consts.js +11 -0
  350. package/dist/consts.js.map +1 -0
  351. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +500 -0
  352. package/dist/evaluator/LlamaChat/LlamaChat.js +2696 -0
  353. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -0
  354. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.d.ts +11 -0
  355. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.js +55 -0
  356. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.js.map +1 -0
  357. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.d.ts +16 -0
  358. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js +45 -0
  359. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js.map +1 -0
  360. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.d.ts +8 -0
  361. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.js +12 -0
  362. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.js.map +1 -0
  363. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +16 -0
  364. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +260 -0
  365. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
  366. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +520 -0
  367. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +628 -0
  368. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
  369. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.d.ts +45 -0
  370. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +191 -0
  371. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -0
  372. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +15 -0
  373. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js +16 -0
  374. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
  375. package/dist/evaluator/LlamaCompletion.d.ts +219 -0
  376. package/dist/evaluator/LlamaCompletion.js +498 -0
  377. package/dist/evaluator/LlamaCompletion.js.map +1 -0
  378. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +336 -0
  379. package/dist/evaluator/LlamaContext/LlamaContext.js +1919 -0
  380. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -0
  381. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.d.ts +27 -0
  382. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js +130 -0
  383. package/dist/evaluator/LlamaContext/LlamaContextSequenceCheckpoints.js.map +1 -0
  384. package/dist/evaluator/LlamaContext/LlamaSampler.d.ts +1 -0
  385. package/dist/evaluator/LlamaContext/LlamaSampler.js +39 -0
  386. package/dist/evaluator/LlamaContext/LlamaSampler.js.map +1 -0
  387. package/dist/evaluator/LlamaContext/TokenPredictor.d.ts +55 -0
  388. package/dist/evaluator/LlamaContext/TokenPredictor.js +20 -0
  389. package/dist/evaluator/LlamaContext/TokenPredictor.js.map +1 -0
  390. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.d.ts +56 -0
  391. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js +266 -0
  392. package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js.map +1 -0
  393. package/dist/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.d.ts +58 -0
  394. package/dist/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.js +138 -0
  395. package/dist/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.js.map +1 -0
  396. package/dist/evaluator/LlamaContext/types.d.ts +602 -0
  397. package/dist/evaluator/LlamaContext/types.js +2 -0
  398. package/dist/evaluator/LlamaContext/types.js.map +1 -0
  399. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.d.ts +5 -0
  400. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js +16 -0
  401. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js.map +1 -0
  402. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.d.ts +5 -0
  403. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js +42 -0
  404. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -0
  405. package/dist/evaluator/LlamaContext/utils/padSafeContextSize.d.ts +1 -0
  406. package/dist/evaluator/LlamaContext/utils/padSafeContextSize.js +18 -0
  407. package/dist/evaluator/LlamaContext/utils/padSafeContextSize.js.map +1 -0
  408. package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.d.ts +2 -0
  409. package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js +13 -0
  410. package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js.map +1 -0
  411. package/dist/evaluator/LlamaEmbedding.d.ts +21 -0
  412. package/dist/evaluator/LlamaEmbedding.js +53 -0
  413. package/dist/evaluator/LlamaEmbedding.js.map +1 -0
  414. package/dist/evaluator/LlamaEmbeddingContext.d.ts +52 -0
  415. package/dist/evaluator/LlamaEmbeddingContext.js +86 -0
  416. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -0
  417. package/dist/evaluator/LlamaGrammar.d.ts +39 -0
  418. package/dist/evaluator/LlamaGrammar.js +72 -0
  419. package/dist/evaluator/LlamaGrammar.js.map +1 -0
  420. package/dist/evaluator/LlamaGrammarEvaluationState.d.ts +19 -0
  421. package/dist/evaluator/LlamaGrammarEvaluationState.js +29 -0
  422. package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -0
  423. package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +17 -0
  424. package/dist/evaluator/LlamaJsonSchemaGrammar.js +35 -0
  425. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -0
  426. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +344 -0
  427. package/dist/evaluator/LlamaModel/LlamaModel.js +853 -0
  428. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -0
  429. package/dist/evaluator/LlamaModel/utils/TokenAttributes.d.ts +29 -0
  430. package/dist/evaluator/LlamaModel/utils/TokenAttributes.js +65 -0
  431. package/dist/evaluator/LlamaModel/utils/TokenAttributes.js.map +1 -0
  432. package/dist/evaluator/LlamaRankingContext.d.ts +91 -0
  433. package/dist/evaluator/LlamaRankingContext.js +178 -0
  434. package/dist/evaluator/LlamaRankingContext.js.map +1 -0
  435. package/dist/evaluator/TokenBias.d.ts +37 -0
  436. package/dist/evaluator/TokenBias.js +68 -0
  437. package/dist/evaluator/TokenBias.js.map +1 -0
  438. package/dist/evaluator/TokenMeter.d.ts +45 -0
  439. package/dist/evaluator/TokenMeter.js +74 -0
  440. package/dist/evaluator/TokenMeter.js.map +1 -0
  441. package/dist/evaluator/utils/chunkDocument.d.ts +86 -0
  442. package/dist/evaluator/utils/chunkDocument.js +212 -0
  443. package/dist/evaluator/utils/chunkDocument.js.map +1 -0
  444. package/dist/gguf/consts.d.ts +4 -0
  445. package/dist/gguf/consts.js +12 -0
  446. package/dist/gguf/consts.js.map +1 -0
  447. package/dist/gguf/errors/InvalidGgufMagicError.d.ts +3 -0
  448. package/dist/gguf/errors/InvalidGgufMagicError.js +6 -0
  449. package/dist/gguf/errors/InvalidGgufMagicError.js.map +1 -0
  450. package/dist/gguf/errors/UnsupportedGgufValueTypeError.d.ts +4 -0
  451. package/dist/gguf/errors/UnsupportedGgufValueTypeError.js +9 -0
  452. package/dist/gguf/errors/UnsupportedGgufValueTypeError.js.map +1 -0
  453. package/dist/gguf/fileReaders/GgufFileReader.d.ts +36 -0
  454. package/dist/gguf/fileReaders/GgufFileReader.js +106 -0
  455. package/dist/gguf/fileReaders/GgufFileReader.js.map +1 -0
  456. package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +16 -0
  457. package/dist/gguf/fileReaders/GgufFsFileReader.js +62 -0
  458. package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -0
  459. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +28 -0
  460. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +94 -0
  461. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -0
  462. package/dist/gguf/insights/GgufInsights.d.ts +78 -0
  463. package/dist/gguf/insights/GgufInsights.js +854 -0
  464. package/dist/gguf/insights/GgufInsights.js.map +1 -0
  465. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +203 -0
  466. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +284 -0
  467. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -0
  468. package/dist/gguf/insights/GgufInsightsTokens.d.ts +5 -0
  469. package/dist/gguf/insights/GgufInsightsTokens.js +40 -0
  470. package/dist/gguf/insights/GgufInsightsTokens.js.map +1 -0
  471. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.d.ts +5 -0
  472. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.js +7 -0
  473. package/dist/gguf/insights/utils/getRamUsageFromUnifiedVram.js.map +1 -0
  474. package/dist/gguf/insights/utils/resolveContextContextSizeOption.d.ts +33 -0
  475. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js +117 -0
  476. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -0
  477. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.d.ts +20 -0
  478. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +251 -0
  479. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -0
  480. package/dist/gguf/insights/utils/scoreLevels.d.ts +5 -0
  481. package/dist/gguf/insights/utils/scoreLevels.js +16 -0
  482. package/dist/gguf/insights/utils/scoreLevels.js.map +1 -0
  483. package/dist/gguf/parser/GgufV2Parser.d.ts +20 -0
  484. package/dist/gguf/parser/GgufV2Parser.js +184 -0
  485. package/dist/gguf/parser/GgufV2Parser.js.map +1 -0
  486. package/dist/gguf/parser/GgufV3Parser.d.ts +3 -0
  487. package/dist/gguf/parser/GgufV3Parser.js +4 -0
  488. package/dist/gguf/parser/GgufV3Parser.js.map +1 -0
  489. package/dist/gguf/parser/parseGguf.d.ts +8 -0
  490. package/dist/gguf/parser/parseGguf.js +61 -0
  491. package/dist/gguf/parser/parseGguf.js.map +1 -0
  492. package/dist/gguf/readGgufFileInfo.d.ts +54 -0
  493. package/dist/gguf/readGgufFileInfo.js +82 -0
  494. package/dist/gguf/readGgufFileInfo.js.map +1 -0
  495. package/dist/gguf/types/GgufFileInfoTypes.d.ts +85 -0
  496. package/dist/gguf/types/GgufFileInfoTypes.js +18 -0
  497. package/dist/gguf/types/GgufFileInfoTypes.js.map +1 -0
  498. package/dist/gguf/types/GgufMetadataTypes.d.ts +480 -0
  499. package/dist/gguf/types/GgufMetadataTypes.js +194 -0
  500. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -0
  501. package/dist/gguf/types/GgufTensorInfoTypes.d.ts +63 -0
  502. package/dist/gguf/types/GgufTensorInfoTypes.js +54 -0
  503. package/dist/gguf/types/GgufTensorInfoTypes.js.map +1 -0
  504. package/dist/gguf/utils/GgufReadOffset.d.ts +6 -0
  505. package/dist/gguf/utils/GgufReadOffset.js +18 -0
  506. package/dist/gguf/utils/GgufReadOffset.js.map +1 -0
  507. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.d.ts +6 -0
  508. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js +76 -0
  509. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js.map +1 -0
  510. package/dist/gguf/utils/getGgufFileTypeName.d.ts +4 -0
  511. package/dist/gguf/utils/getGgufFileTypeName.js +13 -0
  512. package/dist/gguf/utils/getGgufFileTypeName.js.map +1 -0
  513. package/dist/gguf/utils/getGgufMetadataArchitectureData.d.ts +3 -0
  514. package/dist/gguf/utils/getGgufMetadataArchitectureData.js +4 -0
  515. package/dist/gguf/utils/getGgufMetadataArchitectureData.js.map +1 -0
  516. package/dist/gguf/utils/getGgufMetadataKeyValue.d.ts +1 -0
  517. package/dist/gguf/utils/getGgufMetadataKeyValue.js +27 -0
  518. package/dist/gguf/utils/getGgufMetadataKeyValue.js.map +1 -0
  519. package/dist/gguf/utils/ggufQuantNames.d.ts +2 -0
  520. package/dist/gguf/utils/ggufQuantNames.js +42 -0
  521. package/dist/gguf/utils/ggufQuantNames.js.map +1 -0
  522. package/dist/gguf/utils/normalizeGgufDownloadUrl.d.ts +2 -0
  523. package/dist/gguf/utils/normalizeGgufDownloadUrl.js +18 -0
  524. package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -0
  525. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.d.ts +2 -0
  526. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js +38 -0
  527. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js.map +1 -0
  528. package/dist/gguf/utils/resolveSplitGgufParts.d.ts +7 -0
  529. package/dist/gguf/utils/resolveSplitGgufParts.js +64 -0
  530. package/dist/gguf/utils/resolveSplitGgufParts.js.map +1 -0
  531. package/dist/index.d.ts +71 -0
  532. package/dist/index.js +64 -0
  533. package/dist/index.js.map +1 -0
  534. package/dist/state.d.ts +6 -0
  535. package/dist/state.js +22 -0
  536. package/dist/state.js.map +1 -0
  537. package/dist/tsconfig.tsbuildinfo +1 -0
  538. package/dist/types.d.ts +408 -0
  539. package/dist/types.js +13 -0
  540. package/dist/types.js.map +1 -0
  541. package/dist/utils/DisposeGuard.d.ts +13 -0
  542. package/dist/utils/DisposeGuard.js +120 -0
  543. package/dist/utils/DisposeGuard.js.map +1 -0
  544. package/dist/utils/InsufficientMemoryError.d.ts +3 -0
  545. package/dist/utils/InsufficientMemoryError.js +6 -0
  546. package/dist/utils/InsufficientMemoryError.js.map +1 -0
  547. package/dist/utils/LlamaText.d.ts +92 -0
  548. package/dist/utils/LlamaText.js +527 -0
  549. package/dist/utils/LlamaText.js.map +1 -0
  550. package/dist/utils/LruCache.d.ts +12 -0
  551. package/dist/utils/LruCache.js +44 -0
  552. package/dist/utils/LruCache.js.map +1 -0
  553. package/dist/utils/OpenAIFormat.d.ts +177 -0
  554. package/dist/utils/OpenAIFormat.js +488 -0
  555. package/dist/utils/OpenAIFormat.js.map +1 -0
  556. package/dist/utils/OverridesObject.d.ts +7 -0
  557. package/dist/utils/OverridesObject.js +2 -0
  558. package/dist/utils/OverridesObject.js.map +1 -0
  559. package/dist/utils/ReplHistory.d.ts +9 -0
  560. package/dist/utils/ReplHistory.js +72 -0
  561. package/dist/utils/ReplHistory.js.map +1 -0
  562. package/dist/utils/StopGenerationDetector.d.ts +47 -0
  563. package/dist/utils/StopGenerationDetector.js +291 -0
  564. package/dist/utils/StopGenerationDetector.js.map +1 -0
  565. package/dist/utils/ThreadsSplitter.d.ts +32 -0
  566. package/dist/utils/ThreadsSplitter.js +177 -0
  567. package/dist/utils/ThreadsSplitter.js.map +1 -0
  568. package/dist/utils/TokenStreamRegulator.d.ts +38 -0
  569. package/dist/utils/TokenStreamRegulator.js +200 -0
  570. package/dist/utils/TokenStreamRegulator.js.map +1 -0
  571. package/dist/utils/UnsupportedError.d.ts +2 -0
  572. package/dist/utils/UnsupportedError.js +7 -0
  573. package/dist/utils/UnsupportedError.js.map +1 -0
  574. package/dist/utils/appendUserMessageToChatHistory.d.ts +6 -0
  575. package/dist/utils/appendUserMessageToChatHistory.js +22 -0
  576. package/dist/utils/appendUserMessageToChatHistory.js.map +1 -0
  577. package/dist/utils/clearTempFolder.d.ts +1 -0
  578. package/dist/utils/clearTempFolder.js +16 -0
  579. package/dist/utils/clearTempFolder.js.map +1 -0
  580. package/dist/utils/cmake.d.ts +10 -0
  581. package/dist/utils/cmake.js +146 -0
  582. package/dist/utils/cmake.js.map +1 -0
  583. package/dist/utils/compareTokens.d.ts +2 -0
  584. package/dist/utils/compareTokens.js +4 -0
  585. package/dist/utils/compareTokens.js.map +1 -0
  586. package/dist/utils/createModelDownloader.d.ts +262 -0
  587. package/dist/utils/createModelDownloader.js +486 -0
  588. package/dist/utils/createModelDownloader.js.map +1 -0
  589. package/dist/utils/findBestOption.d.ts +4 -0
  590. package/dist/utils/findBestOption.js +15 -0
  591. package/dist/utils/findBestOption.js.map +1 -0
  592. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +20 -0
  593. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +85 -0
  594. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -0
  595. package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +19 -0
  596. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +60 -0
  597. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -0
  598. package/dist/utils/gbnfJson/GbnfTerminal.d.ts +11 -0
  599. package/dist/utils/gbnfJson/GbnfTerminal.js +54 -0
  600. package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -0
  601. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.d.ts +5 -0
  602. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js +11 -0
  603. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -0
  604. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.d.ts +9 -0
  605. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js +53 -0
  606. package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js.map +1 -0
  607. package/dist/utils/gbnfJson/terminals/GbnfArray.d.ts +18 -0
  608. package/dist/utils/gbnfJson/terminals/GbnfArray.js +83 -0
  609. package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -0
  610. package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +7 -0
  611. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js +22 -0
  612. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -0
  613. package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.d.ts +7 -0
  614. package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js +17 -0
  615. package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js.map +1 -0
  616. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.d.ts +11 -0
  617. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js +28 -0
  618. package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js.map +1 -0
  619. package/dist/utils/gbnfJson/terminals/GbnfFormatString.d.ts +11 -0
  620. package/dist/utils/gbnfJson/terminals/GbnfFormatString.js +90 -0
  621. package/dist/utils/gbnfJson/terminals/GbnfFormatString.js.map +1 -0
  622. package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +9 -0
  623. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +23 -0
  624. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -0
  625. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.d.ts +5 -0
  626. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js +24 -0
  627. package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js.map +1 -0
  628. package/dist/utils/gbnfJson/terminals/GbnfNull.d.ts +5 -0
  629. package/dist/utils/gbnfJson/terminals/GbnfNull.js +11 -0
  630. package/dist/utils/gbnfJson/terminals/GbnfNull.js.map +1 -0
  631. package/dist/utils/gbnfJson/terminals/GbnfNumber.d.ts +9 -0
  632. package/dist/utils/gbnfJson/terminals/GbnfNumber.js +22 -0
  633. package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -0
  634. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +9 -0
  635. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +21 -0
  636. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -0
  637. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.d.ts +28 -0
  638. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js +88 -0
  639. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -0
  640. package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +9 -0
  641. package/dist/utils/gbnfJson/terminals/GbnfOr.js +34 -0
  642. package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -0
  643. package/dist/utils/gbnfJson/terminals/GbnfRef.d.ts +15 -0
  644. package/dist/utils/gbnfJson/terminals/GbnfRef.js +34 -0
  645. package/dist/utils/gbnfJson/terminals/GbnfRef.js.map +1 -0
  646. package/dist/utils/gbnfJson/terminals/GbnfRepetition.d.ts +15 -0
  647. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js +86 -0
  648. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js.map +1 -0
  649. package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +12 -0
  650. package/dist/utils/gbnfJson/terminals/GbnfString.js +43 -0
  651. package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -0
  652. package/dist/utils/gbnfJson/terminals/GbnfStringValue.d.ts +8 -0
  653. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js +26 -0
  654. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -0
  655. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.d.ts +6 -0
  656. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js +21 -0
  657. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -0
  658. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +13 -0
  659. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js +67 -0
  660. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -0
  661. package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +30 -0
  662. package/dist/utils/gbnfJson/terminals/gbnfConsts.js +72 -0
  663. package/dist/utils/gbnfJson/terminals/gbnfConsts.js.map +1 -0
  664. package/dist/utils/gbnfJson/types.d.ts +213 -0
  665. package/dist/utils/gbnfJson/types.js +30 -0
  666. package/dist/utils/gbnfJson/types.js.map +1 -0
  667. package/dist/utils/gbnfJson/utils/GbnfJsonScopeState.d.ts +10 -0
  668. package/dist/utils/gbnfJson/utils/GbnfJsonScopeState.js +15 -0
  669. package/dist/utils/gbnfJson/utils/GbnfJsonScopeState.js.map +1 -0
  670. package/dist/utils/gbnfJson/utils/defsScope.d.ts +7 -0
  671. package/dist/utils/gbnfJson/utils/defsScope.js +17 -0
  672. package/dist/utils/gbnfJson/utils/defsScope.js.map +1 -0
  673. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.d.ts +5 -0
  674. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +143 -0
  675. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -0
  676. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.d.ts +5 -0
  677. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.js +16 -0
  678. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.js.map +1 -0
  679. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.d.ts +8 -0
  680. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +242 -0
  681. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -0
  682. package/dist/utils/getBuildDefaults.d.ts +5 -0
  683. package/dist/utils/getBuildDefaults.js +9 -0
  684. package/dist/utils/getBuildDefaults.js.map +1 -0
  685. package/dist/utils/getChatWrapperSegmentDefinition.d.ts +2 -0
  686. package/dist/utils/getChatWrapperSegmentDefinition.js +9 -0
  687. package/dist/utils/getChatWrapperSegmentDefinition.js.map +1 -0
  688. package/dist/utils/getConsoleLogPrefix.d.ts +1 -0
  689. package/dist/utils/getConsoleLogPrefix.js +10 -0
  690. package/dist/utils/getConsoleLogPrefix.js.map +1 -0
  691. package/dist/utils/getFirstWritableDir.d.ts +8 -0
  692. package/dist/utils/getFirstWritableDir.js +60 -0
  693. package/dist/utils/getFirstWritableDir.js.map +1 -0
  694. package/dist/utils/getGrammarsFolder.d.ts +2 -0
  695. package/dist/utils/getGrammarsFolder.js +19 -0
  696. package/dist/utils/getGrammarsFolder.js.map +1 -0
  697. package/dist/utils/getLlamaClasses.d.ts +9 -0
  698. package/dist/utils/getLlamaClasses.js +14 -0
  699. package/dist/utils/getLlamaClasses.js.map +1 -0
  700. package/dist/utils/getModuleVersion.d.ts +1 -0
  701. package/dist/utils/getModuleVersion.js +13 -0
  702. package/dist/utils/getModuleVersion.js.map +1 -0
  703. package/dist/utils/getQueuedTokensBeforeStopTrigger.d.ts +6 -0
  704. package/dist/utils/getQueuedTokensBeforeStopTrigger.js +22 -0
  705. package/dist/utils/getQueuedTokensBeforeStopTrigger.js.map +1 -0
  706. package/dist/utils/getReadableContextSize.d.ts +1 -0
  707. package/dist/utils/getReadableContextSize.js +7 -0
  708. package/dist/utils/getReadableContextSize.js.map +1 -0
  709. package/dist/utils/getTempDir.d.ts +10 -0
  710. package/dist/utils/getTempDir.js +121 -0
  711. package/dist/utils/getTempDir.js.map +1 -0
  712. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.d.ts +2 -0
  713. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +205 -0
  714. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -0
  715. package/dist/utils/gitReleaseBundles.d.ts +2 -0
  716. package/dist/utils/gitReleaseBundles.js +132 -0
  717. package/dist/utils/gitReleaseBundles.js.map +1 -0
  718. package/dist/utils/hashString.d.ts +1 -0
  719. package/dist/utils/hashString.js +8 -0
  720. package/dist/utils/hashString.js.map +1 -0
  721. package/dist/utils/includesText.d.ts +1 -0
  722. package/dist/utils/includesText.js +12 -0
  723. package/dist/utils/includesText.js.map +1 -0
  724. package/dist/utils/isLockfileActive.d.ts +4 -0
  725. package/dist/utils/isLockfileActive.js +12 -0
  726. package/dist/utils/isLockfileActive.js.map +1 -0
  727. package/dist/utils/isToken.d.ts +2 -0
  728. package/dist/utils/isToken.js +4 -0
  729. package/dist/utils/isToken.js.map +1 -0
  730. package/dist/utils/isUrl.d.ts +1 -0
  731. package/dist/utils/isUrl.js +15 -0
  732. package/dist/utils/isUrl.js.map +1 -0
  733. package/dist/utils/mergeUnionTypes.d.ts +10 -0
  734. package/dist/utils/mergeUnionTypes.js +2 -0
  735. package/dist/utils/mergeUnionTypes.js.map +1 -0
  736. package/dist/utils/modelDownloadEndpoints.d.ts +13 -0
  737. package/dist/utils/modelDownloadEndpoints.js +27 -0
  738. package/dist/utils/modelDownloadEndpoints.js.map +1 -0
  739. package/dist/utils/modelFileAccessTokens.d.ts +5 -0
  740. package/dist/utils/modelFileAccessTokens.js +41 -0
  741. package/dist/utils/modelFileAccessTokens.js.map +1 -0
  742. package/dist/utils/optionsMatrix.d.ts +58 -0
  743. package/dist/utils/optionsMatrix.js +97 -0
  744. package/dist/utils/optionsMatrix.js.map +1 -0
  745. package/dist/utils/parseModelFileName.d.ts +15 -0
  746. package/dist/utils/parseModelFileName.js +132 -0
  747. package/dist/utils/parseModelFileName.js.map +1 -0
  748. package/dist/utils/parseModelUri.d.ts +40 -0
  749. package/dist/utils/parseModelUri.js +346 -0
  750. package/dist/utils/parseModelUri.js.map +1 -0
  751. package/dist/utils/parseTextTemplate.d.ts +66 -0
  752. package/dist/utils/parseTextTemplate.js +116 -0
  753. package/dist/utils/parseTextTemplate.js.map +1 -0
  754. package/dist/utils/prettyPrintObject.d.ts +10 -0
  755. package/dist/utils/prettyPrintObject.js +84 -0
  756. package/dist/utils/prettyPrintObject.js.map +1 -0
  757. package/dist/utils/pushAll.d.ts +6 -0
  758. package/dist/utils/pushAll.js +11 -0
  759. package/dist/utils/pushAll.js.map +1 -0
  760. package/dist/utils/removeNullFields.d.ts +2 -0
  761. package/dist/utils/removeNullFields.js +17 -0
  762. package/dist/utils/removeNullFields.js.map +1 -0
  763. package/dist/utils/resolveGithubRelease.d.ts +2 -0
  764. package/dist/utils/resolveGithubRelease.js +77 -0
  765. package/dist/utils/resolveGithubRelease.js.map +1 -0
  766. package/dist/utils/resolveLastTokens.d.ts +2 -0
  767. package/dist/utils/resolveLastTokens.js +12 -0
  768. package/dist/utils/resolveLastTokens.js.map +1 -0
  769. package/dist/utils/resolveModelDestination.d.ts +16 -0
  770. package/dist/utils/resolveModelDestination.js +54 -0
  771. package/dist/utils/resolveModelDestination.js.map +1 -0
  772. package/dist/utils/resolveModelFile.d.ts +142 -0
  773. package/dist/utils/resolveModelFile.js +201 -0
  774. package/dist/utils/resolveModelFile.js.map +1 -0
  775. package/dist/utils/runtime.d.ts +4 -0
  776. package/dist/utils/runtime.js +8 -0
  777. package/dist/utils/runtime.js.map +1 -0
  778. package/dist/utils/safeEventCallback.d.ts +6 -0
  779. package/dist/utils/safeEventCallback.js +29 -0
  780. package/dist/utils/safeEventCallback.js.map +1 -0
  781. package/dist/utils/signalSleep.d.ts +1 -0
  782. package/dist/utils/signalSleep.js +20 -0
  783. package/dist/utils/signalSleep.js.map +1 -0
  784. package/dist/utils/spawnCommand.d.ts +11 -0
  785. package/dist/utils/spawnCommand.js +89 -0
  786. package/dist/utils/spawnCommand.js.map +1 -0
  787. package/dist/utils/tokenizeInput.d.ts +3 -0
  788. package/dist/utils/tokenizeInput.js +14 -0
  789. package/dist/utils/tokenizeInput.js.map +1 -0
  790. package/dist/utils/tokenizerUtils.d.ts +12 -0
  791. package/dist/utils/tokenizerUtils.js +32 -0
  792. package/dist/utils/tokenizerUtils.js.map +1 -0
  793. package/dist/utils/transformPromisable.d.ts +54 -0
  794. package/dist/utils/transformPromisable.js +95 -0
  795. package/dist/utils/transformPromisable.js.map +1 -0
  796. package/dist/utils/truncateTextAndRoundToWords.d.ts +11 -0
  797. package/dist/utils/truncateTextAndRoundToWords.js +110 -0
  798. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -0
  799. package/dist/utils/utilTypes.d.ts +18 -0
  800. package/dist/utils/utilTypes.js +2 -0
  801. package/dist/utils/utilTypes.js.map +1 -0
  802. package/dist/utils/waitForLockfileRelease.d.ts +5 -0
  803. package/dist/utils/waitForLockfileRelease.js +19 -0
  804. package/dist/utils/waitForLockfileRelease.js.map +1 -0
  805. package/dist/utils/withLockfile.d.ts +7 -0
  806. package/dist/utils/withLockfile.js +44 -0
  807. package/dist/utils/withLockfile.js.map +1 -0
  808. package/dist/utils/withOra.d.ts +7 -0
  809. package/dist/utils/withOra.js +37 -0
  810. package/dist/utils/withOra.js.map +1 -0
  811. package/dist/utils/withProgressLog.d.ts +22 -0
  812. package/dist/utils/withProgressLog.js +211 -0
  813. package/dist/utils/withProgressLog.js.map +1 -0
  814. package/dist/utils/withStatusLogs.d.ts +6 -0
  815. package/dist/utils/withStatusLogs.js +25 -0
  816. package/dist/utils/withStatusLogs.js.map +1 -0
  817. package/dist/utils/wrapAbortSignal.d.ts +1 -0
  818. package/dist/utils/wrapAbortSignal.js +14 -0
  819. package/dist/utils/wrapAbortSignal.js.map +1 -0
  820. package/llama/.clang-format +46 -0
  821. package/llama/CMakeLists.txt +141 -0
  822. package/llama/addon/AddonContext.cpp +1181 -0
  823. package/llama/addon/AddonContext.h +85 -0
  824. package/llama/addon/AddonGrammar.cpp +92 -0
  825. package/llama/addon/AddonGrammar.h +22 -0
  826. package/llama/addon/AddonGrammarEvaluationState.cpp +36 -0
  827. package/llama/addon/AddonGrammarEvaluationState.h +17 -0
  828. package/llama/addon/AddonModel.cpp +691 -0
  829. package/llama/addon/AddonModel.h +64 -0
  830. package/llama/addon/AddonModelData.cpp +25 -0
  831. package/llama/addon/AddonModelData.h +15 -0
  832. package/llama/addon/AddonModelLora.cpp +103 -0
  833. package/llama/addon/AddonModelLora.h +28 -0
  834. package/llama/addon/AddonSampler.cpp +669 -0
  835. package/llama/addon/AddonSampler.h +75 -0
  836. package/llama/addon/RingBuffer.h +109 -0
  837. package/llama/addon/addon.cpp +330 -0
  838. package/llama/addon/addonGlobals.cpp +22 -0
  839. package/llama/addon/addonGlobals.h +12 -0
  840. package/llama/addon/globals/addonLog.cpp +143 -0
  841. package/llama/addon/globals/addonLog.h +24 -0
  842. package/llama/addon/globals/addonProgress.cpp +15 -0
  843. package/llama/addon/globals/addonProgress.h +15 -0
  844. package/llama/addon/globals/getGpuInfo.cpp +146 -0
  845. package/llama/addon/globals/getGpuInfo.h +11 -0
  846. package/llama/addon/globals/getMemoryInfo.cpp +63 -0
  847. package/llama/addon/globals/getMemoryInfo.h +4 -0
  848. package/llama/addon/globals/getSwapInfo.cpp +69 -0
  849. package/llama/addon/globals/getSwapInfo.h +4 -0
  850. package/llama/binariesGithubRelease.json +3 -0
  851. package/llama/cmake/addVariantSuffix.cmake +21 -0
  852. package/llama/cmake/win32.ensureNinjaPath.cmake +68 -0
  853. package/llama/cmake/win32.ensureNodeLib.cmake +34 -0
  854. package/llama/cmake/win32.llvmApplyGnuModeAdaptations.cmake +12 -0
  855. package/llama/cmake/win32.llvmEnsureCmakeAr.cmake +37 -0
  856. package/llama/cmake/win32.llvmUseGnuModeCompilers.cmake +87 -0
  857. package/llama/cmake/win32.programFilesPaths.cmake +35 -0
  858. package/llama/gpuInfo/vulkan-gpu-info.cpp +207 -0
  859. package/llama/gpuInfo/vulkan-gpu-info.h +9 -0
  860. package/llama/package.json +5 -0
  861. package/llama/profiles/llvm.win32.host-arm64.target-arm64.cmake +14 -0
  862. package/llama/profiles/llvm.win32.host-x64.target-arm64.cmake +14 -0
  863. package/llama/profiles/llvm.win32.host-x64.target-x64.cmake +14 -0
  864. package/llama/toolchains/darwin.host-x64.target-arm64.cmake +8 -0
  865. package/llama/toolchains/linux.host-arm64.target-x64.cmake +5 -0
  866. package/llama/toolchains/linux.host-x64.target-arm64.cmake +5 -0
  867. package/llama/toolchains/linux.host-x64.target-arm71.cmake +5 -0
  868. package/llama/toolchains/llvm.win32.host-x64.target-x64.cmake +20 -0
  869. package/llama/toolchains/win32.host-arm64.target-arm64.cmake +21 -0
  870. package/llama/toolchains/win32.host-x64.target-arm64.cmake +21 -0
  871. package/llama/xpack/package.json +10 -0
  872. package/package.json +241 -0
  873. package/templates/README.md +6 -0
  874. package/templates/package.json +10 -0
  875. package/templates/packed/electron-typescript-react.json +1 -0
  876. package/templates/packed/node-typescript.json +1 -0
@@ -0,0 +1,853 @@
1
+ import process from "process";
2
+ import path from "path";
3
+ import { AsyncDisposeAggregator, DisposedError, EventRelay, withLock } from "lifecycle-utils";
4
+ import { removeNullFields } from "../../utils/removeNullFields.js";
5
+ import { DisposeGuard } from "../../utils/DisposeGuard.js";
6
+ import { LlamaLocks, LlamaLogLevel, LlamaVocabularyType, LlamaVocabularyTypeValues } from "../../bindings/types.js";
7
+ import { readGgufFileInfo } from "../../gguf/readGgufFileInfo.js";
8
+ import { GgufInsights } from "../../gguf/insights/GgufInsights.js";
9
+ import { getConsoleLogPrefix } from "../../utils/getConsoleLogPrefix.js";
10
+ import { getReadablePath } from "../../cli/utils/getReadablePath.js";
11
+ import { LlamaContext } from "../LlamaContext/LlamaContext.js";
12
+ import { LlamaEmbeddingContext } from "../LlamaEmbeddingContext.js";
13
+ import { GgufArchitectureType } from "../../gguf/types/GgufMetadataTypes.js";
14
+ import { maxRecentDetokenizerTokens } from "../../consts.js";
15
+ import { LlamaRankingContext } from "../LlamaRankingContext.js";
16
+ import { GgmlType, resolveGgmlTypeOption } from "../../gguf/types/GgufTensorInfoTypes.js";
17
+ import { TokenAttribute, TokenAttributes } from "./utils/TokenAttributes.js";
18
+ const defaultUseMmap = true;
19
+ const defaultUseDirectIo = false;
20
+ const defaultContextFlashAttentionEnabled = false;
21
+ const defaultContextSwaFullCache = false;
22
+ export class LlamaModel {
23
+ /** @internal */ _llama;
24
+ /** @internal */ _model;
25
+ /** @internal */ _backendModelDisposeGuard;
26
+ /** @internal */ _tokens;
27
+ /** @internal */ _modelPath;
28
+ /** @internal */ _fileInfo;
29
+ /** @internal */ _fileInsights;
30
+ /** @internal */ _gpuLayers;
31
+ /** @internal */ _vocabOnly;
32
+ /** @internal */ _filename;
33
+ /** @internal */ _disposedState = { disposed: false };
34
+ /** @internal */ _disposeAggregator = new AsyncDisposeAggregator();
35
+ /** @internal */ _llamaPreventDisposalHandle;
36
+ /** @internal */ _defaultContextFlashAttentionOptionEnabled;
37
+ /** @internal */ _defaultContextFlashAttention;
38
+ /** @internal */ _defaultContextSwaFullCache;
39
+ /** @internal */ _defaultContextKvCacheKeyType;
40
+ /** @internal */ _defaultContextKvCacheValueType;
41
+ /** @internal */ _flashAttentionSupported;
42
+ /** @internal */ _loraAdapters = new Map();
43
+ /** @internal */ _typeDescription;
44
+ /** @internal */ _trainContextSize;
45
+ /** @internal */ _embeddingVectorSize;
46
+ /** @internal */ _vocabularyType;
47
+ tokenizer;
48
+ onDispose = new EventRelay();
49
+ constructor({ modelPath, gpuLayers, vocabOnly = false, useMmap, useDirectIo, useMlock, checkTensors, onLoadProgress, loadSignal, metadataOverrides }, { _llama, _fileInfo, _fileInsights, _defaultContextFlashAttentionOptionEnabled, _defaultContextFlashAttention, _defaultContextSwaFullCache, _defaultContextKvCacheKeyType, _defaultContextKvCacheValueType, _flashAttentionSupported }) {
50
+ this._llama = _llama;
51
+ this._fileInfo = _fileInfo;
52
+ this._modelPath = path.resolve(process.cwd(), modelPath);
53
+ this._fileInsights = _fileInsights;
54
+ this._gpuLayers = gpuLayers;
55
+ this._vocabOnly = vocabOnly ?? false;
56
+ this._backendModelDisposeGuard = new DisposeGuard([this._llama._backendDisposeGuard]);
57
+ this._llamaPreventDisposalHandle = this._llama._backendDisposeGuard.createPreventDisposalHandle();
58
+ this._defaultContextFlashAttentionOptionEnabled = _defaultContextFlashAttentionOptionEnabled;
59
+ this._defaultContextFlashAttention = _defaultContextFlashAttention;
60
+ this._defaultContextSwaFullCache = _defaultContextSwaFullCache;
61
+ this._defaultContextKvCacheKeyType = _defaultContextKvCacheKeyType;
62
+ this._defaultContextKvCacheValueType = _defaultContextKvCacheValueType;
63
+ this._flashAttentionSupported = _flashAttentionSupported;
64
+ const overridesList = ggufMetadataOverridesToList(metadataOverrides);
65
+ this._model = new this._llama._bindings.AddonModel(this._modelPath, removeNullFields({
66
+ addonExports: this._llama._bindings,
67
+ gpuLayers,
68
+ vocabOnly: this._vocabOnly,
69
+ useMmap,
70
+ useDirectIo,
71
+ useMlock: _llama.supportsMlock
72
+ ? useMlock
73
+ : undefined,
74
+ checkTensors: checkTensors ?? false,
75
+ onLoadProgress: onLoadProgress == null
76
+ ? undefined
77
+ : (loadPercentage) => {
78
+ try {
79
+ onLoadProgress(loadPercentage);
80
+ }
81
+ catch (err) {
82
+ // the native addon code calls this function, so there's no use to throw an error here
83
+ console.error(err);
84
+ }
85
+ },
86
+ hasLoadAbortSignal: loadSignal != null,
87
+ overridesList: overridesList.length > 0
88
+ ? overridesList
89
+ : undefined
90
+ }));
91
+ this._tokens = LlamaModelTokens._create(this._model, this._disposedState);
92
+ this._filename = path.basename(modelPath);
93
+ this._disposeAggregator.add(() => {
94
+ this._disposedState.disposed = true;
95
+ });
96
+ this._disposeAggregator.add(this.onDispose.dispatchEvent);
97
+ this._disposeAggregator.add(this._llama.onDispose.createListener(disposeModelIfReferenced.bind(null, new WeakRef(this))));
98
+ this._disposeAggregator.add(async () => {
99
+ await this._backendModelDisposeGuard.acquireDisposeLock();
100
+ await this._model.dispose();
101
+ this._llamaPreventDisposalHandle.dispose();
102
+ });
103
+ this.tokenize = this.tokenize.bind(this);
104
+ this.detokenize = this.detokenize.bind(this);
105
+ this.isSpecialToken = this.isSpecialToken.bind(this);
106
+ this.isEogToken = this.isEogToken.bind(this);
107
+ this.tokenize.detokenize = this.detokenize;
108
+ this.tokenize.isSpecialToken = this.isSpecialToken;
109
+ this.tokenize.isEogToken = this.isEogToken;
110
+ Object.freeze(this.tokenize);
111
+ this.tokenizer = this.tokenize;
112
+ }
113
+ async dispose() {
114
+ if (this._disposedState.disposed)
115
+ return;
116
+ this._disposedState.disposed = true;
117
+ await this._disposeAggregator.dispose();
118
+ }
119
+ /** @hidden */
120
+ async [Symbol.asyncDispose]() {
121
+ await this.dispose();
122
+ }
123
+ get disposed() {
124
+ return this._disposedState.disposed;
125
+ }
126
+ get llama() {
127
+ return this._llama;
128
+ }
129
+ get tokens() {
130
+ return this._tokens;
131
+ }
132
+ get filename() {
133
+ return this._filename;
134
+ }
135
+ get fileInfo() {
136
+ return this._fileInfo;
137
+ }
138
+ get fileInsights() {
139
+ return this._fileInsights;
140
+ }
141
+ /**
142
+ * Number of layers offloaded to the GPU.
143
+ * If GPU support is disabled, this will always be `0`.
144
+ */
145
+ get gpuLayers() {
146
+ return this._gpuLayers;
147
+ }
148
+ /**
149
+ * Total model size in memory in bytes.
150
+ *
151
+ * When using mmap, actual memory usage may be higher than this value due to `llama.cpp`'s performance optimizations.
152
+ */
153
+ get size() {
154
+ this._ensureNotDisposed();
155
+ return this._model.getModelSize();
156
+ }
157
+ get flashAttentionSupported() {
158
+ return this._flashAttentionSupported;
159
+ }
160
+ get defaultContextFlashAttention() {
161
+ return this._defaultContextFlashAttention;
162
+ }
163
+ get defaultContextSwaFullCache() {
164
+ return this._defaultContextSwaFullCache;
165
+ }
166
+ get defaultContextKvCacheKeyType() {
167
+ return this._defaultContextKvCacheKeyType;
168
+ }
169
+ get defaultContextKvCacheValueType() {
170
+ return this._defaultContextKvCacheValueType;
171
+ }
172
+ tokenize(text, specialTokens = false, options) {
173
+ this._ensureNotDisposed();
174
+ if (text === "")
175
+ return [];
176
+ if (specialTokens === "builtin") {
177
+ const builtinToken = text;
178
+ switch (builtinToken) {
179
+ case "BOS": return this.tokens.bos == null ? [] : [this.tokens.bos];
180
+ case "EOS": return this.tokens.eos == null ? [] : [this.tokens.eos];
181
+ case "NL": return this.tokens.nl == null ? [] : [this.tokens.nl];
182
+ case "EOT": return this.tokens.eot == null ? [] : [this.tokens.eot];
183
+ case "SEP": return this.tokens.sep == null ? [] : [this.tokens.sep];
184
+ }
185
+ void builtinToken;
186
+ throw new Error(`Unknown builtin special token: ${builtinToken}`);
187
+ }
188
+ if (options === "trimLeadingSpace") {
189
+ if (specialTokens) {
190
+ const countLeadingSpaces = (text) => {
191
+ let count = 0;
192
+ for (; count < text.length; count++) {
193
+ if (text[count] !== " ")
194
+ break;
195
+ }
196
+ return count;
197
+ };
198
+ const textLeadingSpaces = countLeadingSpaces(text);
199
+ const [workaroundToken, workaroundTokenString] = (this.tokens.bos != null && this.tokens.bosString != null)
200
+ ? [this.tokens.bos, this.tokens.bosString]
201
+ : (this.tokens.eos != null && this.tokens.eosString != null)
202
+ ? [this.tokens.eos, this.tokens.eosString]
203
+ : (this.tokens.nl != null && this.tokens.nlString != null)
204
+ ? [this.tokens.nl, this.tokens.nlString]
205
+ : (this.tokens.eot != null && this.tokens.eotString != null)
206
+ ? [this.tokens.eot, this.tokens.eotString]
207
+ : [null, null];
208
+ if (workaroundToken != null && workaroundTokenString != null) {
209
+ const tokens = Array.from(this._model.tokenize(workaroundTokenString + text, true));
210
+ const workaroundTokenIndex = tokens.indexOf(workaroundToken);
211
+ // only use the tokenized output if it can be corrected, otherwise fallback to the default tokenization
212
+ if (workaroundTokenIndex >= 0 && workaroundTokenIndex <= 1) {
213
+ tokens.splice(0, workaroundTokenIndex + 1);
214
+ if (countLeadingSpaces(this.detokenize(tokens, true)) === textLeadingSpaces)
215
+ return tokens;
216
+ }
217
+ }
218
+ const workaroundTokensString = "\n";
219
+ const workaroundTokens = Array.from(this._model.tokenize(workaroundTokensString, true));
220
+ if (text.startsWith(workaroundTokensString)) {
221
+ const tokens = Array.from(this._model.tokenize(text, true));
222
+ if (this.detokenize(tokens, true).startsWith(workaroundTokensString))
223
+ return tokens;
224
+ }
225
+ const tokens = Array.from(this._model.tokenize(workaroundTokensString + text, true));
226
+ // only use the tokenized output if it can be corrected, otherwise fallback to the default tokenization
227
+ if (workaroundTokens.length > 0 && workaroundTokens.every((token, index) => tokens[index] === token)) {
228
+ tokens.splice(0, workaroundTokens.length);
229
+ if (countLeadingSpaces(this.detokenize(tokens, true)) === textLeadingSpaces)
230
+ return tokens;
231
+ }
232
+ }
233
+ else {
234
+ const workaroundTokensString = "\n";
235
+ const workaroundTokens = Array.from(this._model.tokenize(workaroundTokensString, false));
236
+ if (text.startsWith(workaroundTokensString)) {
237
+ const tokens = Array.from(this._model.tokenize(text, false));
238
+ if (this.detokenize(tokens, false).startsWith(workaroundTokensString))
239
+ return tokens;
240
+ }
241
+ const tokens = Array.from(this._model.tokenize(workaroundTokensString + text, false));
242
+ // only use the tokenized output if it can be corrected, otherwise fallback to the default tokenization
243
+ if (workaroundTokens.length > 0 && workaroundTokens.every((token, index) => tokens[index] === token)) {
244
+ tokens.splice(0, workaroundTokens.length);
245
+ return tokens;
246
+ }
247
+ }
248
+ }
249
+ return Array.from(this._model.tokenize(text, specialTokens));
250
+ }
251
+ /**
252
+ * Transform tokens into text
253
+ * @param tokens - the tokens to detokenize.
254
+ * @param [specialTokens] - if set to `true`, special tokens will be detokenized to their corresponding token text representation.
255
+ *
256
+ * Recommended for debugging purposes only.
257
+ *
258
+ * > **Note:** there may be additional spaces around special tokens that were not present in the original text - this is not a bug,
259
+ * this is [how the tokenizer is supposed to work](https://github.com/ggml-org/llama.cpp/pull/7697#issuecomment-2144003246).
260
+ *
261
+ * Defaults to `false`.
262
+ * @param [lastTokens] - the last few tokens that preceded the tokens to detokenize.
263
+ * If provided, the last few tokens will be used to determine whether a space has to be added before the current tokens or not,
264
+ * and apply other detokenizer-specific heuristics to provide the correct text continuation to the existing tokens.
265
+ *
266
+ * Using it may have no effect with some models, but it is still recommended.
267
+ */
268
+ detokenize(tokens, specialTokens = false, lastTokens) {
269
+ this._ensureNotDisposed();
270
+ if (tokens.length === 0)
271
+ return "";
272
+ if (lastTokens == null || lastTokens.length === 0)
273
+ return this._model.detokenize(Uint32Array.from(tokens), Boolean(specialTokens));
274
+ const addedTokens = lastTokens.slice(-maxRecentDetokenizerTokens);
275
+ const addedTokensText = this._model.detokenize(Uint32Array.from(addedTokens), Boolean(specialTokens));
276
+ if (addedTokensText === "")
277
+ return this._model.detokenize(Uint32Array.from(tokens), Boolean(specialTokens));
278
+ const text = this._model.detokenize(Uint32Array.from([...addedTokens, ...tokens]), Boolean(specialTokens));
279
+ if (text.startsWith(addedTokensText))
280
+ return text.slice(addedTokensText.length);
281
+ return this._model.detokenize(Uint32Array.from(tokens), Boolean(specialTokens));
282
+ }
283
+ getTokenAttributes(token) {
284
+ if (token == null)
285
+ throw new Error("Token cannot be null");
286
+ if (this.vocabularyType === LlamaVocabularyType.none)
287
+ return TokenAttributes._create(token, TokenAttribute.undefined);
288
+ return TokenAttributes._create(token, this._model.getTokenAttributes(token));
289
+ }
290
+ /** Check whether the given token is a special token (a control-type token or a token with no normal text representation) */
291
+ isSpecialToken(token) {
292
+ if (token == null)
293
+ return false;
294
+ if (this.getTokenAttributes(token).control)
295
+ return true;
296
+ const normalText = this.detokenize([token], false);
297
+ if (normalText === "")
298
+ return this.detokenize([token], true) !== "";
299
+ return false;
300
+ }
301
+ *iterateAllTokens() {
302
+ if (this.vocabularyType === LlamaVocabularyType.none)
303
+ return;
304
+ const totalTokens = this.fileInfo.metadata?.tokenizer?.ggml?.tokens?.length;
305
+ if (typeof totalTokens !== "number")
306
+ return;
307
+ for (let i = 0; i < totalTokens; i++)
308
+ yield i;
309
+ }
310
+ /** Check whether the given token is an EOG (End Of Generation) token, like EOS or EOT. */
311
+ isEogToken(token) {
312
+ if (token == null)
313
+ return false;
314
+ return token === this.tokens.eos || token === this.tokens.eot || this._model.isEogToken(token);
315
+ }
316
+ async createContext(options = {}) {
317
+ if (this._vocabOnly)
318
+ throw new Error("Model is loaded in vocabOnly mode, so no context can be created");
319
+ return await withLock([this._llama._memoryLock, LlamaLocks.loadToMemory], options.createSignal, async () => {
320
+ const preventDisposalHandle = this._backendModelDisposeGuard.createPreventDisposalHandle();
321
+ try {
322
+ return await LlamaContext._create(options, { _model: this });
323
+ }
324
+ finally {
325
+ preventDisposalHandle.dispose();
326
+ }
327
+ });
328
+ }
329
+ /**
330
+ * @see [Using Embedding](https://node-llama-cpp.withcat.ai/guide/embedding) tutorial
331
+ */
332
+ async createEmbeddingContext(options = {}) {
333
+ if (this._vocabOnly)
334
+ throw new Error("Model is loaded in vocabOnly mode, so no context can be created");
335
+ return await LlamaEmbeddingContext._create({ _model: this }, options);
336
+ }
337
+ /**
338
+ * @see [Reranking Documents](https://node-llama-cpp.withcat.ai/guide/embedding#reranking) tutorial
339
+ */
340
+ async createRankingContext(options = {}) {
341
+ if (this._vocabOnly)
342
+ throw new Error("Model is loaded in vocabOnly mode, so no context can be created");
343
+ return await LlamaRankingContext._create({ _model: this }, options);
344
+ }
345
+ /**
346
+ * Get warnings about the model file that would affect its usage.
347
+ *
348
+ * These warnings include all the warnings generated by `GgufInsights`, but are more comprehensive.
349
+ */
350
+ getWarnings() {
351
+ this._ensureNotDisposed();
352
+ const warnings = this._fileInsights.getWarnings(this._modelPath);
353
+ const modelFilePathText = `("${getReadablePath(this._modelPath)}")`;
354
+ try {
355
+ const beforeTextNoSpecialTokens = "some test text here";
356
+ const afterTextNoSpecialTokens = this.detokenize(this.tokenize(beforeTextNoSpecialTokens, false, "trimLeadingSpace"), false);
357
+ if (beforeTextNoSpecialTokens !== afterTextNoSpecialTokens)
358
+ warnings.push(`Using this model ${modelFilePathText} to tokenize text and then detokenize it resulted in a different text. ` +
359
+ "There might be an issue with the model or the tokenizer implementation. " +
360
+ "Using this model may not work as intended");
361
+ }
362
+ catch (err) {
363
+ // do nothing
364
+ }
365
+ try {
366
+ if (this._defaultContextFlashAttentionOptionEnabled && !this._flashAttentionSupported) {
367
+ if (this.fileInfo.metadata?.general?.architecture === GgufArchitectureType.grok)
368
+ warnings.push("Flash attention is incompatible with Grok and thus was turned off");
369
+ else if (this.fileInfo.metadata?.general?.architecture === GgufArchitectureType.gemma2)
370
+ warnings.push("Flash attention is incompatible with Gemma2 and thus was turned off");
371
+ else {
372
+ const nHead = this.fileInfo.architectureMetadata?.attention?.head_count ?? 0;
373
+ const nEmbd = this.fileInfo.architectureMetadata?.embedding_length ?? 0;
374
+ const nEmbdHeadK = this.fileInfo.architectureMetadata?.attention?.key_length ?? ((nHead == 0) ? 0 : (nEmbd / nHead));
375
+ const nEmbdHeadV = this.fileInfo.architectureMetadata?.attention?.value_length ?? ((nHead == 0) ? 0 : nEmbd / nHead);
376
+ if (nEmbdHeadK !== nEmbdHeadV)
377
+ warnings.push("Flash attention is incompatible with this model and thus was turned off");
378
+ }
379
+ }
380
+ }
381
+ catch (err) {
382
+ // do nothing
383
+ }
384
+ return warnings;
385
+ }
386
+ /** @hidden `ModelTypeDescription` type alias is too long in the documentation */
387
+ get typeDescription() {
388
+ this._ensureNotDisposed();
389
+ if (this._typeDescription == null)
390
+ this._typeDescription = this._model.getModelDescription();
391
+ return this._typeDescription;
392
+ }
393
+ /** The context size the model was trained on */
394
+ get trainContextSize() {
395
+ this._ensureNotDisposed();
396
+ if (this._trainContextSize == null)
397
+ this._trainContextSize = this._model.getTrainContextSize();
398
+ return this._trainContextSize;
399
+ }
400
+ /** The size of an embedding vector the model can produce */
401
+ get embeddingVectorSize() {
402
+ this._ensureNotDisposed();
403
+ if (this._embeddingVectorSize == null)
404
+ this._embeddingVectorSize = this._model.getEmbeddingVectorSize();
405
+ return this._embeddingVectorSize;
406
+ }
407
+ get vocabularyType() {
408
+ this._ensureNotDisposed();
409
+ if (this._vocabularyType == null) {
410
+ const vocabType = this._model.getVocabularyType();
411
+ this._vocabularyType = LlamaVocabularyTypeValues[vocabType];
412
+ if (this._vocabularyType == null) {
413
+ console.warn(getConsoleLogPrefix() + "Unknown vocabulary type:", vocabType);
414
+ this._vocabularyType = LlamaVocabularyType.none;
415
+ }
416
+ }
417
+ return this._vocabularyType;
418
+ }
419
+ /** @internal */
420
+ _ensureNotDisposed() {
421
+ if (this._disposedState.disposed)
422
+ throw new DisposedError();
423
+ }
424
+ /** @internal */
425
+ async _getOrLoadLora(filePath) {
426
+ const resolvedPath = path.resolve(process.cwd(), filePath);
427
+ if (this._loraAdapters.has(resolvedPath))
428
+ return this._loraAdapters.get(resolvedPath);
429
+ return await withLock([this._loraAdapters, "modify"], async () => {
430
+ if (this._loraAdapters.has(resolvedPath))
431
+ return this._loraAdapters.get(resolvedPath);
432
+ const lora = new this._llama._bindings.AddonModelLora(this._model, resolvedPath);
433
+ await this._model.loadLora(lora);
434
+ this._loraAdapters.set(resolvedPath, lora);
435
+ return lora;
436
+ });
437
+ }
438
+ /** @internal */
439
+ static async _create(modelOptions, { _llama }) {
440
+ const { loadSignal, defaultContextFlashAttention, experimentalDefaultContextKvCacheKeyType, experimentalDefaultContextKvCacheValueType } = modelOptions;
441
+ const useMmap = _llama.supportsMmap && (modelOptions.useMmap ?? defaultUseMmap);
442
+ const useDirectIo = modelOptions.useDirectIo ?? defaultUseDirectIo;
443
+ const fileInfo = await readGgufFileInfo(modelOptions.modelPath, {
444
+ sourceType: "filesystem",
445
+ signal: loadSignal
446
+ });
447
+ applyGgufMetadataOverrides(fileInfo, modelOptions.metadataOverrides);
448
+ const ggufInsights = await GgufInsights.from(fileInfo, _llama);
449
+ const flashAttentionSupported = ggufInsights.flashAttentionSupported;
450
+ const resolvedDefaultContextFlashAttention = flashAttentionSupported
451
+ ? (defaultContextFlashAttention ?? defaultContextFlashAttentionEnabled)
452
+ : false;
453
+ const resolvedDefaultContextSwaFullCache = modelOptions.defaultContextSwaFullCache ?? defaultContextSwaFullCache;
454
+ const resolvedDefaultContextKvCacheKeyType = experimentalDefaultContextKvCacheKeyType === "currentQuant"
455
+ ? ggufInsights.dominantTensorType ?? GgmlType.F16
456
+ : resolveGgmlTypeOption(experimentalDefaultContextKvCacheKeyType) ?? GgmlType.F16;
457
+ const resolvedDefaultContextKvCacheValueType = experimentalDefaultContextKvCacheValueType === "currentQuant"
458
+ ? ggufInsights.dominantTensorType ?? GgmlType.F16
459
+ : resolveGgmlTypeOption(experimentalDefaultContextKvCacheValueType) ?? GgmlType.F16;
460
+ const gpuLayers = await ggufInsights.configurationResolver.resolveModelGpuLayers(modelOptions.gpuLayers, {
461
+ ignoreMemorySafetyChecks: modelOptions.ignoreMemorySafetyChecks,
462
+ defaultContextFlashAttention: resolvedDefaultContextFlashAttention,
463
+ defaultContextSwaFullCache: resolvedDefaultContextSwaFullCache,
464
+ defaultContextKvCacheKeyType: resolvedDefaultContextKvCacheKeyType,
465
+ defaultContextKvCacheValueType: resolvedDefaultContextKvCacheValueType,
466
+ useMmap
467
+ });
468
+ const resourceRequirementsEstimation = ggufInsights.estimateModelResourceRequirements({
469
+ gpuLayers: gpuLayers,
470
+ useMmap
471
+ });
472
+ const model = new LlamaModel({ ...modelOptions, gpuLayers, useMmap, useDirectIo }, {
473
+ _fileInfo: fileInfo,
474
+ _fileInsights: ggufInsights,
475
+ _llama,
476
+ _defaultContextFlashAttentionOptionEnabled: defaultContextFlashAttention ?? false,
477
+ _flashAttentionSupported: flashAttentionSupported,
478
+ _defaultContextFlashAttention: resolvedDefaultContextFlashAttention,
479
+ _defaultContextSwaFullCache: resolvedDefaultContextSwaFullCache,
480
+ _defaultContextKvCacheKeyType: resolvedDefaultContextKvCacheKeyType,
481
+ _defaultContextKvCacheValueType: resolvedDefaultContextKvCacheValueType
482
+ });
483
+ const modelCreationVramReservation = modelOptions.ignoreMemorySafetyChecks
484
+ ? null
485
+ : _llama._vramOrchestrator.reserveMemory(resourceRequirementsEstimation.gpuVram);
486
+ const modelCreationRamReservation = modelOptions.ignoreMemorySafetyChecks
487
+ ? null
488
+ : _llama._ramOrchestrator.reserveMemory(resourceRequirementsEstimation.cpuRam);
489
+ const loggedWarnings = new Set();
490
+ function onAbort() {
491
+ model._model.abortActiveModelLoad();
492
+ loadSignal?.removeEventListener("abort", onAbort);
493
+ }
494
+ function logWarnings(warnings) {
495
+ for (const warning of warnings) {
496
+ if (loggedWarnings.has(warning))
497
+ continue;
498
+ _llama._log(LlamaLogLevel.warn, warning);
499
+ loggedWarnings.add(warning);
500
+ }
501
+ }
502
+ if (loadSignal != null) {
503
+ if (loadSignal.aborted)
504
+ throw loadSignal.reason;
505
+ loadSignal.addEventListener("abort", onAbort);
506
+ }
507
+ logWarnings(ggufInsights.getWarnings(modelOptions.modelPath));
508
+ try {
509
+ const modelLoaded = await model._model.init();
510
+ if (loadSignal?.aborted) {
511
+ if (modelLoaded)
512
+ await model._model.dispose();
513
+ throw loadSignal.reason;
514
+ }
515
+ else if (!modelLoaded)
516
+ throw new Error("Failed to load model");
517
+ loadSignal?.removeEventListener("abort", onAbort);
518
+ logWarnings(model.getWarnings());
519
+ return model;
520
+ }
521
+ finally {
522
+ loadSignal?.removeEventListener("abort", onAbort);
523
+ modelCreationVramReservation?.dispose?.();
524
+ modelCreationRamReservation?.dispose?.();
525
+ }
526
+ }
527
+ }
528
+ export class LlamaModelTokens {
529
+ /** @internal */ _model;
530
+ /** @internal */ _disposedState;
531
+ /** @internal */ _infillTokens;
532
+ /** @internal */ _bosToken;
533
+ /** @internal */ _eosToken;
534
+ /** @internal */ _eotToken;
535
+ /** @internal */ _sepToken;
536
+ /** @internal */ _nlToken;
537
+ /** @internal */ _bosString;
538
+ /** @internal */ _eosString;
539
+ /** @internal */ _eotString;
540
+ /** @internal */ _sepString;
541
+ /** @internal */ _nlString;
542
+ /** @internal */ _shouldPrependBosToken;
543
+ /** @internal */ _shouldAppendEosToken;
544
+ constructor(model, disposedState) {
545
+ this._model = model;
546
+ this._disposedState = disposedState;
547
+ }
548
+ /**
549
+ * @returns infill tokens
550
+ */
551
+ get infill() {
552
+ this._ensureNotDisposed();
553
+ if (this._infillTokens == null)
554
+ this._infillTokens = LlamaModelInfillTokens._create(this._model, this._disposedState);
555
+ return this._infillTokens;
556
+ }
557
+ /**
558
+ * @returns The BOS (Beginning Of Sequence) token.
559
+ */
560
+ get bos() {
561
+ this._ensureNotDisposed();
562
+ if (this._bosToken == null)
563
+ this._bosToken = this._model.tokenBos();
564
+ if (this._bosToken === -1)
565
+ return null;
566
+ return this._bosToken;
567
+ }
568
+ /**
569
+ * @returns The EOS (End Of Sequence) token.
570
+ */
571
+ get eos() {
572
+ this._ensureNotDisposed();
573
+ if (this._eosToken == null)
574
+ this._eosToken = this._model.tokenEos();
575
+ if (this._eosToken === -1)
576
+ return null;
577
+ return this._eosToken;
578
+ }
579
+ /**
580
+ * @returns The EOT (End Of Turn) token.
581
+ */
582
+ get eot() {
583
+ this._ensureNotDisposed();
584
+ if (this._eotToken == null)
585
+ this._eotToken = this._model.eotToken();
586
+ if (this._eotToken === -1)
587
+ return null;
588
+ return this._eotToken;
589
+ }
590
+ /**
591
+ * @returns The SEP (Sentence Separator) token.
592
+ */
593
+ get sep() {
594
+ this._ensureNotDisposed();
595
+ if (this._sepToken == null)
596
+ this._sepToken = this._model.sepToken();
597
+ if (this._sepToken === -1)
598
+ return null;
599
+ return this._sepToken;
600
+ }
601
+ /**
602
+ * @returns The NL (New Line) token.
603
+ */
604
+ get nl() {
605
+ this._ensureNotDisposed();
606
+ if (this._nlToken == null)
607
+ this._nlToken = this._model.tokenNl();
608
+ if (this._nlToken === -1)
609
+ return null;
610
+ return this._nlToken;
611
+ }
612
+ /**
613
+ * @returns The BOS (Beginning Of Sequence) token text representation.
614
+ */
615
+ get bosString() {
616
+ this._ensureNotDisposed();
617
+ const bosToken = this.bos;
618
+ if (bosToken == null)
619
+ return null;
620
+ if (this._bosString == null)
621
+ this._bosString = this._model.getTokenString(bosToken);
622
+ return this._bosString;
623
+ }
624
+ /**
625
+ * @returns The EOS (End Of Sequence) token text representation.
626
+ */
627
+ get eosString() {
628
+ this._ensureNotDisposed();
629
+ const eosToken = this.eos;
630
+ if (eosToken == null)
631
+ return null;
632
+ if (this._eosString == null)
633
+ this._eosString = this._model.getTokenString(eosToken);
634
+ return this._eosString;
635
+ }
636
+ /**
637
+ * @returns The EOT (End Of Turn) token text representation.
638
+ */
639
+ get eotString() {
640
+ this._ensureNotDisposed();
641
+ const eotToken = this.eot;
642
+ if (eotToken == null)
643
+ return null;
644
+ if (this._eotString == null)
645
+ this._eotString = this._model.getTokenString(eotToken);
646
+ return this._eotString;
647
+ }
648
+ /**
649
+ * @returns The SEP (Sentence Separator) token text representation.
650
+ */
651
+ get sepString() {
652
+ this._ensureNotDisposed();
653
+ const sepToken = this.sep;
654
+ if (sepToken == null)
655
+ return null;
656
+ if (this._sepString == null)
657
+ this._sepString = this._model.getTokenString(sepToken);
658
+ return this._sepString;
659
+ }
660
+ /**
661
+ * @returns The NL (New Line) token text representation.
662
+ */
663
+ get nlString() {
664
+ this._ensureNotDisposed();
665
+ const nlToken = this.nl;
666
+ if (nlToken == null)
667
+ return null;
668
+ if (this._nlString == null)
669
+ this._nlString = this._model.getTokenString(nlToken);
670
+ return this._nlString;
671
+ }
672
+ /**
673
+ * @returns Whether we should prepend a BOS (Beginning Of Sequence) token for evaluations with this model.
674
+ */
675
+ get shouldPrependBosToken() {
676
+ this._ensureNotDisposed();
677
+ if (this._shouldPrependBosToken == null)
678
+ this._shouldPrependBosToken = this.bos != null && this._model.shouldPrependBosToken();
679
+ return this._shouldPrependBosToken;
680
+ }
681
+ /**
682
+ * @returns Whether we should append an EOS (End Of Sequence) token for evaluations with this model.
683
+ */
684
+ get shouldAppendEosToken() {
685
+ this._ensureNotDisposed();
686
+ if (this._shouldAppendEosToken == null)
687
+ this._shouldAppendEosToken = this.bos != null && this._model.shouldAppendEosToken();
688
+ return this._shouldAppendEosToken;
689
+ }
690
+ /** @internal */
691
+ _ensureNotDisposed() {
692
+ if (this._disposedState.disposed)
693
+ throw new DisposedError();
694
+ }
695
+ /** @internal */
696
+ static _create(model, disposedState) {
697
+ return new LlamaModelTokens(model, disposedState);
698
+ }
699
+ }
700
+ export class LlamaModelInfillTokens {
701
+ /** @internal */ _model;
702
+ /** @internal */ _disposedState;
703
+ /** @internal */ _prefixToken;
704
+ /** @internal */ _middleToken;
705
+ /** @internal */ _suffixToken;
706
+ /** @internal */ _prefixString;
707
+ /** @internal */ _middleString;
708
+ /** @internal */ _suffixString;
709
+ constructor(model, disposedState) {
710
+ this._model = model;
711
+ this._disposedState = disposedState;
712
+ }
713
+ /**
714
+ * @returns The beginning of infill prefix token.
715
+ */
716
+ get prefix() {
717
+ this._ensureNotDisposed();
718
+ if (this._prefixToken == null)
719
+ this._prefixToken = this._resolveSpecialToken(this._model.prefixToken(), ["<fim_prefix>"]);
720
+ if (this._prefixToken === -1)
721
+ return null;
722
+ return this._prefixToken;
723
+ }
724
+ /**
725
+ * @returns The beginning of infill middle token.
726
+ */
727
+ get middle() {
728
+ this._ensureNotDisposed();
729
+ if (this._middleToken == null)
730
+ this._middleToken = this._resolveSpecialToken(this._model.middleToken(), ["<fim_middle>"]);
731
+ if (this._middleToken === -1)
732
+ return null;
733
+ return this._middleToken;
734
+ }
735
+ /**
736
+ * @returns The beginning of infill suffix token.
737
+ */
738
+ get suffix() {
739
+ this._ensureNotDisposed();
740
+ if (this._suffixToken == null)
741
+ this._suffixToken = this._resolveSpecialToken(this._model.suffixToken(), ["<fim_suffix>"]);
742
+ if (this._suffixToken === -1)
743
+ return null;
744
+ return this._suffixToken;
745
+ }
746
+ /**
747
+ * @returns The beginning of infill prefix token as a string.
748
+ */
749
+ get prefixString() {
750
+ this._ensureNotDisposed();
751
+ const prefixToken = this.prefix;
752
+ if (prefixToken == null)
753
+ return null;
754
+ if (this._prefixString == null)
755
+ this._prefixString = this._model.getTokenString(prefixToken);
756
+ return this._prefixString;
757
+ }
758
+ /**
759
+ * @returns The beginning of infill middle token as a string.
760
+ */
761
+ get middleString() {
762
+ this._ensureNotDisposed();
763
+ const middleToken = this.middle;
764
+ if (middleToken == null)
765
+ return null;
766
+ if (this._middleString == null)
767
+ this._middleString = this._model.getTokenString(middleToken);
768
+ return this._middleString;
769
+ }
770
+ /**
771
+ * @returns The beginning of infill suffix token as a string.
772
+ */
773
+ get suffixString() {
774
+ this._ensureNotDisposed();
775
+ const suffixToken = this.suffix;
776
+ if (suffixToken == null)
777
+ return null;
778
+ if (this._suffixString == null)
779
+ this._suffixString = this._model.getTokenString(suffixToken);
780
+ return this._suffixString;
781
+ }
782
+ /** @internal */
783
+ _ensureNotDisposed() {
784
+ if (this._disposedState.disposed)
785
+ throw new DisposedError();
786
+ }
787
+ /** @internal */
788
+ _resolveSpecialToken(token, fallbackTexts) {
789
+ if (token != null && token !== -1)
790
+ return token;
791
+ for (const text of fallbackTexts) {
792
+ const tokens = this._model.tokenize(text, true);
793
+ if (tokens.length !== 1)
794
+ continue;
795
+ return tokens[0];
796
+ }
797
+ return -1;
798
+ }
799
+ /** @internal */
800
+ static _create(model, disposedState) {
801
+ return new LlamaModelInfillTokens(model, disposedState);
802
+ }
803
+ }
804
+ function applyGgufMetadataOverrides(ggufFileInfo, overrides) {
805
+ function applyOverride(object, override) {
806
+ if (override == null || object == null)
807
+ return;
808
+ if (object instanceof Array || typeof object !== "object" || typeof override !== "object")
809
+ return;
810
+ for (const [key, value] of Object.entries(override)) {
811
+ if (value instanceof Array || typeof value !== "object" || (typeof value === "object" && typeof object[key] !== "object"))
812
+ object[key] = value;
813
+ else
814
+ applyOverride(object[key], value);
815
+ }
816
+ }
817
+ applyOverride(ggufFileInfo.metadata, overrides);
818
+ }
819
+ function ggufMetadataOverridesToList(overrides) {
820
+ const maxStringLength = 127;
821
+ const maxKeyLength = 127;
822
+ const res = [];
823
+ function addItem(object, path) {
824
+ if (object == null || object instanceof Array)
825
+ return;
826
+ if (typeof object !== "object") {
827
+ if (typeof object === "string" && object.length > maxStringLength)
828
+ throw new Error(`Metadata key "${path.join(".")}" override string value (${JSON.stringify(object)}) is longer than ${maxStringLength} characters`);
829
+ const key = path.join(".");
830
+ if (key.length > maxKeyLength)
831
+ throw new Error(`Metadata key "${key}" override path is longer than ${maxKeyLength} characters`);
832
+ let type = undefined;
833
+ if (typeof object === "number") {
834
+ if (typeof object === "bigint" || Number.isInteger(object))
835
+ type = 0;
836
+ else
837
+ type = 1;
838
+ }
839
+ res.push([key, object, type]);
840
+ return;
841
+ }
842
+ for (const [key, value] of Object.entries(object))
843
+ addItem(value, [...path, key]);
844
+ }
845
+ addItem(overrides ?? {}, []);
846
+ return res;
847
+ }
848
+ function disposeModelIfReferenced(modelRef) {
849
+ const model = modelRef.deref();
850
+ if (model != null)
851
+ void model.dispose();
852
+ }
853
+ //# sourceMappingURL=LlamaModel.js.map