node-llama-cpp 3.0.0-beta.21 → 3.0.0-beta.23

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 (277) hide show
  1. package/dist/ChatWrapper.d.ts +8 -26
  2. package/dist/ChatWrapper.js +100 -52
  3. package/dist/ChatWrapper.js.map +1 -1
  4. package/dist/{apiDocsOverrides.js → apiDocsIndex.js} +3 -1
  5. package/dist/apiDocsIndex.js.map +1 -0
  6. package/dist/bindings/AddonTypes.d.ts +1 -1
  7. package/dist/bindings/Llama.d.ts +1 -1
  8. package/dist/bindings/Llama.js +5 -1
  9. package/dist/bindings/Llama.js.map +1 -1
  10. package/dist/bindings/getLlama.js.map +1 -1
  11. package/dist/bindings/types.d.ts +1 -0
  12. package/dist/bindings/utils/asyncEvery.js.map +1 -1
  13. package/dist/bindings/utils/asyncSome.js.map +1 -1
  14. package/dist/bindings/utils/clearAllLocalBuilds.js.map +1 -1
  15. package/dist/bindings/utils/cloneLlamaCppRepo.js.map +1 -1
  16. package/dist/bindings/utils/compileLLamaCpp.d.ts +2 -0
  17. package/dist/bindings/utils/compileLLamaCpp.js +5 -1
  18. package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
  19. package/dist/bindings/utils/detectAvailableComputeLayers.js +2 -1
  20. package/dist/bindings/utils/detectAvailableComputeLayers.js.map +1 -1
  21. package/dist/bindings/utils/detectGlibc.js +3 -3
  22. package/dist/bindings/utils/detectGlibc.js.map +1 -1
  23. package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +1 -0
  24. package/dist/bindings/utils/getBestComputeLayersAvailable.js.map +1 -1
  25. package/dist/bindings/utils/getBuildFolderNameForBuildOptions.js.map +1 -1
  26. package/dist/bindings/utils/getExampleUsageCodeOfGetLlama.js.map +1 -1
  27. package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +1 -0
  28. package/dist/bindings/utils/getGpuTypesToUseForOption.js.map +1 -1
  29. package/dist/bindings/utils/getLinuxDistroInfo.js.map +1 -1
  30. package/dist/bindings/utils/getPlatform.js.map +1 -1
  31. package/dist/bindings/utils/getPlatformInfo.js.map +1 -1
  32. package/dist/bindings/utils/hasBuildingFromSourceDependenciesInstalled.js.map +1 -1
  33. package/dist/bindings/utils/lastBuildInfo.js.map +1 -1
  34. package/dist/bindings/utils/logBinaryUsageExampleToConsole.js.map +1 -1
  35. package/dist/bindings/utils/logDistroInstallInstruction.js.map +1 -1
  36. package/dist/bindings/utils/resolveCustomCmakeOptions.js +2 -0
  37. package/dist/bindings/utils/resolveCustomCmakeOptions.js.map +1 -1
  38. package/dist/bindings/utils/testBindingBinary.js.map +1 -1
  39. package/dist/bindings/utils/testCmakeBinary.d.ts +1 -0
  40. package/dist/chatWrappers/ChatMLChatWrapper.d.ts +2 -14
  41. package/dist/chatWrappers/ChatMLChatWrapper.js +10 -10
  42. package/dist/chatWrappers/ChatMLChatWrapper.js.map +1 -1
  43. package/dist/chatWrappers/FalconChatWrapper.d.ts +2 -9
  44. package/dist/chatWrappers/FalconChatWrapper.js +10 -10
  45. package/dist/chatWrappers/FalconChatWrapper.js.map +1 -1
  46. package/dist/chatWrappers/FunctionaryChatWrapper.d.ts +8 -32
  47. package/dist/chatWrappers/FunctionaryChatWrapper.js +274 -82
  48. package/dist/chatWrappers/FunctionaryChatWrapper.js.map +1 -1
  49. package/dist/chatWrappers/GemmaChatWrapper.d.ts +3 -14
  50. package/dist/chatWrappers/GemmaChatWrapper.js +20 -12
  51. package/dist/chatWrappers/GemmaChatWrapper.js.map +1 -1
  52. package/dist/chatWrappers/GeneralChatWrapper.d.ts +2 -9
  53. package/dist/chatWrappers/GeneralChatWrapper.js +10 -10
  54. package/dist/chatWrappers/GeneralChatWrapper.js.map +1 -1
  55. package/dist/chatWrappers/Llama2ChatWrapper.d.ts +2 -10
  56. package/dist/chatWrappers/Llama2ChatWrapper.js +9 -9
  57. package/dist/chatWrappers/Llama2ChatWrapper.js.map +1 -1
  58. package/dist/chatWrappers/Llama3ChatWrapper.d.ts +10 -25
  59. package/dist/chatWrappers/Llama3ChatWrapper.js +71 -26
  60. package/dist/chatWrappers/Llama3ChatWrapper.js.map +1 -1
  61. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.d.ts +6 -12
  62. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js +25 -13
  63. package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
  64. package/dist/chatWrappers/generic/TemplateChatWrapper.d.ts +14 -24
  65. package/dist/chatWrappers/generic/TemplateChatWrapper.js +21 -21
  66. package/dist/chatWrappers/generic/TemplateChatWrapper.js.map +1 -1
  67. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.d.ts +11 -21
  68. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js +1 -1
  69. package/dist/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.js.map +1 -1
  70. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js +8 -4
  71. package/dist/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.js.map +1 -1
  72. package/dist/chatWrappers/utils/resolveChatWrapper.js +30 -1
  73. package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
  74. package/dist/cli/commands/BuildCommand.d.ts +6 -1
  75. package/dist/cli/commands/BuildCommand.js +14 -3
  76. package/dist/cli/commands/BuildCommand.js.map +1 -1
  77. package/dist/cli/commands/ChatCommand.js +1 -1
  78. package/dist/cli/commands/ChatCommand.js.map +1 -1
  79. package/dist/cli/commands/ClearCommand.js.map +1 -1
  80. package/dist/cli/commands/CompleteCommand.js.map +1 -1
  81. package/dist/cli/commands/DownloadCommand.d.ts +1 -0
  82. package/dist/cli/commands/DownloadCommand.js +1 -1
  83. package/dist/cli/commands/DownloadCommand.js.map +1 -1
  84. package/dist/cli/commands/InfillCommand.js.map +1 -1
  85. package/dist/cli/commands/InitCommand.js.map +1 -1
  86. package/dist/cli/commands/OnPostInstallCommand.js.map +1 -1
  87. package/dist/cli/commands/PullCommand.js.map +1 -1
  88. package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
  89. package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
  90. package/dist/cli/commands/inspect/commands/InspectMeasureCommand.js.map +1 -1
  91. package/dist/cli/recommendedModels.js +48 -27
  92. package/dist/cli/recommendedModels.js.map +1 -1
  93. package/dist/cli/utils/ConsoleInteraction.js.map +1 -1
  94. package/dist/cli/utils/ConsoleTable.js.map +1 -1
  95. package/dist/cli/utils/basicChooseFromListConsoleInteraction.js.map +1 -1
  96. package/dist/cli/utils/consolePromptQuestion.js.map +1 -1
  97. package/dist/cli/utils/getReadablePath.js +1 -1
  98. package/dist/cli/utils/getReadablePath.js.map +1 -1
  99. package/dist/cli/utils/interactivelyAskForModel.js.map +1 -1
  100. package/dist/cli/utils/printCommonInfoLines.js.map +1 -1
  101. package/dist/cli/utils/printInfoLine.js.map +1 -1
  102. package/dist/cli/utils/projectTemplates.js.map +1 -1
  103. package/dist/cli/utils/resolveCommandGgufPath.js.map +1 -1
  104. package/dist/cli/utils/resolveHeaderFlag.js.map +1 -1
  105. package/dist/cli/utils/splitAnsiToLines.js.map +1 -1
  106. package/dist/evaluator/LlamaChat/LlamaChat.d.ts +79 -8
  107. package/dist/evaluator/LlamaChat/LlamaChat.js +1212 -481
  108. package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
  109. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.d.ts +11 -0
  110. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.js +55 -0
  111. package/dist/evaluator/LlamaChat/utils/FunctionCallNameGrammar.js.map +1 -0
  112. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.d.ts +16 -0
  113. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js +45 -0
  114. package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js.map +1 -0
  115. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.d.ts +8 -0
  116. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.js +12 -0
  117. package/dist/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.js.map +1 -0
  118. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js +24 -16
  119. package/dist/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.js.map +1 -1
  120. package/dist/evaluator/LlamaChatSession/LlamaChatSession.d.ts +110 -5
  121. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +226 -39
  122. package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
  123. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.d.ts +39 -0
  124. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +186 -0
  125. package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -0
  126. package/dist/evaluator/LlamaCompletion.d.ts +17 -29
  127. package/dist/evaluator/LlamaCompletion.js +32 -19
  128. package/dist/evaluator/LlamaCompletion.js.map +1 -1
  129. package/dist/evaluator/LlamaContext/LlamaContext.d.ts +1 -2
  130. package/dist/evaluator/LlamaContext/LlamaContext.js +1 -1
  131. package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
  132. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.js.map +1 -1
  133. package/dist/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.js.map +1 -1
  134. package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
  135. package/dist/evaluator/LlamaGrammar.d.ts +3 -3
  136. package/dist/evaluator/LlamaGrammar.js +1 -1
  137. package/dist/evaluator/LlamaGrammar.js.map +1 -1
  138. package/dist/evaluator/{LlamaModel.d.ts → LlamaModel/LlamaModel.d.ts} +20 -14
  139. package/dist/evaluator/{LlamaModel.js → LlamaModel/LlamaModel.js} +100 -18
  140. package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -0
  141. package/dist/evaluator/LlamaModel/utils/TokenAttributes.d.ts +29 -0
  142. package/dist/evaluator/LlamaModel/utils/TokenAttributes.js +65 -0
  143. package/dist/evaluator/LlamaModel/utils/TokenAttributes.js.map +1 -0
  144. package/dist/evaluator/TokenBias.d.ts +1 -1
  145. package/dist/evaluator/TokenMeter.js.map +1 -1
  146. package/dist/gguf/fileReaders/GgufFsFileReader.js +2 -1
  147. package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -1
  148. package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -1
  149. package/dist/gguf/insights/GgufInsights.d.ts +6 -0
  150. package/dist/gguf/insights/GgufInsights.js +20 -0
  151. package/dist/gguf/insights/GgufInsights.js.map +1 -1
  152. package/dist/gguf/insights/GgufInsightsConfigurationResolver.d.ts +1 -1
  153. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js +1 -1
  154. package/dist/gguf/insights/GgufInsightsConfigurationResolver.js.map +1 -1
  155. package/dist/gguf/insights/utils/resolveContextContextSizeOption.js.map +1 -1
  156. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.d.ts +1 -1
  157. package/dist/gguf/insights/utils/resolveModelGpuLayersOption.js.map +1 -1
  158. package/dist/gguf/insights/utils/scoreLevels.js.map +1 -1
  159. package/dist/gguf/parser/GgufV2Parser.js.map +1 -1
  160. package/dist/gguf/parser/parseGguf.js.map +1 -1
  161. package/dist/gguf/readGgufFileInfo.js.map +1 -1
  162. package/dist/gguf/types/GgufMetadataTypes.d.ts +2 -1
  163. package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
  164. package/dist/gguf/utils/convertMetadataKeyValueRecordToNestedObject.js.map +1 -1
  165. package/dist/gguf/utils/getGgufFileTypeName.js.map +1 -1
  166. package/dist/gguf/utils/normalizeGgufDownloadUrl.js.map +1 -1
  167. package/dist/gguf/utils/resolveBinarySplitGgufPartUrls.js.map +1 -1
  168. package/dist/gguf/utils/resolveSplitGgufParts.js.map +1 -1
  169. package/dist/index.d.ts +14 -10
  170. package/dist/index.js +5 -2
  171. package/dist/index.js.map +1 -1
  172. package/dist/types.d.ts +68 -8
  173. package/dist/types.js.map +1 -1
  174. package/dist/utils/DisposeGuard.js.map +1 -1
  175. package/dist/utils/LlamaText.d.ts +22 -3
  176. package/dist/utils/LlamaText.js +107 -7
  177. package/dist/utils/LlamaText.js.map +1 -1
  178. package/dist/utils/LruCache.d.ts +12 -0
  179. package/dist/utils/LruCache.js +44 -0
  180. package/dist/utils/LruCache.js.map +1 -0
  181. package/dist/utils/ReplHistory.js.map +1 -1
  182. package/dist/utils/StopGenerationDetector.d.ts +25 -9
  183. package/dist/utils/StopGenerationDetector.js +70 -4
  184. package/dist/utils/StopGenerationDetector.js.map +1 -1
  185. package/dist/utils/TokenStreamRegulator.d.ts +1 -0
  186. package/dist/utils/TokenStreamRegulator.js +3 -0
  187. package/dist/utils/TokenStreamRegulator.js.map +1 -1
  188. package/dist/utils/appendUserMessageToChatHistory.js.map +1 -1
  189. package/dist/utils/clearTempFolder.js.map +1 -1
  190. package/dist/utils/cmake.js.map +1 -1
  191. package/dist/utils/createModelDownloader.d.ts +6 -0
  192. package/dist/utils/createModelDownloader.js +5 -2
  193. package/dist/utils/createModelDownloader.js.map +1 -1
  194. package/dist/utils/findBestOption.js.map +1 -1
  195. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.d.ts +1 -0
  196. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js +5 -4
  197. package/dist/utils/findCharacterRemovalCountToFitChatHistoryInContext.js.map +1 -1
  198. package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
  199. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js +1 -1
  200. package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
  201. package/dist/utils/gbnfJson/terminals/GbnfRepetition.js.map +1 -1
  202. package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -1
  203. package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +1 -1
  204. package/dist/utils/gbnfJson/types.d.ts +3 -0
  205. package/dist/utils/gbnfJson/types.js.map +1 -1
  206. package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
  207. package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
  208. package/dist/utils/getGrammarsFolder.js.map +1 -1
  209. package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
  210. package/dist/utils/gitReleaseBundles.js.map +1 -1
  211. package/dist/utils/isUrl.js.map +1 -1
  212. package/dist/utils/parseModelFileName.js.map +1 -1
  213. package/dist/utils/parseTextTemplate.js.map +1 -1
  214. package/dist/utils/prettyPrintObject.js.map +1 -1
  215. package/dist/utils/removeNullFields.js.map +1 -1
  216. package/dist/utils/resolveGithubRelease.d.ts +1 -1
  217. package/dist/utils/resolveGithubRelease.js.map +1 -1
  218. package/dist/utils/safeEventCallback.d.ts +6 -0
  219. package/dist/utils/safeEventCallback.js +29 -0
  220. package/dist/utils/safeEventCallback.js.map +1 -0
  221. package/dist/utils/spawnCommand.js.map +1 -1
  222. package/dist/utils/truncateTextAndRoundToWords.d.ts +2 -0
  223. package/dist/utils/truncateTextAndRoundToWords.js +30 -0
  224. package/dist/utils/truncateTextAndRoundToWords.js.map +1 -1
  225. package/dist/utils/waitForLockfileRelease.js.map +1 -1
  226. package/dist/utils/withLockfile.js.map +1 -1
  227. package/dist/utils/withOra.js.map +1 -1
  228. package/dist/utils/withProgressLog.js.map +1 -1
  229. package/dist/utils/withStatusLogs.js.map +1 -1
  230. package/dist/utils/wrapAbortSignal.d.ts +2 -0
  231. package/dist/utils/wrapAbortSignal.js +9 -0
  232. package/dist/utils/wrapAbortSignal.js.map +1 -0
  233. package/llama/addon.cpp +9 -9
  234. package/llama/binariesGithubRelease.json +1 -1
  235. package/llama/gitRelease.bundle +0 -0
  236. package/llama/llama.cpp.info.json +1 -1
  237. package/llamaBins/linux-arm64/_nlcBuildMetadata.json +1 -1
  238. package/llamaBins/linux-arm64/llama-addon.node +0 -0
  239. package/llamaBins/linux-armv7l/_nlcBuildMetadata.json +1 -1
  240. package/llamaBins/linux-armv7l/llama-addon.node +0 -0
  241. package/llamaBins/linux-x64/_nlcBuildMetadata.json +1 -1
  242. package/llamaBins/linux-x64/llama-addon.node +0 -0
  243. package/llamaBins/linux-x64-cuda/_nlcBuildMetadata.json +1 -1
  244. package/llamaBins/linux-x64-cuda/llama-addon.node +0 -0
  245. package/llamaBins/linux-x64-vulkan/_nlcBuildMetadata.json +1 -1
  246. package/llamaBins/linux-x64-vulkan/llama-addon.node +0 -0
  247. package/llamaBins/mac-arm64-metal/_nlcBuildMetadata.json +1 -1
  248. package/llamaBins/mac-arm64-metal/default.metallib +0 -0
  249. package/llamaBins/mac-arm64-metal/llama-addon.node +0 -0
  250. package/llamaBins/mac-x64/_nlcBuildMetadata.json +1 -1
  251. package/llamaBins/mac-x64/llama-addon.node +0 -0
  252. package/llamaBins/win-arm64/_nlcBuildMetadata.json +1 -1
  253. package/llamaBins/win-arm64/llama-addon.exp +0 -0
  254. package/llamaBins/win-arm64/llama-addon.lib +0 -0
  255. package/llamaBins/win-arm64/llama-addon.node +0 -0
  256. package/llamaBins/win-x64/_nlcBuildMetadata.json +1 -1
  257. package/llamaBins/win-x64/llama-addon.exp +0 -0
  258. package/llamaBins/win-x64/llama-addon.lib +0 -0
  259. package/llamaBins/win-x64/llama-addon.node +0 -0
  260. package/llamaBins/win-x64-cuda/_nlcBuildMetadata.json +1 -1
  261. package/llamaBins/win-x64-cuda/llama-addon.exp +0 -0
  262. package/llamaBins/win-x64-cuda/llama-addon.lib +0 -0
  263. package/llamaBins/win-x64-cuda/llama-addon.node +0 -0
  264. package/llamaBins/win-x64-vulkan/_nlcBuildMetadata.json +1 -1
  265. package/llamaBins/win-x64-vulkan/llama-addon.exp +0 -0
  266. package/llamaBins/win-x64-vulkan/llama-addon.lib +0 -0
  267. package/llamaBins/win-x64-vulkan/llama-addon.node +0 -0
  268. package/package.json +32 -34
  269. package/templates/packed/electron-typescript-react.json +1 -1
  270. package/templates/packed/node-typescript.json +1 -1
  271. package/dist/apiDocsOverrides.js.map +0 -1
  272. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.d.ts +0 -22
  273. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js +0 -122
  274. package/dist/evaluator/LlamaChat/utils/FunctionCallGrammar.js.map +0 -1
  275. package/dist/evaluator/LlamaModel.js.map +0 -1
  276. package/templates/packed/node_modules.json +0 -1
  277. /package/dist/{apiDocsOverrides.d.ts → apiDocsIndex.d.ts} +0 -0
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { GbnfJsonSchema, GbnfJsonSchemaToType } from "./utils/gbnfJson/types.js";
2
- import { BuiltinSpecialTokenValue } from "./utils/LlamaText.js";
2
+ import { LlamaText, BuiltinSpecialTokenValue, LlamaTextJSON } from "./utils/LlamaText.js";
3
3
  export type Token = number & {
4
4
  __token: never;
5
5
  };
@@ -14,23 +14,83 @@ export type Tokenizer = {
14
14
  isSpecialToken(token: Token): boolean;
15
15
  };
16
16
  export type ChatWrapperSettings = {
17
+ readonly supportsSystemMessages: boolean;
17
18
  readonly functions: {
18
19
  readonly call: {
19
20
  readonly optionalPrefixSpace: boolean;
20
- readonly prefix: string;
21
- readonly paramsPrefix: string;
22
- readonly suffix: string;
21
+ readonly prefix: string | LlamaText;
22
+ readonly paramsPrefix: string | LlamaText;
23
+ readonly suffix: string | LlamaText;
23
24
  };
24
25
  readonly result: {
25
- readonly prefix: string;
26
- readonly suffix: string;
26
+ /**
27
+ * Supported template parameters:
28
+ * - <span v-pre>`{{functionName}}`</span>
29
+ * - <span v-pre>`{{functionParams}}`</span>
30
+ *
31
+ * Template parameters can only appear in a string or a string in a `LlamaText`.
32
+ *
33
+ * Template parameters inside a `SpecialTokensText` inside a `LlamaText` won't be replaced.
34
+ *
35
+ * Example of supported values:
36
+ * - `"text{{functionName}}text"`
37
+ * - `LlamaText(["text{{functionName}}text"])`
38
+ *
39
+ * Example of unsupported values:
40
+ * - `LlamaText([new SpecialTokensText("text{{functionName}}text")])`
41
+ */
42
+ readonly prefix: string | LlamaText;
43
+ /**
44
+ * Supported template parameters:
45
+ * - <span v-pre>`{{functionName}}`</span>
46
+ * - <span v-pre>`{{functionParams}}`</span>
47
+ *
48
+ * Template parameters can only appear in a string or a string in a `LlamaText`.
49
+ *
50
+ * Template parameters inside a `SpecialTokensText` inside a `LlamaText` won't be replaced.
51
+ *
52
+ * Example of **supported** values:
53
+ * - `"text{{functionName}}text"`
54
+ * - `LlamaText(["text{{functionName}}text"])`
55
+ *
56
+ * Example of **unsupported** values:
57
+ * - `LlamaText([new SpecialTokensText("text{{functionName}}text")])`
58
+ */
59
+ readonly suffix: string | LlamaText;
60
+ };
61
+ /** If this field is present, parallel function calling is supported */
62
+ readonly parallelism?: {
63
+ readonly call: {
64
+ readonly sectionPrefix: string | LlamaText;
65
+ readonly betweenCalls?: string | LlamaText;
66
+ readonly sectionSuffix?: string | LlamaText;
67
+ };
68
+ readonly result?: {
69
+ readonly sectionPrefix?: string | LlamaText;
70
+ readonly betweenResults?: string | LlamaText;
71
+ readonly sectionSuffix?: string | LlamaText;
72
+ };
27
73
  };
28
74
  };
29
75
  };
76
+ export type ChatWrapperGenerateContextStateOptions = {
77
+ chatHistory: readonly ChatHistoryItem[];
78
+ availableFunctions?: ChatModelFunctions;
79
+ documentFunctionParams?: boolean;
80
+ };
81
+ export type ChatWrapperGeneratedContextState = {
82
+ contextText: LlamaText;
83
+ stopGenerationTriggers: LlamaText[];
84
+ ignoreStartText?: LlamaText[];
85
+ functionCall?: {
86
+ initiallyEngaged: boolean;
87
+ disengageInitiallyEngaged: LlamaText[];
88
+ };
89
+ };
30
90
  export type ChatHistoryItem = ChatSystemMessage | ChatUserMessage | ChatModelResponse;
31
91
  export type ChatSystemMessage = {
32
92
  type: "system";
33
- text: string;
93
+ text: string | LlamaTextJSON;
34
94
  };
35
95
  export type ChatUserMessage = {
36
96
  type: "user";
@@ -46,7 +106,7 @@ export type ChatModelFunctionCall = {
46
106
  description?: string;
47
107
  params: any;
48
108
  result: any;
49
- raw?: string;
109
+ rawCall?: LlamaTextJSON;
50
110
  };
51
111
  export type ChatModelFunctions = {
52
112
  readonly [name: string]: {
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA0EA,MAAM,UAAU,+BAA+B,CAAC,IAA2C;IACvF,IAAI,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,KAAK,CAAC;IAEjB,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA2IA,MAAM,UAAU,+BAA+B,CAAC,IAA2C;IACvF,IAAI,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,KAAK,CAAC;IAEjB,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;AACxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DisposeGuard.js","sourceRoot":"","sources":["../../src/utils/DisposeGuard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DisposeGuard.js","sourceRoot":"","sources":["../../src/utils/DisposeGuard.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { Token, Tokenizer } from "../types.js";
1
+ import type { Token, Tokenizer } from "../types.js";
2
2
  export type LlamaTextValue = string | SpecialTokensText | SpecialToken;
3
3
  export type LlamaTextInputValue = LlamaTextValue | LlamaText | number | boolean | readonly LlamaTextInputValue[];
4
- export type LlamaTextJSON = Array<LlamaTextJSONValue>;
4
+ export type LlamaTextJSON = string | LlamaTextJSONValue[];
5
5
  export type LlamaTextJSONValue = string | LlamaTextSpecialTokensTextJSON | LlamaTextSpecialTokenJSON;
6
6
  export type LlamaTextSpecialTokensTextJSON = {
7
7
  type: "specialTokensText";
@@ -18,7 +18,14 @@ declare class LlamaText {
18
18
  */
19
19
  constructor(...values: readonly LlamaTextInputValue[]);
20
20
  concat(value: LlamaTextInputValue): LlamaText;
21
- mapValues(mapper: (value: LlamaTextValue) => LlamaTextInputValue): LlamaText;
21
+ mapValues(mapper: (this: readonly LlamaTextValue[], value: LlamaTextValue, index: number, values: readonly LlamaTextValue[]) => LlamaTextInputValue): LlamaText;
22
+ /**
23
+ * Joins the values with the given separator.
24
+ *
25
+ * Note that the values are squashed when they are loaded into the `LlamaText`, so the separator is not added between adjacent strings.
26
+ *
27
+ * To add the separator on values before squashing them, use `LlamaText.joinValues` instead.
28
+ */
22
29
  joinValues(separator: LlamaText | LlamaTextValue): LlamaText;
23
30
  toString(): string;
24
31
  toJSON(): LlamaTextJSON;
@@ -29,6 +36,17 @@ declare class LlamaText {
29
36
  includes(value: LlamaText): boolean;
30
37
  static fromJSON(json: LlamaTextJSON): LlamaText;
31
38
  static compare(a: LlamaText, b: LlamaText): boolean;
39
+ /**
40
+ * Attempt to convert tokens to a `LlamaText` while preserving special tokens.
41
+ *
42
+ * Non-standard special tokens that don't have a text representation are ignored.
43
+ */
44
+ static fromTokens(tokenizer: Tokenizer, tokens: Token[]): LlamaText;
45
+ /**
46
+ * Join values with the given separator before squashing adjacent strings inside the values
47
+ */
48
+ static joinValues(separator: LlamaText | string, values: readonly LlamaTextInputValue[]): LlamaText;
49
+ static isLlamaText(value: unknown): value is LlamaText;
32
50
  }
33
51
  type LlamaTextConstructor = Omit<typeof LlamaText, "prototype"> & {
34
52
  new (...values: readonly LlamaTextInputValue[]): LlamaText;
@@ -62,6 +80,7 @@ export declare class SpecialToken {
62
80
  toJSON(): LlamaTextSpecialTokenJSON;
63
81
  static fromJSON(json: LlamaTextSpecialTokenJSON): SpecialToken;
64
82
  static isSpecialTokenJSON(value: LlamaTextJSONValue): value is LlamaTextSpecialTokenJSON;
83
+ static getTokenToValueMap(tokenizer: Tokenizer): ReadonlyMap<Token | undefined, BuiltinSpecialTokenValue>;
65
84
  }
66
85
  export declare function isLlamaText(value: unknown): value is LlamaText;
67
86
  export declare function tokenizeText(text: string | LlamaText, tokenizer: Tokenizer): Token[];
@@ -13,6 +13,13 @@ class LlamaText {
13
13
  mapValues(mapper) {
14
14
  return new LlamaTextConstructor(this.values.map(mapper));
15
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
+ */
16
23
  joinValues(separator) {
17
24
  const newValues = [];
18
25
  for (let i = 0; i < this.values.length; i++) {
@@ -39,6 +46,10 @@ class LlamaText {
39
46
  .join("");
40
47
  }
41
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 "";
42
53
  return this.values.map((value) => {
43
54
  if (value instanceof SpecialToken)
44
55
  return value.toJSON();
@@ -182,7 +193,10 @@ class LlamaText {
182
193
  }
183
194
  /** @internal */
184
195
  [Symbol.for("nodejs.util.inspect.custom")](depth, inspectOptions, inspect) {
185
- return "LlamaText(" + inspect(this.values, {
196
+ const inspectFunction = inspect ?? inspectOptions?.inspect;
197
+ if (inspectFunction == null)
198
+ return JSON.stringify(this.toJSON(), undefined, 4);
199
+ return "LlamaText(" + inspectFunction(this.values, {
186
200
  ...(inspectOptions ?? {}),
187
201
  depth: depth == null
188
202
  ? undefined
@@ -191,6 +205,8 @@ class LlamaText {
191
205
  }
192
206
  static fromJSON(json) {
193
207
  // assigned to `LlamaTextConstructor` manually to expose this static method
208
+ if (typeof json === "string")
209
+ return new LlamaTextConstructor(json);
194
210
  return new LlamaTextConstructor(json.map((value) => {
195
211
  if (typeof value === "string")
196
212
  return value;
@@ -216,6 +232,75 @@ class LlamaText {
216
232
  }
217
233
  return true;
218
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
+ }
219
304
  }
220
305
  Object.defineProperty(LlamaText.prototype, "_type", {
221
306
  enumerable: false,
@@ -233,6 +318,9 @@ LlamaTextConstructor.prototype = Object.create(LlamaText.prototype);
233
318
  LlamaTextConstructor.prototype.constructor = LlamaTextConstructor;
234
319
  LlamaTextConstructor.fromJSON = LlamaText.fromJSON;
235
320
  LlamaTextConstructor.compare = LlamaText.compare;
321
+ LlamaTextConstructor.fromTokens = LlamaText.fromTokens;
322
+ LlamaTextConstructor.joinValues = LlamaText.joinValues;
323
+ LlamaTextConstructor.isLlamaText = LlamaText.isLlamaText;
236
324
  const _LlamaText = LlamaTextConstructor;
237
325
  export { _LlamaText as LlamaText, LlamaText as _LlamaText };
238
326
  export class SpecialTokensText {
@@ -274,7 +362,10 @@ export class SpecialTokensText {
274
362
  }
275
363
  /** @internal */
276
364
  [Symbol.for("nodejs.util.inspect.custom")](depth, inspectOptions, inspect) {
277
- return "new SpecialTokensText(" + inspect(this.value, {
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, {
278
369
  ...(inspectOptions ?? {}),
279
370
  depth: depth == null
280
371
  ? undefined
@@ -318,7 +409,10 @@ export class SpecialToken {
318
409
  }
319
410
  /** @internal */
320
411
  [Symbol.for("nodejs.util.inspect.custom")](depth, inspectOptions, inspect) {
321
- return "new SpecialToken(" + inspect(this.value, {
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, {
322
416
  ...(inspectOptions ?? {}),
323
417
  depth: depth == null
324
418
  ? undefined
@@ -333,12 +427,18 @@ export class SpecialToken {
333
427
  static isSpecialTokenJSON(value) {
334
428
  return value != null && typeof value === "object" && value.type === "specialToken";
335
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
+ }
336
439
  }
337
440
  export function isLlamaText(value) {
338
- if (value instanceof LlamaTextConstructor || value instanceof LlamaText)
339
- return true;
340
- // detect a `LlamaText` created from a different module import
341
- return value != null && Object.getPrototypeOf(value)?._type === "LlamaText";
441
+ return LlamaText.isLlamaText(value);
342
442
  }
343
443
  export function tokenizeText(text, tokenizer) {
344
444
  if (typeof text === "string")
@@ -1 +1 @@
1
- {"version":3,"file":"LlamaText.js","sourceRoot":"","sources":["../../src/utils/LlamaText.ts"],"names":[],"mappings":"AAWA,MAAM,SAAS;IACK,MAAM,CAA4B;IAElD;;OAEG;IACH,YAAmB,GAAG,MAAsC;QACxD,kHAAkH;QAClH,IAAI,CAAC,MAAM,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,KAA0B;QACpC,OAAO,IAAI,oBAAoB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEM,SAAS,CAAC,MAAsD;QACnE,OAAO,IAAI,oBAAoB,CAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAC1B,CAAC;IACN,CAAC;IAEM,UAAU,CAAC,SAAqC;QACnD,MAAM,SAAS,GAAqB,EAAE,CAAC;QAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,WAAW,CAAC,SAAS,CAAC;oBACtB,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;;oBAEpC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACjC;SACJ;QAED,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,MAAM;aACb,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACX,IAAI,KAAK,YAAY,YAAY;gBAC7B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;iBACvB,IAAI,KAAK,YAAY,iBAAiB;gBACvC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;;gBAExB,OAAO,KAAK,CAAC;QACrB,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAEM,MAAM;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,IAAI,KAAK,YAAY,YAAY;gBAC7B,OAAO,KAAK,CAAC,MAAM,EAA+B,CAAC;iBAClD,IAAI,KAAK,YAAY,iBAAiB;gBACvC,OAAO,KAAK,CAAC,MAAM,EAA+B,CAAC;;gBAEnD,OAAO,KAAkC,CAAC;QAClD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,QAAQ,CAAC,SAAoB,EAAE,OAA4B;QAC9D,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,MAAM,GAAG,GAAY,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvE,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAEpF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC7B,IAAI,KAAK,YAAY,YAAY,EAAE;gBAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvG,cAAc,GAAG,EAAE,CAAC;aACvB;iBAAM,IAAI,KAAK,YAAY,iBAAiB,EAAE;gBAC3C,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,OAAO,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACvJ,cAAc,GAAG,EAAE,CAAC;aACvB;;gBACG,cAAc,IAAI,KAAK,CAAC;SAC/B;QAED,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,cAAc,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAEzE,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,OAAO,CAAC,KAAgB;QAC3B,OAAO,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAEM,SAAS;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEtC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAEhC,IAAI,UAAU,YAAY,YAAY;gBAClC,MAAM;YAEV,IAAI,UAAU,YAAY,iBAAiB,EAAE;gBACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9C,IAAI,QAAQ,KAAK,EAAE,EAAE;oBACjB,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClB,SAAS;iBACZ;qBAAM,IAAI,QAAQ,KAAK,UAAU,CAAC,KAAK,EAAE;oBACtC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBAC/C,MAAM;iBACT;gBAED,MAAM;aACT;iBAAM,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;gBACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,QAAQ,KAAK,EAAE,EAAE;oBACjB,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClB,SAAS;iBACZ;qBAAM,IAAI,QAAQ,KAAK,UAAU,EAAE;oBAChC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;oBACxB,MAAM;iBACT;gBAED,MAAM;aACT;;gBACG,KAAK,CAAC,UAA0B,CAAC,CAAC;SACzC;QAED,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAEM,OAAO;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEtC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAElD,IAAI,SAAS,YAAY,YAAY;gBACjC,MAAM;YAEV,IAAI,SAAS,YAAY,iBAAiB,EAAE;gBACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC3C,IAAI,QAAQ,KAAK,EAAE,EAAE;oBACjB,SAAS,CAAC,GAAG,EAAE,CAAC;oBAChB,SAAS;iBACZ;qBAAM,IAAI,QAAQ,KAAK,SAAS,CAAC,KAAK,EAAE;oBACrC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBAClE,MAAM;iBACT;gBAED,MAAM;aACT;iBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,QAAQ,KAAK,EAAE,EAAE;oBACjB,SAAS,CAAC,GAAG,EAAE,CAAC;oBAChB,SAAS;iBACZ;qBAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC/B,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;oBAC3C,MAAM;iBACT;gBAED,MAAM;aACT;;gBACG,KAAK,CAAC,SAAyB,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ,CAAC,KAAgB;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEjC,IAAI,UAAU,GAAG,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpE,IAAI,CAAC,UAAU,IAAI,SAAS,YAAY,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,iBAAiB,EAAE;gBACvG,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAChC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACjD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACzD;YAED,IAAI,CAAC,UAAU,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACrF,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBAChC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACrC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aAC7C;YAED,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACrC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAEnC,IAAI,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;oBAE7D,IAAI,CAAC,QAAQ,IAAI,SAAS,YAAY,iBAAiB,IAAI,UAAU,YAAY,iBAAiB,EAAE;wBAChG,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;4BACpC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;4BAC9C,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC;qBAC9C;oBAED,IAAI,CAAC,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;wBAC9E,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;4BACpC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC;4BAClC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC;qBAClC;oBAED,IAAI,CAAC,QAAQ;wBACT,MAAM;iBACb;gBAED,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM;oBACzB,OAAO,IAAI,CAAC;aACnB;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,gBAAgB;IACT,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAC7C,KAAoB,EAAE,cAA8B,EAAE,OAA+B;QAErF,OAAO,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YACvC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;YACzB,KAAK,EAAE,KAAK,IAAI,IAAI;gBAChB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;SAC/B,CAAC,GAAG,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAmB;QACtC,2EAA2E;QAE3E,OAAO,IAAI,oBAAoB,CAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACzB,OAAO,KAAK,CAAC;iBACZ,IAAI,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAC3C,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACnC,IAAI,iBAAiB,CAAC,uBAAuB,CAAC,KAAK,CAAC;gBACrD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACxC;gBACD,KAAK,CAAC,KAAqB,CAAC,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;aACnD;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,CAAY,EAAE,CAAY;QAC5C,2EAA2E;QAE3E,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC;QAEjB,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;YACnC,OAAO,KAAK,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,KAAK,CAAC;SACpB;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AACD,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE;IAChD,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE,WAAW;CACrB,CAAC,CAAC;AAQH,MAAM,oBAAoB,GAAyB,SAAS,SAAS,CAAkB,GAAG,MAAsC;IAC5H,gEAAgE;IAChE,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI;QAClB,OAAO,IAAI,oBAAoB,CAAC,GAAG,MAAM,CAAC,CAAC;IAE9C,IAA2B,CAAC,MAAM,GAAG,iCAAiC,CAAC,MAAM,CAAC,CAAC;IAChF,OAAO,IAAI,CAAC;AAChB,CAAQ,CAAC;AAER,oBAAoC,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpF,oBAAoC,CAAC,SAAS,CAAC,WAAW,GAAG,oBAAoB,CAAC;AACnF,oBAAoB,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AACnD,oBAAoB,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;AAEjD,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAGxC,OAAO,EACH,UAAU,IAAI,SAAS,EACvB,SAAS,IAAI,UAAU,EAC1B,CAAC;AAEF,MAAM,OAAO,iBAAiB;IACV,KAAK,CAAS;IAE9B,YAAmB,KAAa;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,SAAoB,EAAE,mBAA4B,KAAK;QACnE,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC;IAEM,yBAAyB,CAAC,SAAoB;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAuB,EAAE,CAAC;QACnC,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBACjC,IAAI,WAAW,KAAK,EAAE,EAAE;oBACpB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACtB,WAAW,GAAG,EAAE,CAAC;iBACpB;gBAED,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnB;iBAAM;gBACH,WAAW,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;aACvD;SACJ;QAED,IAAI,WAAW,KAAK,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE1B,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,MAAM;QACT,OAAO;YACH,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC;IACN,CAAC;IAED,gBAAgB;IACT,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAC7C,KAAoB,EAAE,cAA8B,EAAE,OAA+B;QAErF,OAAO,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;YAClD,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;YACzB,KAAK,EAAE,KAAK,IAAI,IAAI;gBAChB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;SAC/B,CAAC,GAAG,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAoC;QACvD,IAAI,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAC/C,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,KAAyB;QAC3D,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC;IAC5F,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,MAAM,CAAC,UAAmB,EAAE,KAAa;QACnD,IAAI,UAAU;YACV,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;;YAEpC,OAAO,KAAK,CAAC;IACrB,CAAC;CACJ;AAGD,MAAM,OAAO,YAAY;IACL,KAAK,CAA2B;IAEhD,YAAmB,KAA+B;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,SAAoB;QAChC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEM,MAAM;QACT,OAAO;YACH,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC;IACN,CAAC;IAED,gBAAgB;IACT,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAC7C,KAAoB,EAAE,cAA8B,EAAE,OAA+B;QAErF,OAAO,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;YAC7C,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;YACzB,KAAK,EAAE,KAAK,IAAI,IAAI;gBAChB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;SAC/B,CAAC,GAAG,GAAG,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAA+B;QAClD,IAAI,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC;YACrC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAiC,CAAC,CAAC;QAEpE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,KAAyB;QACtD,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;IACvF,CAAC;CACJ;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACtC,IAAI,KAAK,YAAY,oBAAoB,IAAI,KAAK,YAAY,SAAS;QACnE,OAAO,IAAI,CAAC;IAEhB,8DAA8D;IAC9D,OAAO,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,cAAc,CAAC,KAAkB,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAwB,EAAE,SAAoB;IACvE,IAAI,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;QAE9B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAID,SAAS,iCAAiC,CAAC,MAAsC;IAC7E,SAAS,YAAY,CAAC,GAAqB,EAAE,IAAyB;QAClE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,YAAY,iBAAiB,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC7F,OAAO,GAAG,CAAC;aACV,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,YAAY,iBAAiB,IAAI,IAAI,YAAY,YAAY,EAAE;YACpG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YAC1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM;gBAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEpB,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,IAAI,YAAY,KAAK,EAAE;YAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;gBACtB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;oBACpB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,MAAM;wBACjC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC5B;qBAAM,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;oBACjF,SAAS;qBACR,IAAI,KAAK,YAAY,KAAK;oBAC3B,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;qBACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;oBAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;;oBAExB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvB;YAED,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,EAAE;YAC9D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACvB,OAAO,GAAG,CAAC;SACd;QAED,OAAO,IAAoB,CAAC;IAChC,CAAC;IAED,SAAS,mBAAmB,CAAC,GAAqB,EAAE,IAAoB;QACpE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YAClB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,GAAG,CAAC;SACd;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErC,IAAI,QAAQ,YAAY,YAAY,IAAI,IAAI,YAAY,YAAY,EAAE;YAClE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,GAAG,CAAC;SACd;QAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1D,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5B,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,QAAQ,YAAY,iBAAiB,IAAI,IAAI,YAAY,iBAAiB,EAAE;YACnF,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzE,OAAO,GAAG,CAAC;SACd;QAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO,MAAM;SACR,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;SACxB,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAiB,EAAE,CAAiB;IAChE,IAAI,CAAC,YAAY,iBAAiB,IAAI,CAAC,YAAY,iBAAiB;QAChE,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;SAC1B,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,YAAY,YAAY;QAC3D,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;SAC1B,IAAI,CAAC,KAAK,CAAC;QACZ,OAAO,KAAK,CAAC;IAEjB,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"LlamaText.js","sourceRoot":"","sources":["../../src/utils/LlamaText.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare class LruCache<Key, Value> {
2
+ readonly maxSize: number;
3
+ constructor(maxSize: number, { onDelete }?: {
4
+ onDelete?(key: Key, value: Value): void;
5
+ });
6
+ get(key: Key): NonNullable<Value> | undefined;
7
+ set(key: Key, value: Value): this;
8
+ get firstKey(): any;
9
+ clear(): void;
10
+ keys(): IterableIterator<Key>;
11
+ delete(key: Key): void;
12
+ }
@@ -0,0 +1,44 @@
1
+ export class LruCache {
2
+ maxSize;
3
+ /** @internal */ _cache = new Map();
4
+ /** @internal */ _onDelete;
5
+ constructor(maxSize, { onDelete } = {}) {
6
+ this.maxSize = maxSize;
7
+ this._onDelete = onDelete;
8
+ }
9
+ get(key) {
10
+ if (!this._cache.has(key))
11
+ return undefined;
12
+ // move the key to the end of the cache
13
+ const item = this._cache.get(key);
14
+ this._cache.delete(key);
15
+ this._cache.set(key, item);
16
+ return item;
17
+ }
18
+ set(key, value) {
19
+ if (this._cache.has(key))
20
+ this._cache.delete(key);
21
+ else if (this._cache.size >= this.maxSize) {
22
+ const firstKey = this.firstKey;
23
+ if (this._onDelete != null)
24
+ this._onDelete(firstKey, this._cache.get(firstKey));
25
+ this._cache.delete(firstKey);
26
+ }
27
+ this._cache.set(key, value);
28
+ return this;
29
+ }
30
+ get firstKey() {
31
+ return this._cache.keys()
32
+ .next().value;
33
+ }
34
+ clear() {
35
+ this._cache.clear();
36
+ }
37
+ keys() {
38
+ return this._cache.keys();
39
+ }
40
+ delete(key) {
41
+ this._cache.delete(key);
42
+ }
43
+ }
44
+ //# sourceMappingURL=LruCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LruCache.js","sourceRoot":"","sources":["../../src/utils/LruCache.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IACD,OAAO,CAAS;IAChC,gBAAgB,CAAkB,MAAM,GAAG,IAAI,GAAG,EAAc,CAAC;IACjE,gBAAgB,CAAkB,SAAS,CAAoC;IAE/E,YAAmB,OAAe,EAAE,EAChC,QAAQ,KAGR,EAAE;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,GAAG,CAAC,GAAQ;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YACrB,OAAO,SAAS,CAAC;QAErB,uCAAuC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,GAAG,CAAC,GAAQ,EAAE,KAAY;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACvB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE/B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;gBACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;aACpB,IAAI,EAAE,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEM,IAAI;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,GAAQ;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReplHistory.js","sourceRoot":"","sources":["../../src/utils/ReplHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAMzC,MAAM,YAAY,GAAqB;IACnC,OAAO,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,OAAO,WAAW;IACH,SAAS,CAAgB;IAClC,YAAY,CAAmB;IAEvC,YAAoB,QAAuB,EAAE,WAA6B;QACtE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,OAAO;SACV;QAED,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;YACpC,IAAI;gBACA,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC;gBACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEvD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAU,EAAE,IAAI,CAAC,YAAY,EAAE;oBACnD,MAAM,EAAE,CAAC;iBACZ,CAAC,CAAC;aACN;YAAC,OAAO,GAAG,EAAE,GAAE;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IACrC,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,WAA6B;QACjE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,gBAAgB,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAE3C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO;YACH,GAAG,WAAW;YACd,OAAO,EAAE,UAAU;SACtB,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,qBAA8B,IAAI;QACzE,IAAI,CAAC,kBAAkB;YACnB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;QAEP,IAAI;YACA,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;oBACvC,MAAM,EAAE,CAAC;iBACZ,CAAC,CAAC;YAEP,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;SACN;IACL,CAAC;CACJ;AAED,SAAS,iBAAiB,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAC7J,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAEjD,OAAO,IAAwB,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"ReplHistory.js","sourceRoot":"","sources":["../../src/utils/ReplHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAMzC,MAAM,YAAY,GAAqB;IACnC,OAAO,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,OAAO,WAAW;IACH,SAAS,CAAgB;IAClC,YAAY,CAAmB;IAEvC,YAAoB,QAAuB,EAAE,WAA6B;QACtE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC;gBACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEvD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAU,EAAE,IAAI,CAAC,YAAY,EAAE;oBACnD,MAAM,EAAE,CAAC;iBACZ,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC,CAAA,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IACrC,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,WAA6B;QACjE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,gBAAgB,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAE3C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO;YACH,GAAG,WAAW;YACd,OAAO,EAAE,UAAU;SACtB,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,qBAA8B,IAAI;QACzE,IAAI,CAAC,kBAAkB;YACnB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;QAEP,IAAI,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;oBACvC,MAAM,EAAE,CAAC;iBACZ,CAAC,CAAC;YAEP,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ;AAED,SAAS,iBAAiB,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAC7J,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAEjD,OAAO,IAAwB,CAAC;AACpC,CAAC"}
@@ -1,13 +1,14 @@
1
- import { Token, Tokenizer } from "../types.js";
1
+ import { Detokenizer, Token, Tokenizer } from "../types.js";
2
2
  import { LlamaText } from "./LlamaText.js";
3
3
  import { QueuedTokenRelease, QueuedTokenReleaseLock } from "./TokenStreamRegulator.js";
4
4
  export type StopGenerationTrigger = (string | Token)[];
5
5
  export declare class StopGenerationDetector<T extends string = string> {
6
- recordGeneration({ text, tokens, queuedTokenRelease, startNewChecks }: {
6
+ recordGeneration({ text, tokens, queuedTokenRelease, startNewChecks, triggerMustStartWithGeneration }: {
7
7
  text: string;
8
8
  tokens: Token[];
9
9
  queuedTokenRelease?: QueuedTokenRelease;
10
10
  startNewChecks?: boolean;
11
+ triggerMustStartWithGeneration?: boolean;
11
12
  }): void;
12
13
  addStopTrigger(stopTrigger: StopGenerationTrigger, completeEvent?: T): this;
13
14
  /** Whether there are some stops that have been found and triggered. */
@@ -15,14 +16,29 @@ export declare class StopGenerationDetector<T extends string = string> {
15
16
  /** Whether there are some stops that have been found, but not triggered yet. */
16
17
  get hasInProgressStops(): boolean;
17
18
  /** Gets the stops that have been found and triggered. */
18
- getTriggeredStops(): {
19
- stopTrigger: StopGenerationTrigger;
20
- events: T[];
21
- remainingGenerations: (string | Token[])[];
22
- queuedTokenReleaseLocks: QueuedTokenReleaseLock[];
23
- }[];
19
+ getTriggeredStops(): TriggeredStop<T>[];
24
20
  clearTriggeredStops(): void;
25
21
  clearInProgressStops(): void;
26
- static resolveStopTriggers(stopTriggers: readonly (string | StopGenerationTrigger | LlamaText)[], tokenizer: Tokenizer): StopGenerationTrigger[];
22
+ get hasTriggers(): boolean;
23
+ /**
24
+ * For a given generation, get the number of possibilities that would be disregarded if the generation is recorded.
25
+ *
26
+ * Calling this function does not change the state of the detector.
27
+ */
28
+ getDisregardedPossibilitiesCountForAGeneration({ text, tokens, startNewChecks }: {
29
+ text: string;
30
+ tokens: Token[];
31
+ /** Setting this to `true` implies that `triggerMustStartWithGeneration` is also `true` */
32
+ startNewChecks: boolean;
33
+ }): number;
34
+ static resolveStopTriggers(stopTriggers: readonly (string | Readonly<StopGenerationTrigger> | LlamaText)[], tokenizer: Tokenizer): StopGenerationTrigger[];
27
35
  static resolveLlamaTextTrigger(llamaText: LlamaText, tokenizer: Tokenizer): StopGenerationTrigger;
36
+ static getFirstRemainingGenerationAfterStop(triggeredStops: TriggeredStop[]): string | Token[] | undefined;
37
+ static detokenizeRemainingGeneration(remainingGeneration: string | Token[] | undefined, detokenizer: Detokenizer, specialTokens?: boolean): string;
28
38
  }
39
+ export type TriggeredStop<T extends string = string> = {
40
+ stopTrigger: StopGenerationTrigger;
41
+ events: T[];
42
+ remainingGeneration: (string | Token[])[];
43
+ queuedTokenReleaseLocks: QueuedTokenReleaseLock[];
44
+ };