node-llama-cpp 3.0.0-beta.3 → 3.0.0-beta.30

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 (690) hide show
  1. package/README.md +14 -11
  2. package/bins/linux-arm64/_nlcBuildMetadata.json +1 -0
  3. package/bins/linux-arm64/llama-addon.node +0 -0
  4. package/bins/linux-armv7l/_nlcBuildMetadata.json +1 -0
  5. package/bins/linux-armv7l/llama-addon.node +0 -0
  6. package/bins/linux-x64/_nlcBuildMetadata.json +1 -0
  7. package/bins/linux-x64/llama-addon.node +0 -0
  8. package/bins/linux-x64-cuda/_nlcBuildMetadata.json +1 -0
  9. package/bins/linux-x64-cuda/llama-addon.node +0 -0
  10. package/bins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -0
  11. package/bins/linux-x64-vulkan/llama-addon.node +0 -0
  12. package/bins/mac-arm64-metal/_nlcBuildMetadata.json +1 -0
  13. package/bins/mac-arm64-metal/default.metallib +0 -0
  14. package/bins/mac-arm64-metal/llama-addon.node +0 -0
  15. package/bins/mac-x64/_nlcBuildMetadata.json +1 -0
  16. package/bins/mac-x64/llama-addon.node +0 -0
  17. package/bins/win-arm64/_nlcBuildMetadata.json +1 -0
  18. package/bins/win-arm64/llama-addon.exp +0 -0
  19. package/bins/win-arm64/llama-addon.lib +0 -0
  20. package/bins/win-arm64/llama-addon.node +0 -0
  21. package/bins/win-x64/_nlcBuildMetadata.json +1 -0
  22. package/bins/win-x64/llama-addon.exp +0 -0
  23. package/bins/win-x64/llama-addon.lib +0 -0
  24. package/bins/win-x64/llama-addon.node +0 -0
  25. package/bins/win-x64-cuda/_nlcBuildMetadata.json +1 -0
  26. package/bins/win-x64-cuda/llama-addon.exp +0 -0
  27. package/bins/win-x64-cuda/llama-addon.lib +0 -0
  28. package/bins/win-x64-cuda/llama-addon.node +0 -0
  29. package/bins/win-x64-vulkan/_nlcBuildMetadata.json +1 -0
  30. package/bins/win-x64-vulkan/llama-addon.exp +0 -0
  31. package/bins/win-x64-vulkan/llama-addon.lib +0 -0
  32. package/bins/win-x64-vulkan/llama-addon.node +0 -0
  33. package/dist/ChatWrapper.d.ts +8 -39
  34. package/dist/ChatWrapper.js +115 -72
  35. package/dist/ChatWrapper.js.map +1 -1
  36. package/dist/apiDocsIndex.d.ts +1 -0
  37. package/dist/apiDocsIndex.js +7 -0
  38. package/dist/apiDocsIndex.js.map +1 -0
  39. package/dist/{utils/getBin.d.ts → bindings/AddonTypes.d.ts} +54 -8
  40. package/dist/bindings/AddonTypes.js +2 -0
  41. package/dist/bindings/AddonTypes.js.map +1 -0
  42. package/dist/bindings/Llama.d.ts +47 -0
  43. package/dist/bindings/Llama.js +353 -0
  44. package/dist/bindings/Llama.js.map +1 -0
  45. package/dist/bindings/consts.d.ts +2 -0
  46. package/dist/bindings/consts.js +11 -0
  47. package/dist/bindings/consts.js.map +1 -0
  48. package/dist/bindings/getLlama.d.ts +148 -0
  49. package/dist/bindings/getLlama.js +401 -0
  50. package/dist/bindings/getLlama.js.map +1 -0
  51. package/dist/bindings/types.d.ts +56 -0
  52. package/dist/bindings/types.js +77 -0
  53. package/dist/bindings/types.js.map +1 -0
  54. package/dist/bindings/utils/MemoryOrchestrator.d.ts +21 -0
  55. package/dist/bindings/utils/MemoryOrchestrator.js +49 -0
  56. package/dist/bindings/utils/MemoryOrchestrator.js.map +1 -0
  57. package/dist/bindings/utils/NoBinaryFoundError.d.ts +2 -0
  58. package/dist/bindings/utils/NoBinaryFoundError.js +7 -0
  59. package/dist/bindings/utils/NoBinaryFoundError.js.map +1 -0
  60. package/dist/bindings/utils/asyncEvery.d.ts +5 -0
  61. package/dist/bindings/utils/asyncEvery.js +15 -0
  62. package/dist/bindings/utils/asyncEvery.js.map +1 -0
  63. package/dist/bindings/utils/asyncSome.d.ts +5 -0
  64. package/dist/bindings/utils/asyncSome.js +27 -0
  65. package/dist/bindings/utils/asyncSome.js.map +1 -0
  66. package/dist/{utils → bindings/utils}/binariesGithubRelease.js +1 -1
  67. package/dist/bindings/utils/binariesGithubRelease.js.map +1 -0
  68. package/dist/bindings/utils/clearAllLocalBuilds.d.ts +1 -0
  69. package/dist/bindings/utils/clearAllLocalBuilds.js +47 -0
  70. package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -0
  71. package/dist/bindings/utils/cloneLlamaCppRepo.d.ts +11 -0
  72. package/dist/bindings/utils/cloneLlamaCppRepo.js +166 -0
  73. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -0
  74. package/dist/bindings/utils/compileLLamaCpp.d.ts +17 -0
  75. package/dist/bindings/utils/compileLLamaCpp.js +226 -0
  76. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -0
  77. package/dist/bindings/utils/detectAvailableComputeLayers.d.ts +14 -0
  78. package/dist/bindings/utils/detectAvailableComputeLayers.js +305 -0
  79. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -0
  80. package/dist/bindings/utils/detectGlibc.d.ts +4 -0
  81. package/dist/bindings/utils/detectGlibc.js +46 -0
  82. package/dist/bindings/utils/detectGlibc.js.map +1 -0
  83. package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +10 -0
  84. package/dist/bindings/utils/getBestComputeLayersAvailable.js +29 -0
  85. package/dist/bindings/utils/getBestComputeLayersAvailable.js.map +1 -0
  86. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.d.ts +5 -0
  87. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js +93 -0
  88. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -0
  89. package/dist/bindings/utils/getCanUsePrebuiltBinaries.d.ts +1 -0
  90. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js +8 -0
  91. package/dist/bindings/utils/getCanUsePrebuiltBinaries.js.map +1 -0
  92. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.d.ts +2 -0
  93. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js +21 -0
  94. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js.map +1 -0
  95. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +12 -0
  96. package/dist/bindings/utils/getGpuTypesToUseForOption.js +30 -0
  97. package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -0
  98. package/dist/bindings/utils/getLinuxDistroInfo.d.ts +9 -0
  99. package/dist/bindings/utils/getLinuxDistroInfo.js +46 -0
  100. package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -0
  101. package/dist/bindings/utils/getLlamaWithoutBackend.d.ts +5 -0
  102. package/dist/bindings/utils/getLlamaWithoutBackend.js +27 -0
  103. package/dist/bindings/utils/getLlamaWithoutBackend.js.map +1 -0
  104. package/dist/bindings/utils/getPlatform.d.ts +2 -0
  105. package/dist/bindings/utils/getPlatform.js +15 -0
  106. package/dist/bindings/utils/getPlatform.js.map +1 -0
  107. package/dist/bindings/utils/getPlatformInfo.d.ts +5 -0
  108. package/dist/bindings/utils/getPlatformInfo.js +28 -0
  109. package/dist/bindings/utils/getPlatformInfo.js.map +1 -0
  110. package/dist/bindings/utils/hasBuildingFromSourceDependenciesInstalled.d.ts +3 -0
  111. package/dist/bindings/utils/hasBuildingFromSourceDependenciesInstalled.js +27 -0
  112. package/dist/bindings/utils/hasBuildingFromSourceDependenciesInstalled.js.map +1 -0
  113. package/dist/bindings/utils/hasFileInPath.d.ts +2 -0
  114. package/dist/bindings/utils/hasFileInPath.js +34 -0
  115. package/dist/bindings/utils/hasFileInPath.js.map +1 -0
  116. package/dist/bindings/utils/lastBuildInfo.d.ts +6 -0
  117. package/dist/bindings/utils/lastBuildInfo.js +17 -0
  118. package/dist/bindings/utils/lastBuildInfo.js.map +1 -0
  119. package/dist/bindings/utils/logBinaryUsageExampleToConsole.d.ts +2 -0
  120. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js +22 -0
  121. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -0
  122. package/dist/bindings/utils/logDistroInstallInstruction.d.ts +14 -0
  123. package/dist/bindings/utils/logDistroInstallInstruction.js +48 -0
  124. package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -0
  125. package/dist/bindings/utils/resolveCustomCmakeOptions.d.ts +1 -0
  126. package/dist/bindings/utils/resolveCustomCmakeOptions.js +47 -0
  127. package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -0
  128. package/dist/bindings/utils/testBindingBinary.d.ts +1 -0
  129. package/dist/bindings/utils/testBindingBinary.js +100 -0
  130. package/dist/bindings/utils/testBindingBinary.js.map +1 -0
  131. package/dist/bindings/utils/testCmakeBinary.d.ts +6 -0
  132. package/dist/bindings/utils/testCmakeBinary.js +32 -0
  133. package/dist/bindings/utils/testCmakeBinary.js.map +1 -0
  134. package/dist/chatWrappers/AlpacaChatWrapper.d.ts +2 -1
  135. package/dist/chatWrappers/AlpacaChatWrapper.js +9 -2
  136. package/dist/chatWrappers/AlpacaChatWrapper.js.map +1 -1
  137. package/dist/chatWrappers/ChatMLChatWrapper.d.ts +2 -9
  138. package/dist/chatWrappers/ChatMLChatWrapper.js +23 -21
  139. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
  140. package/dist/chatWrappers/FalconChatWrapper.d.ts +4 -10
  141. package/dist/chatWrappers/FalconChatWrapper.js +38 -21
  142. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -1
  143. package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +8 -32
  144. package/dist/chatWrappers/FunctionaryChatWrapper.js +323 -118
  145. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
  146. package/dist/chatWrappers/GemmaChatWrapper.d.ts +7 -0
  147. package/dist/chatWrappers/GemmaChatWrapper.js +96 -0
  148. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -0
  149. package/dist/chatWrappers/GeneralChatWrapper.d.ts +4 -10
  150. package/dist/chatWrappers/GeneralChatWrapper.js +45 -22
  151. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -1
  152. package/dist/chatWrappers/Llama2ChatWrapper.d.ts +12 -0
  153. package/dist/chatWrappers/{LlamaChatWrapper.js → Llama2ChatWrapper.js} +38 -20
  154. package/dist/chatWrappers/Llama2ChatWrapper.js.map +1 -0
  155. package/dist/chatWrappers/Llama3ChatWrapper.d.ts +16 -0
  156. package/dist/chatWrappers/Llama3ChatWrapper.js +174 -0
  157. package/dist/chatWrappers/Llama3ChatWrapper.js.map +1 -0
  158. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +67 -0
  159. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +371 -0
  160. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -0
  161. package/dist/chatWrappers/generic/TemplateChatWrapper.d.ts +54 -0
  162. package/dist/chatWrappers/generic/TemplateChatWrapper.js +200 -0
  163. package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -0
  164. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.d.ts +23 -0
  165. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js +45 -0
  166. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js.map +1 -0
  167. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +42 -0
  168. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +82 -0
  169. package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -0
  170. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.d.ts +4 -0
  171. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +210 -0
  172. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -0
  173. package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +69 -0
  174. package/dist/chatWrappers/utils/resolveChatWrapper.js +243 -0
  175. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -0
  176. package/dist/cli/cli.js +21 -7
  177. package/dist/cli/cli.js.map +1 -1
  178. package/dist/cli/commands/BuildCommand.d.ts +11 -4
  179. package/dist/cli/commands/BuildCommand.js +114 -41
  180. package/dist/cli/commands/BuildCommand.js.map +1 -1
  181. package/dist/cli/commands/ChatCommand.d.ts +18 -6
  182. package/dist/cli/commands/ChatCommand.js +299 -143
  183. package/dist/cli/commands/ChatCommand.js.map +1 -1
  184. package/dist/cli/commands/ClearCommand.d.ts +1 -1
  185. package/dist/cli/commands/ClearCommand.js +11 -12
  186. package/dist/cli/commands/ClearCommand.js.map +1 -1
  187. package/dist/cli/commands/CompleteCommand.d.ts +29 -0
  188. package/dist/cli/commands/CompleteCommand.js +365 -0
  189. package/dist/cli/commands/CompleteCommand.js.map +1 -0
  190. package/dist/cli/commands/DebugCommand.d.ts +7 -0
  191. package/dist/cli/commands/DebugCommand.js +54 -0
  192. package/dist/cli/commands/DebugCommand.js.map +1 -0
  193. package/dist/cli/commands/DownloadCommand.d.ts +7 -4
  194. package/dist/cli/commands/DownloadCommand.js +121 -70
  195. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  196. package/dist/cli/commands/InfillCommand.d.ts +31 -0
  197. package/dist/cli/commands/InfillCommand.js +401 -0
  198. package/dist/cli/commands/InfillCommand.js.map +1 -0
  199. package/dist/cli/commands/InitCommand.d.ts +11 -0
  200. package/dist/cli/commands/InitCommand.js +195 -0
  201. package/dist/cli/commands/InitCommand.js.map +1 -0
  202. package/dist/cli/commands/OnPostInstallCommand.js +9 -10
  203. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
  204. package/dist/cli/commands/PullCommand.d.ts +12 -0
  205. package/dist/cli/commands/PullCommand.js +117 -0
  206. package/dist/cli/commands/PullCommand.js.map +1 -0
  207. package/dist/cli/commands/inspect/InspectCommand.d.ts +4 -0
  208. package/dist/cli/commands/inspect/InspectCommand.js +19 -0
  209. package/dist/cli/commands/inspect/InspectCommand.js.map +1 -0
  210. package/dist/cli/commands/inspect/commands/InspectGgufCommand.d.ts +12 -0
  211. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +136 -0
  212. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -0
  213. package/dist/cli/commands/inspect/commands/InspectGpuCommand.d.ts +4 -0
  214. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +164 -0
  215. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -0
  216. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.d.ts +17 -0
  217. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js +613 -0
  218. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -0
  219. package/dist/cli/projectTemplates.d.ts +7 -0
  220. package/dist/cli/projectTemplates.js +10 -0
  221. package/dist/cli/projectTemplates.js.map +1 -0
  222. package/dist/cli/recommendedModels.d.ts +2 -0
  223. package/dist/cli/recommendedModels.js +363 -0
  224. package/dist/cli/recommendedModels.js.map +1 -0
  225. package/dist/cli/startCreateCli.d.ts +2 -0
  226. package/dist/cli/startCreateCli.js +26 -0
  227. package/dist/cli/startCreateCli.js.map +1 -0
  228. package/dist/cli/utils/ConsoleInteraction.d.ts +23 -0
  229. package/dist/cli/utils/ConsoleInteraction.js +122 -0
  230. package/dist/cli/utils/ConsoleInteraction.js.map +1 -0
  231. package/dist/cli/utils/ConsoleTable.d.ts +23 -0
  232. package/dist/cli/utils/ConsoleTable.js +86 -0
  233. package/dist/cli/utils/ConsoleTable.js.map +1 -0
  234. package/dist/cli/utils/basicChooseFromListConsoleInteraction.d.ts +13 -0
  235. package/dist/cli/utils/basicChooseFromListConsoleInteraction.js +111 -0
  236. package/dist/cli/utils/basicChooseFromListConsoleInteraction.js.map +1 -0
  237. package/dist/cli/utils/consolePromptQuestion.d.ts +6 -0
  238. package/dist/cli/utils/consolePromptQuestion.js +82 -0
  239. package/dist/cli/utils/consolePromptQuestion.js.map +1 -0
  240. package/dist/cli/utils/getReadablePath.d.ts +1 -0
  241. package/dist/cli/utils/getReadablePath.js +14 -0
  242. package/dist/cli/utils/getReadablePath.js.map +1 -0
  243. package/dist/cli/utils/interactivelyAskForModel.d.ts +7 -0
  244. package/dist/cli/utils/interactivelyAskForModel.js +451 -0
  245. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -0
  246. package/dist/cli/utils/logUsedGpuTypeOption.d.ts +2 -0
  247. package/dist/cli/utils/logUsedGpuTypeOption.js +9 -0
  248. package/dist/cli/utils/logUsedGpuTypeOption.js.map +1 -0
  249. package/dist/cli/utils/printCommonInfoLines.d.ts +9 -0
  250. package/dist/cli/utils/printCommonInfoLines.js +75 -0
  251. package/dist/cli/utils/printCommonInfoLines.js.map +1 -0
  252. package/dist/cli/utils/printInfoLine.d.ts +12 -0
  253. package/dist/cli/utils/printInfoLine.js +54 -0
  254. package/dist/cli/utils/printInfoLine.js.map +1 -0
  255. package/dist/cli/utils/projectTemplates.d.ts +19 -0
  256. package/dist/cli/utils/projectTemplates.js +47 -0
  257. package/dist/cli/utils/projectTemplates.js.map +1 -0
  258. package/dist/cli/utils/resolveCommandGgufPath.d.ts +4 -0
  259. package/dist/cli/utils/resolveCommandGgufPath.js +71 -0
  260. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -0
  261. package/dist/cli/utils/resolveHeaderFlag.d.ts +1 -0
  262. package/dist/cli/utils/resolveHeaderFlag.js +21 -0
  263. package/dist/cli/utils/resolveHeaderFlag.js.map +1 -0
  264. package/dist/cli/utils/resolveModelRecommendationFileOptions.d.ts +19 -0
  265. package/dist/cli/utils/resolveModelRecommendationFileOptions.js +7 -0
  266. package/dist/cli/utils/resolveModelRecommendationFileOptions.js.map +1 -0
  267. package/dist/cli/utils/splitAnsiToLines.d.ts +1 -0
  268. package/dist/cli/utils/splitAnsiToLines.js +32 -0
  269. package/dist/cli/utils/splitAnsiToLines.js.map +1 -0
  270. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.d.ts +2 -0
  271. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.js +23 -0
  272. package/dist/cli/utils/withCliCommandDescriptionDocsUrl.js.map +1 -0
  273. package/dist/commands.d.ts +1 -0
  274. package/dist/commands.js +3 -0
  275. package/dist/commands.js.map +1 -1
  276. package/dist/config.d.ts +38 -5
  277. package/dist/config.js +61 -16
  278. package/dist/config.js.map +1 -1
  279. package/dist/consts.d.ts +3 -0
  280. package/dist/consts.js +10 -0
  281. package/dist/consts.js.map +1 -0
  282. package/dist/{llamaEvaluator → evaluator}/LlamaChat/LlamaChat.d.ts +112 -39
  283. package/dist/evaluator/LlamaChat/LlamaChat.js +1512 -0
  284. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -0
  285. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.d.ts +11 -0
  286. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.js +55 -0
  287. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.js.map +1 -0
  288. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.d.ts +16 -0
  289. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js +45 -0
  290. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js.map +1 -0
  291. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.d.ts +8 -0
  292. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.js +12 -0
  293. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.js.map +1 -0
  294. package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +42 -16
  295. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -0
  296. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +288 -0
  297. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +419 -0
  298. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -0
  299. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.d.ts +39 -0
  300. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +186 -0
  301. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -0
  302. package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/utils/defineChatSessionFunction.d.ts +3 -0
  303. package/dist/{llamaEvaluator → evaluator}/LlamaChatSession/utils/defineChatSessionFunction.js +3 -0
  304. package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -0
  305. package/dist/evaluator/LlamaCompletion.d.ts +143 -0
  306. package/dist/evaluator/LlamaCompletion.js +418 -0
  307. package/dist/evaluator/LlamaCompletion.js.map +1 -0
  308. package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.d.ts +41 -21
  309. package/dist/{llamaEvaluator → evaluator}/LlamaContext/LlamaContext.js +270 -81
  310. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -0
  311. package/dist/evaluator/LlamaContext/types.d.ts +140 -0
  312. package/dist/evaluator/LlamaContext/types.js.map +1 -0
  313. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js.map +1 -0
  314. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -0
  315. package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.d.ts +2 -0
  316. package/dist/{llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js → evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js} +4 -4
  317. package/dist/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.js.map +1 -0
  318. package/dist/evaluator/LlamaEmbeddingContext.d.ts +51 -0
  319. package/dist/evaluator/LlamaEmbeddingContext.js +73 -0
  320. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -0
  321. package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.d.ts +10 -7
  322. package/dist/{llamaEvaluator → evaluator}/LlamaGrammar.js +14 -11
  323. package/dist/evaluator/LlamaGrammar.js.map +1 -0
  324. package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.js +4 -4
  325. package/dist/evaluator/LlamaGrammarEvaluationState.js.map +1 -0
  326. package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.d.ts +2 -1
  327. package/dist/{llamaEvaluator → evaluator}/LlamaJsonSchemaGrammar.js +3 -3
  328. package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -0
  329. package/dist/evaluator/LlamaModel/LlamaModel.d.ts +236 -0
  330. package/dist/evaluator/LlamaModel/LlamaModel.js +679 -0
  331. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -0
  332. package/dist/evaluator/LlamaModel/utils/TokenAttributes.d.ts +29 -0
  333. package/dist/evaluator/LlamaModel/utils/TokenAttributes.js +65 -0
  334. package/dist/evaluator/LlamaModel/utils/TokenAttributes.js.map +1 -0
  335. package/dist/evaluator/TokenBias.d.ts +22 -0
  336. package/dist/evaluator/TokenBias.js +33 -0
  337. package/dist/evaluator/TokenBias.js.map +1 -0
  338. package/dist/evaluator/TokenMeter.d.ts +54 -0
  339. package/dist/evaluator/TokenMeter.js +86 -0
  340. package/dist/evaluator/TokenMeter.js.map +1 -0
  341. package/dist/gguf/consts.d.ts +3 -0
  342. package/dist/gguf/consts.js +8 -0
  343. package/dist/gguf/consts.js.map +1 -0
  344. package/dist/gguf/errors/InvalidGgufMagicError.d.ts +3 -0
  345. package/dist/gguf/errors/InvalidGgufMagicError.js +6 -0
  346. package/dist/gguf/errors/InvalidGgufMagicError.js.map +1 -0
  347. package/dist/gguf/errors/UnsupportedGgufValueTypeError.d.ts +4 -0
  348. package/dist/gguf/errors/UnsupportedGgufValueTypeError.js +9 -0
  349. package/dist/gguf/errors/UnsupportedGgufValueTypeError.js.map +1 -0
  350. package/dist/gguf/fileReaders/GgufFileReader.d.ts +33 -0
  351. package/dist/gguf/fileReaders/GgufFileReader.js +76 -0
  352. package/dist/gguf/fileReaders/GgufFileReader.js.map +1 -0
  353. package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +17 -0
  354. package/dist/gguf/fileReaders/GgufFsFileReader.js +46 -0
  355. package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -0
  356. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +22 -0
  357. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +63 -0
  358. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -0
  359. package/dist/gguf/insights/GgufInsights.d.ts +48 -0
  360. package/dist/gguf/insights/GgufInsights.js +381 -0
  361. package/dist/gguf/insights/GgufInsights.js.map +1 -0
  362. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +87 -0
  363. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +141 -0
  364. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -0
  365. package/dist/gguf/insights/utils/resolveContextContextSizeOption.d.ts +18 -0
  366. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js +76 -0
  367. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -0
  368. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.d.ts +14 -0
  369. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js +177 -0
  370. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -0
  371. package/dist/gguf/insights/utils/scoreLevels.d.ts +5 -0
  372. package/dist/gguf/insights/utils/scoreLevels.js +16 -0
  373. package/dist/gguf/insights/utils/scoreLevels.js.map +1 -0
  374. package/dist/gguf/parser/GgufV2Parser.d.ts +19 -0
  375. package/dist/gguf/parser/GgufV2Parser.js +115 -0
  376. package/dist/gguf/parser/GgufV2Parser.js.map +1 -0
  377. package/dist/gguf/parser/GgufV3Parser.d.ts +3 -0
  378. package/dist/gguf/parser/GgufV3Parser.js +4 -0
  379. package/dist/gguf/parser/GgufV3Parser.js.map +1 -0
  380. package/dist/gguf/parser/parseGguf.d.ts +8 -0
  381. package/dist/gguf/parser/parseGguf.js +63 -0
  382. package/dist/gguf/parser/parseGguf.js.map +1 -0
  383. package/dist/gguf/readGgufFileInfo.d.ts +33 -0
  384. package/dist/gguf/readGgufFileInfo.js +66 -0
  385. package/dist/gguf/readGgufFileInfo.js.map +1 -0
  386. package/dist/gguf/types/GgufFileInfoTypes.d.ts +84 -0
  387. package/dist/gguf/types/GgufFileInfoTypes.js +18 -0
  388. package/dist/gguf/types/GgufFileInfoTypes.js.map +1 -0
  389. package/dist/gguf/types/GgufMetadataTypes.d.ts +335 -0
  390. package/dist/gguf/types/GgufMetadataTypes.js +86 -0
  391. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -0
  392. package/dist/gguf/types/GgufTensorInfoTypes.d.ts +37 -0
  393. package/dist/gguf/types/GgufTensorInfoTypes.js +33 -0
  394. package/dist/gguf/types/GgufTensorInfoTypes.js.map +1 -0
  395. package/dist/gguf/utils/GgufReadOffset.d.ts +6 -0
  396. package/dist/gguf/utils/GgufReadOffset.js +18 -0
  397. package/dist/gguf/utils/GgufReadOffset.js.map +1 -0
  398. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.d.ts +5 -0
  399. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js +38 -0
  400. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js.map +1 -0
  401. package/dist/gguf/utils/getGgufFileTypeName.d.ts +4 -0
  402. package/dist/gguf/utils/getGgufFileTypeName.js +13 -0
  403. package/dist/gguf/utils/getGgufFileTypeName.js.map +1 -0
  404. package/dist/gguf/utils/getGgufMetadataArchitectureData.d.ts +3 -0
  405. package/dist/gguf/utils/getGgufMetadataArchitectureData.js +4 -0
  406. package/dist/gguf/utils/getGgufMetadataArchitectureData.js.map +1 -0
  407. package/dist/gguf/utils/normalizeGgufDownloadUrl.d.ts +1 -0
  408. package/dist/gguf/utils/normalizeGgufDownloadUrl.js +16 -0
  409. package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -0
  410. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.d.ts +2 -0
  411. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js +39 -0
  412. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js.map +1 -0
  413. package/dist/gguf/utils/resolveSplitGgufParts.d.ts +7 -0
  414. package/dist/gguf/utils/resolveSplitGgufParts.js +55 -0
  415. package/dist/gguf/utils/resolveSplitGgufParts.js.map +1 -0
  416. package/dist/index.d.ts +41 -18
  417. package/dist/index.js +36 -15
  418. package/dist/index.js.map +1 -1
  419. package/dist/state.d.ts +4 -0
  420. package/dist/state.js +14 -0
  421. package/dist/state.js.map +1 -1
  422. package/dist/types.d.ts +116 -5
  423. package/dist/types.js.map +1 -1
  424. package/dist/utils/DisposeGuard.d.ts +13 -0
  425. package/dist/utils/DisposeGuard.js +120 -0
  426. package/dist/utils/DisposeGuard.js.map +1 -0
  427. package/dist/utils/InsufficientMemoryError.d.ts +3 -0
  428. package/dist/utils/InsufficientMemoryError.js +6 -0
  429. package/dist/utils/InsufficientMemoryError.js.map +1 -0
  430. package/dist/utils/LlamaText.d.ts +70 -26
  431. package/dist/utils/LlamaText.js +469 -157
  432. package/dist/utils/LlamaText.js.map +1 -1
  433. package/dist/utils/LruCache.d.ts +12 -0
  434. package/dist/utils/LruCache.js +44 -0
  435. package/dist/utils/LruCache.js.map +1 -0
  436. package/dist/utils/ReplHistory.js.map +1 -1
  437. package/dist/utils/StopGenerationDetector.d.ts +25 -9
  438. package/dist/utils/StopGenerationDetector.js +93 -22
  439. package/dist/utils/StopGenerationDetector.js.map +1 -1
  440. package/dist/utils/TokenStreamRegulator.d.ts +9 -4
  441. package/dist/utils/TokenStreamRegulator.js +81 -8
  442. package/dist/utils/TokenStreamRegulator.js.map +1 -1
  443. package/dist/utils/UnsupportedError.d.ts +2 -0
  444. package/dist/utils/UnsupportedError.js +7 -0
  445. package/dist/utils/UnsupportedError.js.map +1 -0
  446. package/dist/utils/appendUserMessageToChatHistory.js.map +1 -1
  447. package/dist/utils/clearTempFolder.js.map +1 -1
  448. package/dist/utils/cmake.js +38 -20
  449. package/dist/utils/cmake.js.map +1 -1
  450. package/dist/utils/createModelDownloader.d.ts +108 -0
  451. package/dist/utils/createModelDownloader.js +231 -0
  452. package/dist/utils/createModelDownloader.js.map +1 -0
  453. package/dist/utils/findBestOption.d.ts +4 -0
  454. package/dist/utils/findBestOption.js +15 -0
  455. package/dist/utils/findBestOption.js.map +1 -0
  456. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +1 -0
  457. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +23 -12
  458. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -1
  459. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  460. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.d.ts +5 -0
  461. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js +11 -0
  462. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -0
  463. package/dist/utils/gbnfJson/terminals/GbnfArray.d.ts +3 -1
  464. package/dist/utils/gbnfJson/terminals/GbnfArray.js +10 -5
  465. package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -1
  466. package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +1 -1
  467. package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -1
  468. package/dist/utils/gbnfJson/terminals/GbnfBooleanValue.js.map +1 -1
  469. package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
  470. package/dist/utils/gbnfJson/terminals/GbnfNull.d.ts +1 -1
  471. package/dist/utils/gbnfJson/terminals/GbnfNull.js.map +1 -1
  472. package/dist/utils/gbnfJson/terminals/GbnfNumber.d.ts +1 -1
  473. package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -1
  474. package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
  475. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.d.ts +3 -1
  476. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js +9 -4
  477. package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -1
  478. package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
  479. package/dist/utils/gbnfJson/terminals/GbnfRepetition.d.ts +9 -0
  480. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js +37 -0
  481. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js.map +1 -0
  482. package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +1 -1
  483. package/dist/utils/gbnfJson/terminals/GbnfString.js +23 -5
  484. package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -1
  485. package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -1
  486. package/dist/utils/gbnfJson/terminals/GbnfVerbatimText.js.map +1 -1
  487. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +7 -4
  488. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js +37 -9
  489. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -1
  490. package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +5 -4
  491. package/dist/utils/gbnfJson/terminals/gbnfConsts.js +14 -3
  492. package/dist/utils/gbnfJson/terminals/gbnfConsts.js.map +1 -1
  493. package/dist/utils/gbnfJson/types.d.ts +3 -0
  494. package/dist/utils/gbnfJson/types.js.map +1 -1
  495. package/dist/utils/gbnfJson/utils/GbnfJsonScopeState.d.ts +10 -0
  496. package/dist/utils/gbnfJson/utils/GbnfJsonScopeState.js +15 -0
  497. package/dist/utils/gbnfJson/utils/GbnfJsonScopeState.js.map +1 -0
  498. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.d.ts +2 -1
  499. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +6 -5
  500. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
  501. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +2 -2
  502. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  503. package/dist/utils/getBuildDefaults.d.ts +1 -2
  504. package/dist/utils/getBuildDefaults.js +2 -3
  505. package/dist/utils/getBuildDefaults.js.map +1 -1
  506. package/dist/utils/getConsoleLogPrefix.d.ts +1 -0
  507. package/dist/utils/getConsoleLogPrefix.js +10 -0
  508. package/dist/utils/getConsoleLogPrefix.js.map +1 -0
  509. package/dist/utils/getGrammarsFolder.d.ts +2 -1
  510. package/dist/utils/getGrammarsFolder.js +8 -7
  511. package/dist/utils/getGrammarsFolder.js.map +1 -1
  512. package/dist/utils/getModuleVersion.d.ts +1 -0
  513. package/dist/utils/getModuleVersion.js +13 -0
  514. package/dist/utils/getModuleVersion.js.map +1 -0
  515. package/dist/utils/getQueuedTokensBeforeStopTrigger.d.ts +6 -0
  516. package/dist/utils/getQueuedTokensBeforeStopTrigger.js +22 -0
  517. package/dist/utils/getQueuedTokensBeforeStopTrigger.js.map +1 -0
  518. package/dist/utils/getReadableContextSize.d.ts +1 -0
  519. package/dist/utils/getReadableContextSize.js +7 -0
  520. package/dist/utils/getReadableContextSize.js.map +1 -0
  521. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +15 -11
  522. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
  523. package/dist/utils/gitReleaseBundles.js +73 -5
  524. package/dist/utils/gitReleaseBundles.js.map +1 -1
  525. package/dist/utils/hashString.d.ts +1 -0
  526. package/dist/utils/hashString.js +8 -0
  527. package/dist/utils/hashString.js.map +1 -0
  528. package/dist/utils/isLockfileActive.d.ts +4 -0
  529. package/dist/utils/isLockfileActive.js +12 -0
  530. package/dist/utils/isLockfileActive.js.map +1 -0
  531. package/dist/utils/isToken.d.ts +2 -0
  532. package/dist/utils/isToken.js +4 -0
  533. package/dist/utils/isToken.js.map +1 -0
  534. package/dist/utils/isUrl.d.ts +1 -0
  535. package/dist/utils/isUrl.js +15 -0
  536. package/dist/utils/isUrl.js.map +1 -0
  537. package/dist/utils/mergeUnionTypes.d.ts +10 -0
  538. package/dist/utils/mergeUnionTypes.js +2 -0
  539. package/dist/utils/mergeUnionTypes.js.map +1 -0
  540. package/dist/utils/parseModelFileName.d.ts +1 -0
  541. package/dist/utils/parseModelFileName.js +6 -1
  542. package/dist/utils/parseModelFileName.js.map +1 -1
  543. package/dist/utils/parseTextTemplate.d.ts +66 -0
  544. package/dist/utils/parseTextTemplate.js +116 -0
  545. package/dist/utils/parseTextTemplate.js.map +1 -0
  546. package/dist/utils/prettyPrintObject.d.ts +10 -0
  547. package/dist/utils/prettyPrintObject.js +84 -0
  548. package/dist/utils/prettyPrintObject.js.map +1 -0
  549. package/dist/utils/removeNullFields.d.ts +2 -1
  550. package/dist/utils/removeNullFields.js +8 -0
  551. package/dist/utils/removeNullFields.js.map +1 -1
  552. package/dist/utils/resolveGithubRelease.d.ts +2 -0
  553. package/dist/utils/resolveGithubRelease.js +36 -0
  554. package/dist/utils/resolveGithubRelease.js.map +1 -0
  555. package/dist/utils/runtime.d.ts +4 -0
  556. package/dist/utils/runtime.js +8 -0
  557. package/dist/utils/runtime.js.map +1 -0
  558. package/dist/utils/safeEventCallback.d.ts +6 -0
  559. package/dist/utils/safeEventCallback.js +29 -0
  560. package/dist/utils/safeEventCallback.js.map +1 -0
  561. package/dist/utils/spawnCommand.d.ts +11 -1
  562. package/dist/utils/spawnCommand.js +56 -6
  563. package/dist/utils/spawnCommand.js.map +1 -1
  564. package/dist/utils/tokenizeInput.d.ts +3 -0
  565. package/dist/utils/tokenizeInput.js +12 -0
  566. package/dist/utils/tokenizeInput.js.map +1 -0
  567. package/dist/utils/truncateTextAndRoundToWords.d.ts +2 -0
  568. package/dist/utils/truncateTextAndRoundToWords.js +30 -0
  569. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -1
  570. package/dist/utils/utilTypes.d.ts +3 -0
  571. package/dist/utils/utilTypes.js +2 -0
  572. package/dist/utils/utilTypes.js.map +1 -0
  573. package/dist/utils/waitForLockfileRelease.d.ts +5 -0
  574. package/dist/utils/waitForLockfileRelease.js +20 -0
  575. package/dist/utils/waitForLockfileRelease.js.map +1 -0
  576. package/dist/utils/withLockfile.d.ts +7 -0
  577. package/dist/utils/withLockfile.js +44 -0
  578. package/dist/utils/withLockfile.js.map +1 -0
  579. package/dist/utils/withOra.d.ts +2 -0
  580. package/dist/utils/withOra.js +22 -6
  581. package/dist/utils/withOra.js.map +1 -1
  582. package/dist/utils/withProgressLog.d.ts +23 -0
  583. package/dist/utils/withProgressLog.js +211 -0
  584. package/dist/utils/withProgressLog.js.map +1 -0
  585. package/dist/utils/withStatusLogs.d.ts +2 -1
  586. package/dist/utils/withStatusLogs.js +12 -9
  587. package/dist/utils/withStatusLogs.js.map +1 -1
  588. package/dist/utils/wrapAbortSignal.d.ts +2 -0
  589. package/dist/utils/wrapAbortSignal.js +9 -0
  590. package/dist/utils/wrapAbortSignal.js.map +1 -0
  591. package/llama/.clang-format +1 -2
  592. package/llama/CMakeLists.txt +115 -4
  593. package/llama/addon.cpp +1300 -97
  594. package/llama/binariesGithubRelease.json +1 -1
  595. package/llama/gitRelease.bundle +0 -0
  596. package/llama/gpuInfo/cuda-gpu-info.cu +120 -0
  597. package/llama/gpuInfo/cuda-gpu-info.h +10 -0
  598. package/llama/gpuInfo/metal-gpu-info.h +8 -0
  599. package/llama/gpuInfo/metal-gpu-info.mm +30 -0
  600. package/llama/gpuInfo/vulkan-gpu-info.cpp +83 -0
  601. package/llama/gpuInfo/vulkan-gpu-info.h +9 -0
  602. package/llama/grammars/README.md +58 -5
  603. package/llama/grammars/json.gbnf +4 -4
  604. package/llama/grammars/json_arr.gbnf +4 -4
  605. package/llama/llama.cpp.info.json +4 -0
  606. package/llama/toolchains/win32.host-x64.target-arm64.cmake +41 -0
  607. package/package.json +78 -53
  608. package/templates/packed/electron-typescript-react.json +1 -0
  609. package/templates/packed/node-typescript.json +1 -0
  610. package/dist/AbortError.d.ts +0 -2
  611. package/dist/AbortError.js +0 -7
  612. package/dist/AbortError.js.map +0 -1
  613. package/dist/chatWrappers/LlamaChatWrapper.d.ts +0 -13
  614. package/dist/chatWrappers/LlamaChatWrapper.js.map +0 -1
  615. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.d.ts +0 -13
  616. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js +0 -57
  617. package/dist/chatWrappers/resolveChatWrapperBasedOnModel.js.map +0 -1
  618. package/dist/llamaEvaluator/LlamaBins.d.ts +0 -18
  619. package/dist/llamaEvaluator/LlamaBins.js +0 -5
  620. package/dist/llamaEvaluator/LlamaBins.js.map +0 -1
  621. package/dist/llamaEvaluator/LlamaChat/LlamaChat.js +0 -704
  622. package/dist/llamaEvaluator/LlamaChat/LlamaChat.js.map +0 -1
  623. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.d.ts +0 -21
  624. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js +0 -120
  625. package/dist/llamaEvaluator/LlamaChat/utils/FunctionCallGrammar.js.map +0 -1
  626. package/dist/llamaEvaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +0 -1
  627. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.d.ts +0 -146
  628. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js +0 -211
  629. package/dist/llamaEvaluator/LlamaChatSession/LlamaChatSession.js.map +0 -1
  630. package/dist/llamaEvaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +0 -1
  631. package/dist/llamaEvaluator/LlamaContext/LlamaContext.js.map +0 -1
  632. package/dist/llamaEvaluator/LlamaContext/types.d.ts +0 -82
  633. package/dist/llamaEvaluator/LlamaContext/types.js.map +0 -1
  634. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/firstInFirstOutStrategy.js.map +0 -1
  635. package/dist/llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies/maximumParallelismStrategy.js.map +0 -1
  636. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.d.ts +0 -2
  637. package/dist/llamaEvaluator/LlamaContext/utils/resolveBatchItemsPrioritizingStrategy.js.map +0 -1
  638. package/dist/llamaEvaluator/LlamaEmbeddingContext.d.ts +0 -35
  639. package/dist/llamaEvaluator/LlamaEmbeddingContext.js +0 -73
  640. package/dist/llamaEvaluator/LlamaEmbeddingContext.js.map +0 -1
  641. package/dist/llamaEvaluator/LlamaGrammar.js.map +0 -1
  642. package/dist/llamaEvaluator/LlamaGrammarEvaluationState.js.map +0 -1
  643. package/dist/llamaEvaluator/LlamaJsonSchemaGrammar.js.map +0 -1
  644. package/dist/llamaEvaluator/LlamaModel.d.ts +0 -119
  645. package/dist/llamaEvaluator/LlamaModel.js +0 -322
  646. package/dist/llamaEvaluator/LlamaModel.js.map +0 -1
  647. package/dist/utils/binariesGithubRelease.js.map +0 -1
  648. package/dist/utils/clearLlamaBuild.d.ts +0 -1
  649. package/dist/utils/clearLlamaBuild.js +0 -12
  650. package/dist/utils/clearLlamaBuild.js.map +0 -1
  651. package/dist/utils/cloneLlamaCppRepo.d.ts +0 -2
  652. package/dist/utils/cloneLlamaCppRepo.js +0 -102
  653. package/dist/utils/cloneLlamaCppRepo.js.map +0 -1
  654. package/dist/utils/compileLLamaCpp.d.ts +0 -8
  655. package/dist/utils/compileLLamaCpp.js +0 -132
  656. package/dist/utils/compileLLamaCpp.js.map +0 -1
  657. package/dist/utils/getBin.js +0 -78
  658. package/dist/utils/getBin.js.map +0 -1
  659. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.d.ts +0 -2
  660. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js +0 -9
  661. package/dist/utils/getGbnfGrammarForGbnfJsonSchema.js.map +0 -1
  662. package/dist/utils/getReleaseInfo.d.ts +0 -7
  663. package/dist/utils/getReleaseInfo.js +0 -30
  664. package/dist/utils/getReleaseInfo.js.map +0 -1
  665. package/dist/utils/parseModelTypeDescription.d.ts +0 -6
  666. package/dist/utils/parseModelTypeDescription.js +0 -9
  667. package/dist/utils/parseModelTypeDescription.js.map +0 -1
  668. package/dist/utils/resolveChatWrapper.d.ts +0 -4
  669. package/dist/utils/resolveChatWrapper.js +0 -16
  670. package/dist/utils/resolveChatWrapper.js.map +0 -1
  671. package/dist/utils/usedBinFlag.d.ts +0 -6
  672. package/dist/utils/usedBinFlag.js +0 -15
  673. package/dist/utils/usedBinFlag.js.map +0 -1
  674. package/llama/usedBin.json +0 -3
  675. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  676. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  677. package/llamaBins/linux-x64/llama-addon.node +0 -0
  678. package/llamaBins/mac-arm64/llama-addon.node +0 -0
  679. package/llamaBins/mac-x64/llama-addon.node +0 -0
  680. package/llamaBins/win-x64/llama-addon.exp +0 -0
  681. package/llamaBins/win-x64/llama-addon.lib +0 -0
  682. package/llamaBins/win-x64/llama-addon.node +0 -0
  683. /package/dist/{utils → bindings/utils}/binariesGithubRelease.d.ts +0 -0
  684. /package/dist/{llamaEvaluator → evaluator}/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.d.ts +0 -0
  685. /package/dist/{llamaEvaluator → evaluator}/LlamaContext/types.js +0 -0
  686. /package/dist/{llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies → evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies}/firstInFirstOutStrategy.d.ts +0 -0
  687. /package/dist/{llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies → evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies}/firstInFirstOutStrategy.js +0 -0
  688. /package/dist/{llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies → evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies}/maximumParallelismStrategy.d.ts +0 -0
  689. /package/dist/{llamaEvaluator/LlamaContext/utils/batchItemsPrioritizingStrategies → evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies}/maximumParallelismStrategy.js +0 -0
  690. /package/dist/{llamaEvaluator → evaluator}/LlamaGrammarEvaluationState.d.ts +0 -0
@@ -1,19 +1,329 @@
1
- export const LlamaText = function LlamaText(strings, ...values) {
2
- return createLlamaText(createHistoryFromStringsAndValues(strings, values));
3
- };
4
- LlamaText.fromJSON = function fromJSON(json) {
5
- return createLlamaText(json.map((value) => {
6
- if (typeof value === "string")
7
- return value;
8
- else if (SpecialToken.isSpecialTokenJSON(value))
9
- return SpecialToken.fromJSON(value);
10
- else {
11
- void (value);
12
- throw new Error(`Unknown value type: ${value}`);
1
+ class LlamaText {
2
+ values;
3
+ /**
4
+ * Can also be called without `new`
5
+ */
6
+ constructor(...values) {
7
+ // the constructor logic is copied to `LlamaTextConstructor` to make the constructor callable as a normal function
8
+ this.values = createHistoryFromStringsAndValues(values);
9
+ }
10
+ concat(value) {
11
+ return new LlamaTextConstructor([...this.values, value]);
12
+ }
13
+ mapValues(mapper) {
14
+ return new LlamaTextConstructor(this.values.map(mapper));
15
+ }
16
+ /**
17
+ * Joins the values with the given separator.
18
+ *
19
+ * Note that the values are squashed when they are loaded into the `LlamaText`, so the separator is not added between adjacent strings.
20
+ *
21
+ * To add the separator on values before squashing them, use `LlamaText.joinValues` instead.
22
+ */
23
+ joinValues(separator) {
24
+ const newValues = [];
25
+ for (let i = 0; i < this.values.length; i++) {
26
+ newValues.push(this.values[i]);
27
+ if (i !== this.values.length - 1) {
28
+ if (isLlamaText(separator))
29
+ newValues.push(...separator.values);
30
+ else
31
+ newValues.push(separator);
32
+ }
13
33
  }
14
- }));
34
+ return new LlamaTextConstructor(newValues);
35
+ }
36
+ toString() {
37
+ return this.values
38
+ .map((value) => {
39
+ if (value instanceof SpecialToken)
40
+ return value.toString();
41
+ else if (value instanceof SpecialTokensText)
42
+ return value.toString();
43
+ else
44
+ return value;
45
+ })
46
+ .join("");
47
+ }
48
+ toJSON() {
49
+ if (this.values.length === 1 && typeof this.values[0] === "string")
50
+ return this.values[0];
51
+ else if (this.values.length === 0)
52
+ return "";
53
+ return this.values.map((value) => {
54
+ if (value instanceof SpecialToken)
55
+ return value.toJSON();
56
+ else if (value instanceof SpecialTokensText)
57
+ return value.toJSON();
58
+ else
59
+ return value;
60
+ });
61
+ }
62
+ tokenize(tokenizer, options) {
63
+ let textToTokenize = "";
64
+ const res = [];
65
+ const hasContent = () => (res.length > 0 || textToTokenize.length > 0);
66
+ const resolveTokenizerOptions = () => (hasContent() ? "trimLeadingSpace" : options);
67
+ for (const value of this.values) {
68
+ if (value instanceof SpecialToken) {
69
+ res.push(...tokenizer(textToTokenize, false, resolveTokenizerOptions()), ...value.tokenize(tokenizer));
70
+ textToTokenize = "";
71
+ }
72
+ else if (value instanceof SpecialTokensText) {
73
+ res.push(...tokenizer(textToTokenize, false, resolveTokenizerOptions()), ...value.tokenize(tokenizer, hasContent() || options === "trimLeadingSpace"));
74
+ textToTokenize = "";
75
+ }
76
+ else
77
+ textToTokenize += value;
78
+ }
79
+ res.push(...tokenizer(textToTokenize, false, resolveTokenizerOptions()));
80
+ return res;
81
+ }
82
+ compare(other) {
83
+ return LlamaTextConstructor.compare(this, other);
84
+ }
85
+ trimStart() {
86
+ const newValues = this.values.slice();
87
+ while (newValues.length > 0) {
88
+ const firstValue = newValues[0];
89
+ if (firstValue instanceof SpecialToken)
90
+ break;
91
+ if (firstValue instanceof SpecialTokensText) {
92
+ const newValue = firstValue.value.trimStart();
93
+ if (newValue === "") {
94
+ newValues.shift();
95
+ continue;
96
+ }
97
+ else if (newValue !== firstValue.value) {
98
+ newValues[0] = new SpecialTokensText(newValue);
99
+ break;
100
+ }
101
+ break;
102
+ }
103
+ else if (typeof firstValue === "string") {
104
+ const newValue = firstValue.trimStart();
105
+ if (newValue === "") {
106
+ newValues.shift();
107
+ continue;
108
+ }
109
+ else if (newValue !== firstValue) {
110
+ newValues[0] = newValue;
111
+ break;
112
+ }
113
+ break;
114
+ }
115
+ else
116
+ void (firstValue);
117
+ }
118
+ return new LlamaTextConstructor(newValues);
119
+ }
120
+ trimEnd() {
121
+ const newValues = this.values.slice();
122
+ while (newValues.length > 0) {
123
+ const lastValue = newValues[newValues.length - 1];
124
+ if (lastValue instanceof SpecialToken)
125
+ break;
126
+ if (lastValue instanceof SpecialTokensText) {
127
+ const newValue = lastValue.value.trimEnd();
128
+ if (newValue === "") {
129
+ newValues.pop();
130
+ continue;
131
+ }
132
+ else if (newValue !== lastValue.value) {
133
+ newValues[newValues.length - 1] = new SpecialTokensText(newValue);
134
+ break;
135
+ }
136
+ break;
137
+ }
138
+ else if (typeof lastValue === "string") {
139
+ const newValue = lastValue.trimEnd();
140
+ if (newValue === "") {
141
+ newValues.pop();
142
+ continue;
143
+ }
144
+ else if (newValue !== lastValue) {
145
+ newValues[newValues.length - 1] = newValue;
146
+ break;
147
+ }
148
+ break;
149
+ }
150
+ else
151
+ void (lastValue);
152
+ }
153
+ return new LlamaTextConstructor(newValues);
154
+ }
155
+ includes(value) {
156
+ for (let i = 0; i <= this.values.length - value.values.length; i++) {
157
+ const thisValue = this.values[i];
158
+ let startMatch = compareLlamaTextValues(thisValue, value.values[0]);
159
+ if (!startMatch && thisValue instanceof SpecialTokensText && value.values[0] instanceof SpecialTokensText) {
160
+ startMatch = value.values.length > 1
161
+ ? thisValue.value.endsWith(value.values[0].value)
162
+ : thisValue.value.includes(value.values[0].value);
163
+ }
164
+ if (!startMatch && typeof thisValue === "string" && typeof value.values[0] === "string") {
165
+ startMatch = value.values.length > 1
166
+ ? thisValue.endsWith(value.values[0])
167
+ : thisValue.includes(value.values[0]);
168
+ }
169
+ if (startMatch) {
170
+ let j = 1;
171
+ for (; j < value.values.length; j++) {
172
+ const thisValue = this.values[i + j];
173
+ const valueValue = value.values[j];
174
+ let endMatch = compareLlamaTextValues(thisValue, valueValue);
175
+ if (!endMatch && thisValue instanceof SpecialTokensText && valueValue instanceof SpecialTokensText) {
176
+ endMatch = value.values.length - 1 === j
177
+ ? thisValue.value.startsWith(valueValue.value)
178
+ : thisValue.value === valueValue.value;
179
+ }
180
+ if (!endMatch && typeof thisValue === "string" && typeof valueValue === "string") {
181
+ endMatch = value.values.length - 1 === j
182
+ ? thisValue.startsWith(valueValue)
183
+ : thisValue === valueValue;
184
+ }
185
+ if (!endMatch)
186
+ break;
187
+ }
188
+ if (j === value.values.length)
189
+ return true;
190
+ }
191
+ }
192
+ return false;
193
+ }
194
+ /** @internal */
195
+ [Symbol.for("nodejs.util.inspect.custom")](depth, inspectOptions, inspect) {
196
+ const inspectFunction = inspect ?? inspectOptions?.inspect;
197
+ if (inspectFunction == null)
198
+ return JSON.stringify(this.toJSON(), undefined, 4);
199
+ return "LlamaText(" + inspectFunction(this.values, {
200
+ ...(inspectOptions ?? {}),
201
+ depth: depth == null
202
+ ? undefined
203
+ : Math.max(0, depth - 1)
204
+ }) + ")";
205
+ }
206
+ static fromJSON(json) {
207
+ // assigned to `LlamaTextConstructor` manually to expose this static method
208
+ if (typeof json === "string")
209
+ return new LlamaTextConstructor(json);
210
+ return new LlamaTextConstructor(json.map((value) => {
211
+ if (typeof value === "string")
212
+ return value;
213
+ else if (SpecialToken.isSpecialTokenJSON(value))
214
+ return SpecialToken.fromJSON(value);
215
+ else if (SpecialTokensText.isSpecialTokensTextJSON(value))
216
+ return SpecialTokensText.fromJSON(value);
217
+ else {
218
+ void (value);
219
+ throw new Error(`Unknown value type: ${value}`);
220
+ }
221
+ }));
222
+ }
223
+ static compare(a, b) {
224
+ // assigned to `LlamaTextConstructor` manually to expose this static method
225
+ if (!isLlamaText(a) || !isLlamaText(b))
226
+ return false;
227
+ if (a.values.length !== b.values.length)
228
+ return false;
229
+ for (let i = 0; i < a.values.length; i++) {
230
+ if (!compareLlamaTextValues(a.values[i], b.values[i]))
231
+ return false;
232
+ }
233
+ return true;
234
+ }
235
+ /**
236
+ * Attempt to convert tokens to a `LlamaText` while preserving special tokens.
237
+ *
238
+ * Non-standard special tokens that don't have a text representation are ignored.
239
+ */
240
+ static fromTokens(tokenizer, tokens) {
241
+ // assigned to `LlamaTextConstructor` manually to expose this static method
242
+ const res = [];
243
+ const pendingTokens = [];
244
+ const addPendingTokens = () => {
245
+ if (pendingTokens.length === 0)
246
+ return;
247
+ res.push(tokenizer.detokenize(pendingTokens, false));
248
+ pendingTokens.length = 0;
249
+ };
250
+ const builtinTokens = SpecialToken.getTokenToValueMap(tokenizer);
251
+ for (const token of tokens) {
252
+ if (token == null)
253
+ continue;
254
+ const builtinTokenValue = builtinTokens.get(token);
255
+ if (builtinTokenValue != null) {
256
+ addPendingTokens();
257
+ res.push(new SpecialToken(builtinTokenValue));
258
+ continue;
259
+ }
260
+ const regularText = tokenizer.detokenize([token], false);
261
+ const retokenizedRegularText = tokenizer(regularText, false, "trimLeadingSpace");
262
+ if (retokenizedRegularText.length === 1 && retokenizedRegularText[0] === token) {
263
+ pendingTokens.push(token);
264
+ continue;
265
+ }
266
+ const specialText = tokenizer.detokenize([token], true);
267
+ const retokenizedSpecialText = tokenizer(specialText, true, "trimLeadingSpace");
268
+ if (retokenizedSpecialText.length === 1 && retokenizedSpecialText[0] === token) {
269
+ addPendingTokens();
270
+ res.push(new SpecialTokensText(specialText));
271
+ continue;
272
+ }
273
+ pendingTokens.push(token);
274
+ }
275
+ addPendingTokens();
276
+ return new LlamaTextConstructor(res);
277
+ }
278
+ /**
279
+ * Join values with the given separator before squashing adjacent strings inside the values
280
+ */
281
+ static joinValues(separator, values) {
282
+ // assigned to `LlamaTextConstructor` manually to expose this static method
283
+ const newValues = [];
284
+ for (let i = 0; i < values.length; i++) {
285
+ const value = values[i];
286
+ if (i !== 0)
287
+ newValues.push(separator);
288
+ newValues.push(value);
289
+ }
290
+ return new LlamaTextConstructor(newValues);
291
+ }
292
+ static isLlamaText(value) {
293
+ // assigned to `LlamaTextConstructor` manually to expose this static method
294
+ if (value instanceof LlamaTextConstructor || value instanceof LlamaText)
295
+ return true;
296
+ try {
297
+ // detect a `LlamaText` created from a different module import
298
+ return value != null && Object.getPrototypeOf(value)?._type === "LlamaText";
299
+ }
300
+ catch (err) {
301
+ return false;
302
+ }
303
+ }
304
+ }
305
+ Object.defineProperty(LlamaText.prototype, "_type", {
306
+ enumerable: false,
307
+ configurable: false,
308
+ value: "LlamaText"
309
+ });
310
+ const LlamaTextConstructor = function LlamaText(...values) {
311
+ // this makes the constructor callable also as a normal function
312
+ if (new.target == null)
313
+ return new LlamaTextConstructor(...values);
314
+ this.values = createHistoryFromStringsAndValues(values);
315
+ return this;
15
316
  };
16
- export class SpecialToken {
317
+ LlamaTextConstructor.prototype = Object.create(LlamaText.prototype);
318
+ LlamaTextConstructor.prototype.constructor = LlamaTextConstructor;
319
+ LlamaTextConstructor.fromJSON = LlamaText.fromJSON;
320
+ LlamaTextConstructor.compare = LlamaText.compare;
321
+ LlamaTextConstructor.fromTokens = LlamaText.fromTokens;
322
+ LlamaTextConstructor.joinValues = LlamaText.joinValues;
323
+ LlamaTextConstructor.isLlamaText = LlamaText.isLlamaText;
324
+ const _LlamaText = LlamaTextConstructor;
325
+ export { _LlamaText as LlamaText, LlamaText as _LlamaText };
326
+ export class SpecialTokensText {
17
327
  value;
18
328
  constructor(value) {
19
329
  this.value = value;
@@ -21,44 +331,114 @@ export class SpecialToken {
21
331
  toString() {
22
332
  return this.value;
23
333
  }
24
- tokenize(tokenizer) {
25
- return tokenizer(this.value, true);
334
+ tokenize(tokenizer, trimLeadingSpace = false) {
335
+ return tokenizer(this.value, true, trimLeadingSpace ? "trimLeadingSpace" : undefined);
336
+ }
337
+ tokenizeSpecialTokensOnly(tokenizer) {
338
+ const tokens = this.tokenize(tokenizer, true);
339
+ const res = [];
340
+ let currentText = "";
341
+ for (const token of tokens) {
342
+ if (tokenizer.isSpecialToken(token)) {
343
+ if (currentText !== "") {
344
+ res.push(currentText);
345
+ currentText = "";
346
+ }
347
+ res.push(token);
348
+ }
349
+ else {
350
+ currentText += tokenizer.detokenize([token], false);
351
+ }
352
+ }
353
+ if (currentText !== "")
354
+ res.push(currentText);
355
+ return res;
26
356
  }
27
357
  toJSON() {
28
358
  return {
29
- type: "specialToken",
359
+ type: "specialTokensText",
30
360
  value: this.value
31
361
  };
32
362
  }
363
+ /** @internal */
364
+ [Symbol.for("nodejs.util.inspect.custom")](depth, inspectOptions, inspect) {
365
+ const inspectFunction = inspect ?? inspectOptions?.inspect;
366
+ if (inspectFunction == null)
367
+ return JSON.stringify(this.toJSON(), undefined, 4);
368
+ return "new SpecialTokensText(" + inspectFunction(this.value, {
369
+ ...(inspectOptions ?? {}),
370
+ depth: depth == null
371
+ ? undefined
372
+ : Math.max(0, depth - 1)
373
+ }) + ")";
374
+ }
33
375
  static fromJSON(json) {
34
- if (json.builtin)
35
- return new BuiltinSpecialToken(json.value);
36
- else
37
- return new SpecialToken(json.value);
376
+ if (SpecialTokensText.isSpecialTokensTextJSON(json))
377
+ return new SpecialTokensText(json.value);
378
+ throw new Error(`Invalid JSON for SpecialTokensText: ${JSON.stringify(json)}`);
38
379
  }
39
- static isSpecialTokenJSON(value) {
40
- return value != null && typeof value === "object" && value.type === "specialToken";
380
+ static isSpecialTokensTextJSON(value) {
381
+ return value != null && typeof value === "object" && value.type === "specialTokensText";
382
+ }
383
+ /**
384
+ * Wraps the value with a `SpecialTokensText` only if `shouldWrap` is true
385
+ */
386
+ static wrapIf(shouldWrap, value) {
387
+ if (shouldWrap)
388
+ return new SpecialTokensText(value);
389
+ else
390
+ return value;
41
391
  }
42
392
  }
43
- export class BuiltinSpecialToken extends SpecialToken {
393
+ export class SpecialToken {
44
394
  value;
45
395
  constructor(value) {
46
- super(value);
47
396
  this.value = value;
48
397
  }
398
+ toString() {
399
+ return this.value;
400
+ }
49
401
  tokenize(tokenizer) {
50
402
  return tokenizer(this.value, "builtin");
51
403
  }
52
404
  toJSON() {
53
405
  return {
54
406
  type: "specialToken",
55
- value: this.value,
56
- builtin: true
407
+ value: this.value
57
408
  };
58
409
  }
410
+ /** @internal */
411
+ [Symbol.for("nodejs.util.inspect.custom")](depth, inspectOptions, inspect) {
412
+ const inspectFunction = inspect ?? inspectOptions?.inspect;
413
+ if (inspectFunction == null)
414
+ return JSON.stringify(this.toJSON(), undefined, 4);
415
+ return "new SpecialToken(" + inspectFunction(this.value, {
416
+ ...(inspectOptions ?? {}),
417
+ depth: depth == null
418
+ ? undefined
419
+ : Math.max(0, depth - 1)
420
+ }) + ")";
421
+ }
422
+ static fromJSON(json) {
423
+ if (SpecialToken.isSpecialTokenJSON(json))
424
+ return new SpecialToken(json.value);
425
+ throw new Error(`Invalid JSON for SpecialToken: ${JSON.stringify(json)}`);
426
+ }
427
+ static isSpecialTokenJSON(value) {
428
+ return value != null && typeof value === "object" && value.type === "specialToken";
429
+ }
430
+ static getTokenToValueMap(tokenizer) {
431
+ const supportedValues = [
432
+ "BOS", "EOS", "NL", "EOT"
433
+ ];
434
+ void (0);
435
+ const res = new Map(supportedValues.map((value) => ([tokenizer(value, "builtin")[0], value])));
436
+ res.delete(undefined);
437
+ return res;
438
+ }
59
439
  }
60
440
  export function isLlamaText(value) {
61
- return typeof value === "function" && "type" in value && value.type === "LlamaText";
441
+ return LlamaText.isLlamaText(value);
62
442
  }
63
443
  export function tokenizeText(text, tokenizer) {
64
444
  if (typeof text === "string")
@@ -66,142 +446,74 @@ export function tokenizeText(text, tokenizer) {
66
446
  else
67
447
  return text.tokenize(tokenizer);
68
448
  }
69
- const LlamaTextPrototypeFunctions = {
70
- mapValues: function mapValues(mapper) {
71
- return createLlamaText(this.values.map(mapper));
72
- },
73
- joinValues(separator) {
74
- const newValues = [];
75
- for (let i = 0; i < this.values.length; i++) {
76
- newValues.push(this.values[i]);
77
- if (i !== this.values.length - 1) {
78
- if (isLlamaText(separator))
79
- newValues.push(...separator.values);
80
- else
81
- newValues.push(separator);
82
- }
449
+ function createHistoryFromStringsAndValues(values) {
450
+ function addItemToRes(res, item) {
451
+ if (item === undefined || item === "" || (item instanceof SpecialTokensText && item.value === ""))
452
+ return res;
453
+ else if (typeof item === "string" || item instanceof SpecialTokensText || item instanceof SpecialToken) {
454
+ res.push(item);
455
+ return res;
83
456
  }
84
- return createLlamaText(newValues);
85
- },
86
- toString() {
87
- return this.values
88
- .map((value) => {
89
- if (value instanceof SpecialToken)
90
- return value.toString();
91
- else
92
- return value;
93
- })
94
- .join("");
95
- },
96
- tokenize(tokenizer) {
97
- let textToTokenize = "";
98
- const res = [];
99
- for (const value of this.values) {
100
- if (value instanceof SpecialToken) {
101
- res.push(...tokenizer(textToTokenize, false), ...value.tokenize(tokenizer));
102
- textToTokenize = "";
457
+ else if (isLlamaText(item)) {
458
+ for (const value of item.values)
459
+ res.push(value);
460
+ return res;
461
+ }
462
+ else if (item instanceof Array) {
463
+ for (const value of item) {
464
+ if (isLlamaText(value)) {
465
+ for (const innerValue of value.values)
466
+ res.push(innerValue);
467
+ }
468
+ else if (value === "" || (value instanceof SpecialTokensText && value.value === ""))
469
+ continue;
470
+ else if (value instanceof Array)
471
+ addItemToRes(res, value);
472
+ else if (typeof value === "number" || typeof value === "boolean")
473
+ res.push(String(value));
474
+ else
475
+ res.push(value);
103
476
  }
104
- else
105
- textToTokenize += value;
477
+ return res;
106
478
  }
107
- res.push(...tokenizer(textToTokenize, false));
108
- return res;
109
- },
110
- toJSON() {
111
- return this.values.map((value) => {
112
- if (value instanceof SpecialToken)
113
- return { type: "specialToken", value: value.value };
114
- else
115
- return value;
116
- });
117
- }
118
- };
119
- function createLlamaText(history) {
120
- const llamaText = function LlamaText(strings, ...values) {
121
- return createLlamaText(llamaText.values.concat(createHistoryFromStringsAndValues(strings, values)));
122
- };
123
- Object.defineProperties(llamaText, {
124
- ["type"]: {
125
- value: "LlamaText",
126
- writable: false,
127
- configurable: false,
128
- enumerable: true
129
- },
130
- ["values"]: {
131
- value: Object.freeze(history.slice()),
132
- writable: false,
133
- configurable: false,
134
- enumerable: true
135
- },
136
- ["mapValues"]: {
137
- value: LlamaTextPrototypeFunctions.mapValues,
138
- writable: false,
139
- configurable: false,
140
- enumerable: false
141
- },
142
- ["joinValues"]: {
143
- value: LlamaTextPrototypeFunctions.joinValues,
144
- writable: false,
145
- configurable: false,
146
- enumerable: false
147
- },
148
- ["toString"]: {
149
- value: LlamaTextPrototypeFunctions.toString,
150
- writable: false,
151
- configurable: false,
152
- enumerable: false
153
- },
154
- ["tokenize"]: {
155
- value: LlamaTextPrototypeFunctions.tokenize,
156
- writable: false,
157
- configurable: false,
158
- enumerable: false
159
- },
160
- ["toJSON"]: {
161
- value: LlamaTextPrototypeFunctions.toJSON,
162
- writable: false,
163
- configurable: false,
164
- enumerable: false
165
- }
166
- });
167
- return llamaText;
168
- }
169
- function createHistoryFromStringsAndValues(strings, values) {
170
- function addItemToRes(res, item) {
171
- if (item === undefined || item === "")
479
+ else if (typeof item === "number" || typeof item === "boolean") {
480
+ res.push(String(item));
172
481
  return res;
173
- else if (typeof item === "string" || item instanceof SpecialToken)
174
- return res.concat([item]);
175
- else if (isLlamaText(item))
176
- return res.concat(item.values);
177
- else if (item instanceof Array) {
178
- return res.concat(item.reduce((res, value) => {
179
- if (isLlamaText(value))
180
- return res.concat(value.values);
181
- else if (value === "")
182
- return res;
183
- return res.concat([value]);
184
- }, []));
185
- }
186
- else if (typeof item === "number" || typeof item === "boolean")
187
- return res.concat([String(item)]);
482
+ }
188
483
  return item;
189
484
  }
190
- if (!isTemplateStringsArray(strings)) {
191
- return [strings]
192
- .concat(values)
193
- .reduce(addItemToRes, []);
194
- }
195
- let res = [];
196
- for (let i = 0; i < strings.length; i++) {
197
- res.push(strings[i]);
198
- if (i < values.length)
199
- res = addItemToRes(res, values[i]);
485
+ function squashAdjacentItems(res, item) {
486
+ if (res.length === 0) {
487
+ res.push(item);
488
+ return res;
489
+ }
490
+ const lastItem = res[res.length - 1];
491
+ if (lastItem instanceof SpecialToken || item instanceof SpecialToken) {
492
+ res.push(item);
493
+ return res;
494
+ }
495
+ if (typeof lastItem === "string" && typeof item === "string") {
496
+ res[res.length - 1] += item;
497
+ return res;
498
+ }
499
+ else if (lastItem instanceof SpecialTokensText && item instanceof SpecialTokensText) {
500
+ res[res.length - 1] = new SpecialTokensText(lastItem.value + item.value);
501
+ return res;
502
+ }
503
+ res.push(item);
504
+ return res;
200
505
  }
201
- return res;
506
+ return values
507
+ .reduce(addItemToRes, [])
508
+ .reduce(squashAdjacentItems, []);
202
509
  }
203
- function isTemplateStringsArray(value) {
204
- return value instanceof Array && value.raw instanceof Array &&
205
- value.length === value.raw.length;
510
+ function compareLlamaTextValues(a, b) {
511
+ if (a instanceof SpecialTokensText && b instanceof SpecialTokensText)
512
+ return a.value === b.value;
513
+ else if (a instanceof SpecialToken && b instanceof SpecialToken)
514
+ return a.value === b.value;
515
+ else if (a !== b)
516
+ return false;
517
+ return true;
206
518
  }
207
519
  //# sourceMappingURL=LlamaText.js.map