@promptbook/openai 0.61.0-9 → 0.62.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/README.md +46 -5
  2. package/esm/index.es.js +238 -31
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/promptbook-collection/index.d.ts +200 -30
  5. package/esm/typings/src/_packages/core.index.d.ts +9 -3
  6. package/esm/typings/src/_packages/execute-javascript.index.d.ts +1 -1
  7. package/esm/typings/src/_packages/node.index.d.ts +2 -1
  8. package/esm/typings/src/_packages/types.index.d.ts +12 -8
  9. package/esm/typings/src/_packages/utils.index.d.ts +11 -8
  10. package/esm/typings/src/cli/cli-commands/hello.d.ts +3 -0
  11. package/esm/typings/src/cli/cli-commands/make.d.ts +3 -0
  12. package/esm/typings/src/cli/cli-commands/prettify.d.ts +3 -0
  13. package/esm/typings/src/cli/promptbookCli.d.ts +1 -0
  14. package/esm/typings/src/collection/PipelineCollection.d.ts +1 -1
  15. package/esm/typings/src/collection/SimplePipelineCollection.d.ts +10 -10
  16. package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +7 -7
  17. package/esm/typings/src/collection/constructors/createCollectionFromUrl.d.ts +2 -2
  18. package/esm/typings/src/commands/KNOWLEDGE/KnowledgeCommand.d.ts +2 -3
  19. package/esm/typings/src/commands/MODEL/ModelCommand.d.ts +2 -2
  20. package/esm/typings/src/commands/PERSONA/PersonaCommand.d.ts +4 -2
  21. package/esm/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -0
  22. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +42 -14
  23. package/esm/typings/src/config.d.ts +46 -1
  24. package/esm/typings/src/config.test.d.ts +4 -0
  25. package/esm/typings/src/conversion/pipelineJsonToString.d.ts +3 -2
  26. package/esm/typings/src/conversion/pipelineStringToJson.d.ts +9 -5
  27. package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +6 -3
  28. package/esm/typings/src/conversion/prettify/PrettifyOptions.d.ts +2 -2
  29. package/{umd/typings/src/conversion/utils/extractParametersFromPromptTemplate.d.ts → esm/typings/src/conversion/utils/extractParameterNamesFromPromptTemplate.d.ts} +2 -2
  30. package/esm/typings/src/conversion/utils/renameParameter.d.ts +3 -3
  31. package/esm/typings/src/conversion/utils/stringifyPipelineJson.d.ts +14 -0
  32. package/esm/typings/src/conversion/validation/_importPipeline.d.ts +12 -3
  33. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +10 -1
  34. package/esm/typings/src/errors/EnvironmentMismatchError.d.ts +7 -0
  35. package/esm/typings/src/errors/LimitReachedError.d.ts +7 -0
  36. package/esm/typings/src/errors/VersionMismatchError.d.ts +8 -0
  37. package/esm/typings/src/execution/CommonExecutionToolsOptions.d.ts +1 -0
  38. package/esm/typings/src/execution/LlmExecutionTools.d.ts +10 -8
  39. package/esm/typings/src/execution/PipelineExecutor.d.ts +48 -26
  40. package/esm/typings/src/execution/PromptResult.d.ts +39 -54
  41. package/esm/typings/src/execution/PromptResultUsage.d.ts +29 -0
  42. package/esm/typings/src/execution/ScriptExecutionTools.d.ts +5 -4
  43. package/esm/typings/src/execution/UncertainNumber.d.ts +18 -0
  44. package/esm/typings/src/execution/UserInterfaceTools.d.ts +5 -5
  45. package/esm/typings/src/execution/createPipelineExecutor.d.ts +31 -3
  46. package/esm/typings/src/execution/translation/automatic-translate/automatic-translators/TranslatorOptions.d.ts +2 -2
  47. package/esm/typings/src/execution/utils/addUsage.d.ts +58 -2
  48. package/esm/typings/src/execution/utils/computeUsageCounts.d.ts +1 -1
  49. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -1
  50. package/esm/typings/src/execution/utils/uncertainNumber.d.ts +1 -1
  51. package/esm/typings/src/execution/utils/usageToHuman.d.ts +15 -0
  52. package/esm/typings/src/execution/utils/usageToWorktime.d.ts +2 -2
  53. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +1 -1
  54. package/esm/typings/src/formats/csv/ListFormatDefinition.d.ts +2 -1
  55. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +2 -1
  56. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +2 -1
  57. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +1 -0
  58. package/esm/typings/src/knowledge/dialogs/callback/CallbackInterfaceToolsOptions.d.ts +1 -1
  59. package/esm/typings/src/knowledge/dialogs/simple-prompt/SimplePromptInterfaceTools.d.ts +3 -0
  60. package/esm/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +27 -0
  61. package/esm/typings/src/knowledge/prepare-knowledge/_common/prepareKnowledgePieces.d.ts +18 -0
  62. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +9 -23
  63. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts +3 -0
  64. package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +8 -14
  65. package/esm/typings/src/llm-providers/_common/createLlmToolsFromEnv.d.ts +31 -0
  66. package/esm/typings/src/llm-providers/_common/getLlmToolsForCli.d.ts +11 -0
  67. package/esm/typings/src/llm-providers/_common/getLlmToolsForTestingAndScriptsAndPlayground.d.ts +12 -0
  68. package/esm/typings/src/llm-providers/_common/utils/cache/CacheItem.d.ts +29 -0
  69. package/esm/typings/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +10 -0
  70. package/esm/typings/src/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +19 -0
  71. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +14 -0
  72. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/countTotalUsage.d.ts +17 -0
  73. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +35 -0
  74. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +4 -3
  75. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +1 -1
  76. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +3 -3
  77. package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -0
  78. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +5 -4
  79. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +5 -5
  80. package/esm/typings/src/llm-providers/azure-openai/playground/playground.d.ts +3 -0
  81. package/esm/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +3 -0
  82. package/esm/typings/src/llm-providers/langtail/LangtailExecutionToolsOptions.d.ts +1 -1
  83. package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +5 -5
  84. package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +7 -7
  85. package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +12 -8
  86. package/esm/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +3 -0
  87. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +7 -6
  88. package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +1 -1
  89. package/esm/typings/src/llm-providers/openai/computeOpenaiUsage.d.ts +1 -1
  90. package/esm/typings/src/llm-providers/openai/computeUsage.d.ts +2 -2
  91. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +3 -2
  92. package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +3 -0
  93. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +10 -8
  94. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionToolsOptions.d.ts +1 -1
  95. package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +2 -2
  96. package/esm/typings/src/personas/preparePersona.d.ts +15 -0
  97. package/esm/typings/src/prepare/PrepareOptions.d.ts +22 -0
  98. package/esm/typings/src/prepare/isPipelinePrepared.d.ts +14 -0
  99. package/esm/typings/src/prepare/preparePipeline.d.ts +16 -0
  100. package/esm/typings/src/prepare/prepareTemplates.d.ts +31 -0
  101. package/esm/typings/src/prepare/unpreparePipeline.d.ts +11 -0
  102. package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +1 -1
  103. package/esm/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
  104. package/esm/typings/src/scripting/javascript/utils/unknownToString.d.ts +2 -1
  105. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +25 -0
  106. package/esm/typings/src/storage/_common/PromptbookStorage.test-type.d.ts +5 -0
  107. package/esm/typings/src/storage/files-storage/FilesStorage.d.ts +30 -0
  108. package/esm/typings/src/storage/files-storage/FilesStorageOptions.d.ts +13 -0
  109. package/esm/typings/src/storage/files-storage/utils/nameToSubfolderPath.d.ts +7 -0
  110. package/esm/typings/src/storage/local-storage/getLocalStorage.d.ts +9 -0
  111. package/esm/typings/src/storage/local-storage/getSessionStorage.d.ts +9 -0
  112. package/esm/typings/src/storage/memory/MemoryStorage.d.ts +34 -0
  113. package/esm/typings/src/storage/utils/PrefixStorage.d.ts +26 -0
  114. package/esm/typings/src/storage/utils/makePromptbookStorageFromWebStorage.d.ts +11 -0
  115. package/esm/typings/src/types/ModelRequirements.d.ts +71 -11
  116. package/esm/typings/src/types/ModelVariant.d.ts +14 -0
  117. package/esm/typings/src/types/PipelineJson/Expectations.d.ts +6 -2
  118. package/esm/typings/src/types/PipelineJson/KnowledgePieceJson.d.ts +70 -0
  119. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +27 -0
  120. package/esm/typings/src/types/PipelineJson/LlmTemplateJson.d.ts +10 -1
  121. package/esm/typings/src/types/PipelineJson/PersonaJson.d.ts +41 -0
  122. package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +31 -5
  123. package/esm/typings/src/types/PipelineJson/PreparationJson.d.ts +22 -0
  124. package/esm/typings/src/types/PipelineJson/PromptDialogJson.d.ts +8 -2
  125. package/esm/typings/src/types/PipelineJson/PromptTemplateJson.d.ts +5 -1
  126. package/esm/typings/src/types/PipelineJson/PromptTemplateJsonCommon.d.ts +23 -4
  127. package/esm/typings/src/types/PipelineJson/PromptTemplateParameterJson.d.ts +12 -2
  128. package/esm/typings/src/types/PipelineJson/ScriptJson.d.ts +7 -2
  129. package/esm/typings/src/types/PipelineJson/SimpleTemplateJson.d.ts +7 -2
  130. package/esm/typings/src/types/PipelineString.d.ts +1 -1
  131. package/esm/typings/src/types/Prompt.d.ts +54 -10
  132. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +4 -4
  133. package/esm/typings/src/types/execution-report/ExecutionReportStringOptions.d.ts +3 -3
  134. package/esm/typings/src/types/execution-report/countWorkingDuration.d.ts +1 -1
  135. package/esm/typings/src/types/typeAliases.d.ts +114 -15
  136. package/esm/typings/src/utils/FromtoItems.d.ts +3 -3
  137. package/esm/typings/src/utils/currentDate.d.ts +7 -0
  138. package/esm/typings/src/utils/deepClone.d.ts +9 -0
  139. package/esm/typings/src/utils/deepFreeze.d.ts +22 -0
  140. package/esm/typings/src/utils/emojis.d.ts +2 -2
  141. package/esm/typings/src/utils/{extractParameters.d.ts → extractParameterNames.d.ts} +2 -2
  142. package/esm/typings/src/utils/formatNumber.d.ts +1 -1
  143. package/esm/typings/src/utils/isRunningInWhatever.d.ts +3 -0
  144. package/esm/typings/src/utils/markdown/addAutoGeneratedSection.d.ts +3 -3
  145. package/esm/typings/src/utils/markdown/createMarkdownChart.d.ts +7 -10
  146. package/esm/typings/src/utils/markdown/createMarkdownTable.d.ts +1 -1
  147. package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts +1 -0
  148. package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +9 -2
  149. package/esm/typings/src/utils/markdown/extractOneBlockFromMarkdown.d.ts +1 -1
  150. package/esm/typings/src/utils/markdown/parseMarkdownSection.d.ts +3 -3
  151. package/esm/typings/src/utils/normalization/parseKeywords.d.ts +2 -1
  152. package/esm/typings/src/utils/organization/TODO_USE.d.ts +12 -0
  153. package/esm/typings/src/utils/organization/TODO_any.d.ts +6 -0
  154. package/esm/typings/src/utils/organization/TODO_object.d.ts +6 -0
  155. package/esm/typings/src/utils/organization/TODO_unknown.d.ts +6 -0
  156. package/esm/typings/src/utils/organization/___.d.ts +6 -0
  157. package/{umd/typings/src/utils → esm/typings/src/utils/organization}/just.d.ts +5 -1
  158. package/esm/typings/src/utils/organization/keepUnused.d.ts +16 -0
  159. package/esm/typings/src/utils/organization/really_any.d.ts +6 -0
  160. package/esm/typings/src/utils/organization/really_unknown.d.ts +6 -0
  161. package/esm/typings/src/utils/random/randomSeed.d.ts +7 -0
  162. package/esm/typings/src/{execution/utils → utils}/replaceParameters.d.ts +2 -4
  163. package/esm/typings/src/utils/replaceParameters.test.d.ts +1 -0
  164. package/esm/typings/src/utils/sets/difference.d.ts +3 -0
  165. package/esm/typings/src/utils/validators/email/isValidEmail.d.ts +2 -1
  166. package/esm/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -1
  167. package/esm/typings/src/utils/validators/javascriptName/isValidJavascriptName.d.ts +2 -1
  168. package/esm/typings/src/utils/validators/semanticVersion/isValidPromptbookVersion.d.ts +2 -1
  169. package/esm/typings/src/utils/validators/semanticVersion/isValidSemanticVersion.d.ts +2 -1
  170. package/esm/typings/src/utils/validators/url/isValidPipelineUrl.d.ts +2 -1
  171. package/esm/typings/src/utils/validators/url/isValidUrl.d.ts +2 -1
  172. package/esm/typings/src/utils/validators/uuid/isValidUuid.d.ts +2 -1
  173. package/package.json +3 -3
  174. package/umd/index.umd.js +238 -31
  175. package/umd/index.umd.js.map +1 -1
  176. package/umd/typings/promptbook-collection/index.d.ts +200 -30
  177. package/umd/typings/src/_packages/core.index.d.ts +9 -3
  178. package/umd/typings/src/_packages/execute-javascript.index.d.ts +1 -1
  179. package/umd/typings/src/_packages/node.index.d.ts +2 -1
  180. package/umd/typings/src/_packages/types.index.d.ts +12 -8
  181. package/umd/typings/src/_packages/utils.index.d.ts +11 -8
  182. package/umd/typings/src/cli/cli-commands/hello.d.ts +3 -0
  183. package/umd/typings/src/cli/cli-commands/make.d.ts +3 -0
  184. package/umd/typings/src/cli/cli-commands/prettify.d.ts +3 -0
  185. package/umd/typings/src/cli/promptbookCli.d.ts +1 -0
  186. package/umd/typings/src/collection/PipelineCollection.d.ts +1 -1
  187. package/umd/typings/src/collection/SimplePipelineCollection.d.ts +10 -10
  188. package/umd/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +7 -7
  189. package/umd/typings/src/collection/constructors/createCollectionFromUrl.d.ts +2 -2
  190. package/umd/typings/src/commands/KNOWLEDGE/KnowledgeCommand.d.ts +2 -3
  191. package/umd/typings/src/commands/MODEL/ModelCommand.d.ts +2 -2
  192. package/umd/typings/src/commands/PERSONA/PersonaCommand.d.ts +4 -2
  193. package/umd/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -0
  194. package/umd/typings/src/commands/_common/types/CommandParser.d.ts +42 -14
  195. package/umd/typings/src/config.d.ts +46 -1
  196. package/umd/typings/src/config.test.d.ts +4 -0
  197. package/umd/typings/src/conversion/pipelineJsonToString.d.ts +3 -2
  198. package/umd/typings/src/conversion/pipelineStringToJson.d.ts +9 -5
  199. package/umd/typings/src/conversion/pipelineStringToJsonSync.d.ts +6 -3
  200. package/umd/typings/src/conversion/prettify/PrettifyOptions.d.ts +2 -2
  201. package/{esm/typings/src/conversion/utils/extractParametersFromPromptTemplate.d.ts → umd/typings/src/conversion/utils/extractParameterNamesFromPromptTemplate.d.ts} +2 -2
  202. package/umd/typings/src/conversion/utils/extractParameterNamesFromPromptTemplate.test.d.ts +1 -0
  203. package/umd/typings/src/conversion/utils/renameParameter.d.ts +3 -3
  204. package/umd/typings/src/conversion/utils/stringifyPipelineJson.d.ts +14 -0
  205. package/umd/typings/src/conversion/utils/stringifyPipelineJson.test.d.ts +1 -0
  206. package/umd/typings/src/conversion/validation/_importPipeline.d.ts +12 -3
  207. package/umd/typings/src/conversion/validation/validatePipeline.d.ts +10 -1
  208. package/umd/typings/src/errors/EnvironmentMismatchError.d.ts +7 -0
  209. package/umd/typings/src/errors/LimitReachedError.d.ts +7 -0
  210. package/umd/typings/src/errors/VersionMismatchError.d.ts +8 -0
  211. package/umd/typings/src/execution/CommonExecutionToolsOptions.d.ts +1 -0
  212. package/umd/typings/src/execution/LlmExecutionTools.d.ts +10 -8
  213. package/umd/typings/src/execution/PipelineExecutor.d.ts +48 -26
  214. package/umd/typings/src/execution/PromptResult.d.ts +39 -54
  215. package/umd/typings/src/execution/PromptResultUsage.d.ts +29 -0
  216. package/umd/typings/src/execution/ScriptExecutionTools.d.ts +5 -4
  217. package/umd/typings/src/execution/UncertainNumber.d.ts +18 -0
  218. package/umd/typings/src/execution/UserInterfaceTools.d.ts +5 -5
  219. package/umd/typings/src/execution/createPipelineExecutor.d.ts +31 -3
  220. package/umd/typings/src/execution/translation/automatic-translate/automatic-translators/TranslatorOptions.d.ts +2 -2
  221. package/umd/typings/src/execution/utils/addUsage.d.ts +58 -2
  222. package/umd/typings/src/execution/utils/computeUsageCounts.d.ts +1 -1
  223. package/umd/typings/src/execution/utils/forEachAsync.d.ts +1 -1
  224. package/umd/typings/src/execution/utils/uncertainNumber.d.ts +1 -1
  225. package/umd/typings/src/execution/utils/usageToHuman.d.ts +15 -0
  226. package/umd/typings/src/execution/utils/usageToHuman.test.d.ts +1 -0
  227. package/umd/typings/src/execution/utils/usageToWorktime.d.ts +2 -2
  228. package/umd/typings/src/formats/_common/FormatDefinition.d.ts +1 -1
  229. package/umd/typings/src/formats/csv/ListFormatDefinition.d.ts +2 -1
  230. package/umd/typings/src/formats/json/JsonFormatDefinition.d.ts +2 -1
  231. package/umd/typings/src/formats/list/ListFormatDefinition.d.ts +2 -1
  232. package/umd/typings/src/formats/xml/XmlFormatDefinition.d.ts +1 -0
  233. package/umd/typings/src/knowledge/dialogs/callback/CallbackInterfaceToolsOptions.d.ts +1 -1
  234. package/umd/typings/src/knowledge/dialogs/simple-prompt/SimplePromptInterfaceTools.d.ts +3 -0
  235. package/umd/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +27 -0
  236. package/umd/typings/src/knowledge/prepare-knowledge/_common/prepareKnowledgePieces.d.ts +18 -0
  237. package/umd/typings/src/knowledge/prepare-knowledge/_common/prepareKnowledgePieces.test.d.ts +1 -0
  238. package/umd/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +9 -23
  239. package/umd/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts +3 -0
  240. package/umd/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +8 -14
  241. package/umd/typings/src/llm-providers/_common/createLlmToolsFromEnv.d.ts +31 -0
  242. package/umd/typings/src/llm-providers/_common/getLlmToolsForCli.d.ts +11 -0
  243. package/umd/typings/src/llm-providers/_common/getLlmToolsForTestingAndScriptsAndPlayground.d.ts +12 -0
  244. package/umd/typings/src/llm-providers/_common/utils/cache/CacheItem.d.ts +29 -0
  245. package/umd/typings/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +10 -0
  246. package/umd/typings/src/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +19 -0
  247. package/umd/typings/src/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +14 -0
  248. package/umd/typings/src/llm-providers/_common/utils/count-total-usage/countTotalUsage.d.ts +17 -0
  249. package/umd/typings/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +35 -0
  250. package/umd/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +4 -3
  251. package/umd/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +1 -1
  252. package/umd/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +3 -3
  253. package/umd/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -0
  254. package/umd/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +5 -4
  255. package/umd/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +5 -5
  256. package/umd/typings/src/llm-providers/azure-openai/playground/playground.d.ts +3 -0
  257. package/umd/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +3 -0
  258. package/umd/typings/src/llm-providers/langtail/LangtailExecutionToolsOptions.d.ts +1 -1
  259. package/umd/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +5 -5
  260. package/umd/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +7 -7
  261. package/umd/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +12 -8
  262. package/umd/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +3 -0
  263. package/umd/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +7 -6
  264. package/umd/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +1 -1
  265. package/umd/typings/src/llm-providers/openai/computeOpenaiUsage.d.ts +1 -1
  266. package/umd/typings/src/llm-providers/openai/computeUsage.d.ts +2 -2
  267. package/umd/typings/src/llm-providers/openai/openai-models.d.ts +3 -2
  268. package/umd/typings/src/llm-providers/openai/playground/playground.d.ts +3 -0
  269. package/umd/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +10 -8
  270. package/umd/typings/src/llm-providers/remote/RemoteLlmExecutionToolsOptions.d.ts +1 -1
  271. package/umd/typings/src/llm-providers/remote/startRemoteServer.d.ts +2 -2
  272. package/umd/typings/src/personas/preparePersona.d.ts +15 -0
  273. package/umd/typings/src/personas/preparePersona.test.d.ts +1 -0
  274. package/umd/typings/src/prepare/PrepareOptions.d.ts +22 -0
  275. package/umd/typings/src/prepare/isPipelinePrepared.d.ts +14 -0
  276. package/umd/typings/src/prepare/isPipelinePrepared.test.d.ts +1 -0
  277. package/umd/typings/src/prepare/preparePipeline.d.ts +16 -0
  278. package/umd/typings/src/prepare/prepareTemplates.d.ts +31 -0
  279. package/umd/typings/src/prepare/unpreparePipeline.d.ts +11 -0
  280. package/umd/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +1 -1
  281. package/umd/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
  282. package/umd/typings/src/scripting/javascript/utils/unknownToString.d.ts +2 -1
  283. package/umd/typings/src/storage/_common/PromptbookStorage.d.ts +25 -0
  284. package/umd/typings/src/storage/_common/PromptbookStorage.test-type.d.ts +5 -0
  285. package/umd/typings/src/storage/files-storage/FilesStorage.d.ts +30 -0
  286. package/umd/typings/src/storage/files-storage/FilesStorageOptions.d.ts +13 -0
  287. package/umd/typings/src/storage/files-storage/utils/nameToSubfolderPath.d.ts +7 -0
  288. package/umd/typings/src/storage/files-storage/utils/nameToSubfolderPath.test.d.ts +1 -0
  289. package/umd/typings/src/storage/local-storage/getLocalStorage.d.ts +9 -0
  290. package/umd/typings/src/storage/local-storage/getSessionStorage.d.ts +9 -0
  291. package/umd/typings/src/storage/memory/MemoryStorage.d.ts +34 -0
  292. package/umd/typings/src/storage/utils/PrefixStorage.d.ts +26 -0
  293. package/umd/typings/src/storage/utils/makePromptbookStorageFromWebStorage.d.ts +11 -0
  294. package/umd/typings/src/types/ModelRequirements.d.ts +71 -11
  295. package/umd/typings/src/types/ModelVariant.d.ts +14 -0
  296. package/umd/typings/src/types/PipelineJson/Expectations.d.ts +6 -2
  297. package/umd/typings/src/types/PipelineJson/KnowledgePieceJson.d.ts +70 -0
  298. package/umd/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +27 -0
  299. package/umd/typings/src/types/PipelineJson/LlmTemplateJson.d.ts +10 -1
  300. package/umd/typings/src/types/PipelineJson/PersonaJson.d.ts +41 -0
  301. package/umd/typings/src/types/PipelineJson/PipelineJson.d.ts +31 -5
  302. package/umd/typings/src/types/PipelineJson/PreparationJson.d.ts +22 -0
  303. package/umd/typings/src/types/PipelineJson/PromptDialogJson.d.ts +8 -2
  304. package/umd/typings/src/types/PipelineJson/PromptTemplateJson.d.ts +5 -1
  305. package/umd/typings/src/types/PipelineJson/PromptTemplateJsonCommon.d.ts +23 -4
  306. package/umd/typings/src/types/PipelineJson/PromptTemplateParameterJson.d.ts +12 -2
  307. package/umd/typings/src/types/PipelineJson/ScriptJson.d.ts +7 -2
  308. package/umd/typings/src/types/PipelineJson/SimpleTemplateJson.d.ts +7 -2
  309. package/umd/typings/src/types/PipelineString.d.ts +1 -1
  310. package/umd/typings/src/types/Prompt.d.ts +54 -10
  311. package/umd/typings/src/types/execution-report/ExecutionReportJson.d.ts +4 -4
  312. package/umd/typings/src/types/execution-report/ExecutionReportStringOptions.d.ts +3 -3
  313. package/umd/typings/src/types/execution-report/countWorkingDuration.d.ts +1 -1
  314. package/umd/typings/src/types/typeAliases.d.ts +114 -15
  315. package/umd/typings/src/utils/FromtoItems.d.ts +3 -3
  316. package/umd/typings/src/utils/currentDate.d.ts +7 -0
  317. package/umd/typings/src/utils/deepClone.d.ts +9 -0
  318. package/umd/typings/src/utils/deepFreeze.d.ts +22 -0
  319. package/umd/typings/src/utils/emojis.d.ts +2 -2
  320. package/umd/typings/src/utils/{extractParameters.d.ts → extractParameterNames.d.ts} +2 -2
  321. package/umd/typings/src/utils/extractParameterNames.test.d.ts +1 -0
  322. package/umd/typings/src/utils/formatNumber.d.ts +1 -1
  323. package/umd/typings/src/utils/isRunningInWhatever.d.ts +3 -0
  324. package/umd/typings/src/utils/markdown/addAutoGeneratedSection.d.ts +3 -3
  325. package/umd/typings/src/utils/markdown/createMarkdownChart.d.ts +7 -10
  326. package/umd/typings/src/utils/markdown/createMarkdownTable.d.ts +1 -1
  327. package/umd/typings/src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts +1 -0
  328. package/umd/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +9 -2
  329. package/umd/typings/src/utils/markdown/extractOneBlockFromMarkdown.d.ts +1 -1
  330. package/umd/typings/src/utils/markdown/parseMarkdownSection.d.ts +3 -3
  331. package/umd/typings/src/utils/normalization/parseKeywords.d.ts +2 -1
  332. package/umd/typings/src/utils/organization/TODO_USE.d.ts +12 -0
  333. package/umd/typings/src/utils/organization/TODO_any.d.ts +6 -0
  334. package/umd/typings/src/utils/organization/TODO_object.d.ts +6 -0
  335. package/umd/typings/src/utils/organization/TODO_unknown.d.ts +6 -0
  336. package/umd/typings/src/utils/organization/___.d.ts +6 -0
  337. package/{esm/typings/src/utils → umd/typings/src/utils/organization}/just.d.ts +5 -1
  338. package/umd/typings/src/utils/organization/keepUnused.d.ts +16 -0
  339. package/umd/typings/src/utils/organization/really_any.d.ts +6 -0
  340. package/umd/typings/src/utils/organization/really_unknown.d.ts +6 -0
  341. package/umd/typings/src/utils/random/randomSeed.d.ts +7 -0
  342. package/umd/typings/src/{execution/utils → utils}/replaceParameters.d.ts +2 -4
  343. package/umd/typings/src/utils/replaceParameters.test.d.ts +1 -0
  344. package/umd/typings/src/utils/sets/difference.d.ts +3 -0
  345. package/umd/typings/src/utils/validators/email/isValidEmail.d.ts +2 -1
  346. package/umd/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -1
  347. package/umd/typings/src/utils/validators/javascriptName/isValidJavascriptName.d.ts +2 -1
  348. package/umd/typings/src/utils/validators/semanticVersion/isValidPromptbookVersion.d.ts +2 -1
  349. package/umd/typings/src/utils/validators/semanticVersion/isValidSemanticVersion.d.ts +2 -1
  350. package/umd/typings/src/utils/validators/url/isValidPipelineUrl.d.ts +2 -1
  351. package/umd/typings/src/utils/validators/url/isValidUrl.d.ts +2 -1
  352. package/umd/typings/src/utils/validators/uuid/isValidUuid.d.ts +2 -1
  353. package/esm/typings/src/collection/constructors/justTestFsImport.d.ts +0 -7
  354. package/esm/typings/src/personas/personaToModelRequirements.d.ts +0 -6
  355. package/esm/typings/src/types/Parameters.d.ts +0 -14
  356. package/esm/typings/src/types/PipelineJson/KnowledgeJson.d.ts +0 -6
  357. package/esm/typings/src/types/PipelineJson/MaterialKnowledgePieceJson.d.ts +0 -28
  358. package/umd/typings/src/collection/constructors/justTestFsImport.d.ts +0 -7
  359. package/umd/typings/src/personas/personaToModelRequirements.d.ts +0 -6
  360. package/umd/typings/src/types/Parameters.d.ts +0 -14
  361. package/umd/typings/src/types/PipelineJson/KnowledgeJson.d.ts +0 -6
  362. package/umd/typings/src/types/PipelineJson/MaterialKnowledgePieceJson.d.ts +0 -28
  363. /package/esm/typings/src/conversion/utils/{extractParametersFromPromptTemplate.test.d.ts → extractParameterNamesFromPromptTemplate.test.d.ts} +0 -0
  364. /package/esm/typings/src/{execution/addPromptResultUsage.test.d.ts → conversion/utils/stringifyPipelineJson.test.d.ts} +0 -0
  365. /package/esm/typings/src/execution/utils/{replaceParameters.test.d.ts → usageToHuman.test.d.ts} +0 -0
  366. /package/esm/typings/src/{utils/extractParameters.test.d.ts → knowledge/prepare-knowledge/_common/prepareKnowledgePieces.test.d.ts} +0 -0
  367. /package/{umd/typings/src/conversion/utils/extractParametersFromPromptTemplate.test.d.ts → esm/typings/src/personas/preparePersona.test.d.ts} +0 -0
  368. /package/esm/typings/src/{utils/postprocessing → postprocessing/utils}/extractBlock.d.ts +0 -0
  369. /package/{umd/typings/src/execution/addPromptResultUsage.test.d.ts → esm/typings/src/prepare/isPipelinePrepared.test.d.ts} +0 -0
  370. /package/{umd/typings/src/execution/utils/replaceParameters.test.d.ts → esm/typings/src/storage/files-storage/utils/nameToSubfolderPath.test.d.ts} +0 -0
  371. /package/{umd/typings/src/utils/extractParameters.test.d.ts → esm/typings/src/utils/extractParameterNames.test.d.ts} +0 -0
  372. /package/umd/typings/src/{utils/postprocessing → postprocessing/utils}/extractBlock.d.ts +0 -0
@@ -0,0 +1,27 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { string_file_path } from '../../../types/typeAliases';
3
+ import type { string_knowledge_source_link } from '../../../types/typeAliases';
4
+ import type { string_markdown } from '../../../types/typeAliases';
5
+ import type { string_markdown_text } from '../../../types/typeAliases';
6
+ import type { string_mime_type } from '../../../types/typeAliases';
7
+ import type { string_mime_type_with_wildcard } from '../../../types/typeAliases';
8
+ import type { string_promptbook_documentation_url } from '../../../types/typeAliases';
9
+ import type { really_unknown } from '../../../utils/organization/really_unknown';
10
+ export type Scraper = {
11
+ readonly description: string_markdown_text;
12
+ readonly documentationUrl: string_promptbook_documentation_url;
13
+ readonly examples: Array<string_file_path>;
14
+ readonly mimeTypes: Array<string_mime_type_with_wildcard>;
15
+ scrape(source: ScraperSourceOptions): Promisable<string_markdown>;
16
+ };
17
+ export type ScraperSourceOptions = {
18
+ readonly source: string_knowledge_source_link;
19
+ readonly mimeType: string_mime_type;
20
+ asJson(): Promise<really_unknown>;
21
+ asText(): Promise<really_unknown>;
22
+ asBlob(): Promise<really_unknown>;
23
+ };
24
+ /**
25
+ * TODO: [🐝] @@@ Annotate all
26
+ * TODO: [🔼] Export via types
27
+ */
@@ -0,0 +1,18 @@
1
+ import type { PrepareOptions } from '../../../prepare/PrepareOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../../types/PipelineJson/KnowledgePieceJson';
3
+ import type { KnowledgeSourceJson } from '../../../types/PipelineJson/KnowledgeSourceJson';
4
+ /**
5
+ * Prepares the knowle
6
+ *
7
+ * @see https://github.com/webgptorg/promptbook/discussions/41
8
+ */
9
+ export declare function prepareKnowledgePieces(knowledgeSources: Array<KnowledgeSourceJson>, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'preparationIds'>>>;
10
+ /**
11
+ * TODO: [🐝][🔼] !!! Export via `@promptbook/core`
12
+ * TODO: [🧊] In future one preparation can take data from previous preparation and save tokens and time
13
+ * Put `knowledgePieces` into `PrepareKnowledgeOptions`
14
+ * TODO: [🪂] More than max things can run in parallel by acident [1,[2a,2b,_],[3a,3b,_]]
15
+ * TODO: [🧠][❎] Do here propper M:N mapping
16
+ * [x] One source can make multiple pieces
17
+ * [ ] One piece can have multiple sources
18
+ */
@@ -1,26 +1,12 @@
1
- import type { LlmExecutionTools } from '../../../execution/LlmExecutionTools';
2
- import type { KnowledgeJson } from '../../../types/PipelineJson/KnowledgeJson';
1
+ import type { PrepareOptions } from '../../../prepare/PrepareOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../../types/PipelineJson/KnowledgePieceJson';
3
3
  import type { string_markdown } from '../../../types/typeAliases';
4
- type PrepareKnowledgeFromMarkdownOptions = {
5
- /**
6
- * The source of the knowledge in markdown format
7
- */
8
- content: string_markdown;
9
- /**
10
- * The LLM tools to use for the conversion and extraction of knowledge
11
- *
12
- * Note: If you want to use multiple LLMs, you can use `joinLlmExecutionTools` to join them first
13
- */
14
- llmTools: LlmExecutionTools;
15
- /**
16
- * If true, the preaparation of knowledge logs additional information
17
- *
18
- * @default false
19
- */
20
- isVerbose?: boolean;
21
- };
22
- export declare function prepareKnowledgeFromMarkdown(options: PrepareKnowledgeFromMarkdownOptions): Promise<KnowledgeJson>;
23
- export {};
24
4
  /**
25
- * 11:11
5
+ * @@@
6
+ */
7
+ export declare function prepareKnowledgeFromMarkdown(knowledgeContent: string_markdown, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>>>;
8
+ /**
9
+ * TODO: [🐝][🔼] !!! Export via `@promptbook/markdown`
10
+ * TODO: [🪂] Do it in parallel 11:11
11
+ * Note: No need to aggregate usage here, it is done by intercepting the llmTools
26
12
  */
@@ -1 +1,4 @@
1
1
  export {};
2
+ /**
3
+ * TODO: [📓] Maybe test all file in samples (not just 10-simple.md)
4
+ */
@@ -1,19 +1,13 @@
1
- import type { LlmExecutionTools } from '../../../execution/LlmExecutionTools';
2
- import type { KnowledgeJson } from '../../../types/PipelineJson/KnowledgeJson';
1
+ import type { PrepareOptions } from '../../../prepare/PrepareOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../../types/PipelineJson/KnowledgePieceJson';
3
3
  import type { string_base64 } from '../../../types/typeAliases';
4
- type PrepareKnowledgeFromPdfOptions = {
5
- /**
6
- * The source of the knowledge in PDF format
7
- */
8
- content: string_base64;
9
- /**
10
- * The LLM tools to use for the conversion and extraction of knowledge
11
- */
12
- llmTools: LlmExecutionTools;
13
- };
14
- export declare function prepareKnowledgeFromPdf(options: PrepareKnowledgeFromPdfOptions): Promise<KnowledgeJson>;
15
- export {};
16
4
  /**
5
+ * @@@
6
+ */
7
+ export declare function prepareKnowledgeFromPdf(content: string_base64, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>>>;
8
+ /**
9
+ * TODO: [🐝][🔼] !!! Export via `@promptbook/pdf`
17
10
  * TODO: [🧺] In future, content can be alse File or Blob BUT for now for wider compatibility its only base64
18
11
  * @see https://stackoverflow.com/questions/14653349/node-js-cant-create-blobs
12
+ * TODO: [🪂] Do it in parallel
19
13
  */
@@ -0,0 +1,31 @@
1
+ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
+ export type CreateLlmToolsFromEnvOptions = {
3
+ /**
4
+ * This will will be passed to the created `LlmExecutionTools`
5
+ *
6
+ * @default false
7
+ */
8
+ isVerbose?: boolean;
9
+ };
10
+ /**
11
+ * @@@
12
+ *
13
+ * Note: This function is not cached, every call creates new instance of `LlmExecutionTools`
14
+ *
15
+ * It looks for environment variables:
16
+ * - `process.env.OPENAI_API_KEY`
17
+ * - `process.env.ANTHROPIC_CLAUDE_API_KEY`
18
+ *
19
+ * @returns @@@
20
+ */
21
+ export declare function createLlmToolsFromEnv(options?: CreateLlmToolsFromEnvOptions): LlmExecutionTools;
22
+ /**
23
+ * TODO: [🔼] !!! Export via `@promptbook/node`
24
+ * TODO: @@@ write discussion about this - wizzard
25
+ * TODO: Add Azure
26
+ * TODO: [🧠] Which name is better `createLlmToolsFromEnv` or `createLlmToolsFromEnvironment`?
27
+ * TODO: [🧠] Is there some meaningfull way how to test this util
28
+ * TODO: [🧠] Maybe pass env as argument
29
+ * Note: [🟢] This code should never be published outside of `@promptbook/node`
30
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
31
+ */
@@ -0,0 +1,11 @@
1
+ import type { LlmExecutionToolsWithTotalUsage } from './utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
2
+ /**
3
+ * Returns LLM tools for CLI
4
+ *
5
+ * @private within the repository - for CLI utils
6
+ */
7
+ export declare function getLlmToolsForCli(): LlmExecutionToolsWithTotalUsage;
8
+ /**
9
+ * Note: [🟡] This code should never be published outside of `@promptbook/cli`
10
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
11
+ */
@@ -0,0 +1,12 @@
1
+ import type { CreateLlmToolsFromEnvOptions } from './createLlmToolsFromEnv';
2
+ import type { LlmExecutionToolsWithTotalUsage } from './utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
3
+ /**
4
+ * Returns LLM tools for testing purposes
5
+ *
6
+ * @private within the repository - JUST FOR TESTS, SCRIPTS AND PLAYGROUND
7
+ */
8
+ export declare function getLlmToolsForTestingAndScriptsAndPlayground(options?: CreateLlmToolsFromEnvOptions): LlmExecutionToolsWithTotalUsage;
9
+ /**
10
+ * Note: [⚪] This should never be in any released package
11
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
12
+ */
@@ -0,0 +1,29 @@
1
+ import type { PromptResult } from '../../../../execution/PromptResult';
2
+ import type { Prompt } from '../../../../types/Prompt';
3
+ import type { string_date_iso8601 } from '../../../../types/typeAliases';
4
+ import type { string_promptbook_version } from '../../../../version';
5
+ /**
6
+ * @@@
7
+ */
8
+ export type CacheItem = {
9
+ /**
10
+ * @@@
11
+ */
12
+ date: string_date_iso8601;
13
+ /**
14
+ * @@@
15
+ */
16
+ promptbookVersion: string_promptbook_version;
17
+ /**
18
+ * @@@
19
+ */
20
+ prompt: Prompt;
21
+ /**
22
+ * @@@
23
+ */
24
+ promptResult: PromptResult;
25
+ };
26
+ /**
27
+ * TODO: [🧠] Should be this exported alongsite `cacheLlmTools` through `@promptbook/utils` OR through `@promptbook/types`
28
+ * TODO: [🛫] `prompt` is NOT fully serializable as JSON, it contains functions which are not serializable, fix it
29
+ */
@@ -0,0 +1,10 @@
1
+ import type { PromptbookStorage } from '../../../../storage/_common/PromptbookStorage';
2
+ import type { CacheItem } from './CacheItem';
3
+ export type CacheLlmToolsOptions = {
4
+ /**
5
+ * @@@
6
+ *
7
+ * @default MemoryStorage
8
+ */
9
+ storage: PromptbookStorage<CacheItem>;
10
+ };
@@ -0,0 +1,19 @@
1
+ import type { LlmExecutionTools } from '../../../../execution/LlmExecutionTools';
2
+ import type { CacheLlmToolsOptions } from './CacheLlmToolsOptions';
3
+ /**
4
+ * Intercepts LLM tools and counts total usage of the tools
5
+ *
6
+ * Note: It can take extended `LlmExecutionTools` and cache the
7
+ *
8
+ * @param llmTools LLM tools to be intercepted with usage counting, it can contain extra methods like `totalUsage`
9
+ * @returns LLM tools with same functionality with added total cost counting
10
+ */
11
+ export declare function cacheLlmTools<TLlmTools extends LlmExecutionTools>(llmTools: TLlmTools, options?: Partial<CacheLlmToolsOptions>): TLlmTools;
12
+ /**
13
+ * TODO: [🔼] !!! Export via `@promptbook/core`
14
+ * TODO: [🧠][💸] Maybe make some common abstraction `interceptLlmTools` and use here (or use javascript Proxy?)
15
+ * TODO: [🧠] Is there some meaningfull way how to test this util
16
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
17
+ * @@@ write discussion about this and storages
18
+ * @@@ write how to combine multiple interceptors
19
+ */
@@ -0,0 +1,14 @@
1
+ import type { LlmExecutionTools } from '../../../../execution/LlmExecutionTools';
2
+ import type { PromptResultUsage } from '../../../../execution/PromptResultUsage';
3
+ /**
4
+ * LLM tools with option to get total usage of the execution
5
+ */
6
+ export type LlmExecutionToolsWithTotalUsage = LlmExecutionTools & {
7
+ /**
8
+ * Total cost of the execution
9
+ */
10
+ totalUsage: PromptResultUsage;
11
+ };
12
+ /**
13
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
14
+ */
@@ -0,0 +1,17 @@
1
+ import type { LlmExecutionTools } from '../../../../execution/LlmExecutionTools';
2
+ import type { LlmExecutionToolsWithTotalUsage } from './LlmExecutionToolsWithTotalUsage';
3
+ /**
4
+ * Intercepts LLM tools and counts total usage of the tools
5
+ *
6
+ * @param llmTools LLM tools to be intercepted with usage counting
7
+ * @returns LLM tools with same functionality with added total cost counting
8
+ */
9
+ export declare function countTotalUsage(llmTools: LlmExecutionTools): LlmExecutionToolsWithTotalUsage;
10
+ /**
11
+ * TODO: [🔼] !!! Export via `@promptbookcore/`
12
+ * TODO: [🧠][💸] Maybe make some common abstraction `interceptLlmTools` and use here (or use javascript Proxy?)
13
+ * TODO: [🧠] Is there some meaningfull way how to test this util
14
+ * TODO: [🧠][🌯] Maybe a way how to hide ability to `get totalUsage`
15
+ * > const [llmToolsWithUsage,getUsage] = countTotalUsage(llmTools);
16
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
17
+ */
@@ -0,0 +1,35 @@
1
+ import type { LlmExecutionTools } from '../../../../execution/LlmExecutionTools';
2
+ import type { PromptResultUsage } from '../../../../execution/PromptResultUsage';
3
+ import type { PromptbookStorage } from '../../../../storage/_common/PromptbookStorage';
4
+ import type { TODO_any } from '../../../../utils/organization/TODO_any';
5
+ import type { LlmExecutionToolsWithTotalUsage } from './LlmExecutionToolsWithTotalUsage';
6
+ /**
7
+ * Options for `limitTotalUsage`
8
+ */
9
+ type LimitTotalUsageOptions = {
10
+ /**
11
+ * @@@
12
+ *
13
+ * @default ZERO_USAGE
14
+ */
15
+ maxTotalUsage: PromptResultUsage;
16
+ /**
17
+ * @@@
18
+ *
19
+ * @default MemoryStorage
20
+ */
21
+ storage: PromptbookStorage<TODO_any>;
22
+ };
23
+ /**
24
+ * @@@
25
+ */
26
+ export declare function limitTotalUsage(llmTools: LlmExecutionTools, options?: Partial<LimitTotalUsageOptions>): LlmExecutionToolsWithTotalUsage;
27
+ export {};
28
+ /**
29
+ * TODO: [🔼] !!! Export via `@promptbookcore/`
30
+ * TODO: Maybe internally use `countTotalUsage`
31
+ * TODO: [🧠][💸] Maybe make some common abstraction `interceptLlmTools` and use here (or use javascript Proxy?)
32
+ * TODO: [🧠] Is there some meaningfull way how to test this util
33
+ * TODO: [🧠][🌯] Maybe a way how to hide ability to `get totalUsage`
34
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
35
+ */
@@ -1,6 +1,6 @@
1
1
  import type { AvailableModel } from '../../execution/LlmExecutionTools';
2
2
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
- import type { PromptChatResult } from '../../execution/PromptResult';
3
+ import type { ChatPromptResult } from '../../execution/PromptResult';
4
4
  import type { Prompt } from '../../types/Prompt';
5
5
  import type { string_markdown } from '../../types/typeAliases';
6
6
  import type { string_markdown_text } from '../../types/typeAliases';
@@ -26,7 +26,7 @@ export declare class AnthropicClaudeExecutionTools implements LlmExecutionTools
26
26
  /**
27
27
  * Calls Anthropic Claude API to use a chat model.
28
28
  */
29
- callChatModel(prompt: Pick<Prompt, 'content' | 'modelRequirements'>): Promise<PromptChatResult>;
29
+ callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<ChatPromptResult>;
30
30
  /**
31
31
  * Get the model that should be used as default
32
32
  */
@@ -41,8 +41,9 @@ export declare class AnthropicClaudeExecutionTools implements LlmExecutionTools
41
41
  listModels(): Array<AvailableModel>;
42
42
  }
43
43
  /**
44
- * TODO: !!!! [🍆] JSON mode
44
+ * TODO: [🍆] JSON mode
45
45
  * TODO: [🧠] Maybe handle errors via transformAnthropicError (like transformAzureError)
46
46
  * TODO: Maybe Create some common util for callChatModel and callCompletionModel
47
47
  * TODO: Maybe make custom OpenaiError
48
+ * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
48
49
  */
@@ -1,7 +1,7 @@
1
1
  import type { ClientOptions } from '@anthropic-ai/sdk';
2
2
  import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
3
3
  /**
4
- * Options for AnthropicClaudeExecutionTools
4
+ * Options for `AnthropicClaudeExecutionTools`
5
5
  *
6
6
  * This extends Anthropic's `ClientOptions` with are directly passed to the Anthropic client.
7
7
  */
@@ -9,13 +9,13 @@ import type { number_usd } from '../../types/typeAliases';
9
9
  */
10
10
  export declare const ANTHROPIC_CLAUDE_MODELS: Array<AvailableModel & {
11
11
  pricing?: {
12
- prompt: number_usd;
13
- output: number_usd;
12
+ readonly prompt: number_usd;
13
+ readonly output: number_usd;
14
14
  };
15
15
  }>;
16
16
  /**
17
17
  * Note: [🤖] Add models of new variant
18
- * TODO: !!!! Add embedding models OR Anthropic has only chat+completion models?
18
+ * TODO: [🧠] !!! Add embedding models OR Anthropic has only chat+completion models?
19
19
  * TODO: [🧠] Some mechanism to propagate unsureness
20
20
  * TODO: [🧠][👮‍♀️] Put here more info like description, isVision, trainingDateCutoff, languages, strengths ( Top-level performance, intelligence, fluency, and understanding), contextWindow,...
21
21
  * TODO: [🕚] Make this list dynamic - dynamically can be listed modelNames but not modelVariant, legacy status, context length and pricing
@@ -1,2 +1,5 @@
1
1
  #!/usr/bin/env ts-node
2
2
  export {};
3
+ /**
4
+ * TODO: !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
5
+ */
@@ -1,7 +1,7 @@
1
1
  import type { AvailableModel } from '../../execution/LlmExecutionTools';
2
2
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
- import type { PromptChatResult } from '../../execution/PromptResult';
4
- import type { PromptCompletionResult } from '../../execution/PromptResult';
3
+ import type { ChatPromptResult } from '../../execution/PromptResult';
4
+ import type { CompletionPromptResult } from '../../execution/PromptResult';
5
5
  import type { Prompt } from '../../types/Prompt';
6
6
  import type { string_markdown } from '../../types/typeAliases';
7
7
  import type { string_markdown_text } from '../../types/typeAliases';
@@ -27,11 +27,11 @@ export declare class AzureOpenAiExecutionTools implements LlmExecutionTools {
27
27
  /**
28
28
  * Calls OpenAI API to use a chat model.
29
29
  */
30
- callChatModel(prompt: Pick<Prompt, 'content' | 'modelRequirements'>): Promise<PromptChatResult>;
30
+ callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<ChatPromptResult>;
31
31
  /**
32
32
  * Calls Azure OpenAI API to use a complete model.
33
33
  */
34
- callCompletionModel(prompt: Pick<Prompt, 'content' | 'modelRequirements'>): Promise<PromptCompletionResult>;
34
+ callCompletionModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<CompletionPromptResult>;
35
35
  /**
36
36
  * Changes Azure error (which is not propper Error but object) to propper Error
37
37
  */
@@ -44,4 +44,5 @@ export declare class AzureOpenAiExecutionTools implements LlmExecutionTools {
44
44
  /**
45
45
  * TODO: Maybe Create some common util for callChatModel and callCompletionModel
46
46
  * TODO: Maybe make custom AzureOpenaiError
47
+ * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
47
48
  */
@@ -2,7 +2,7 @@ import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutio
2
2
  import type { string_name } from '../../types/typeAliases';
3
3
  import type { string_token } from '../../types/typeAliases';
4
4
  /**
5
- * Options for AzureOpenAiExecutionTools
5
+ * Options for `AzureOpenAiExecutionTools`
6
6
  *
7
7
  * @see https://oai.azure.com/portal/
8
8
  */
@@ -12,7 +12,7 @@ export type AzureOpenAiExecutionToolsOptions = CommonExecutionToolsOptions & {
12
12
  *
13
13
  * Note: Typically you have one resource and multiple deployments.
14
14
  */
15
- resourceName: string_name;
15
+ readonly resourceName: string_name;
16
16
  /**
17
17
  * The deployment name
18
18
  *
@@ -20,16 +20,16 @@ export type AzureOpenAiExecutionToolsOptions = CommonExecutionToolsOptions & {
20
20
  * Note: This is kind of a modelName in OpenAI terms
21
21
  * Note: Typically you have one resource and multiple deployments.
22
22
  */
23
- deploymentName: string_name;
23
+ readonly deploymentName: string_name;
24
24
  /**
25
25
  * The API key of the Azure OpenAI resource
26
26
  */
27
- apiKey: string_token;
27
+ readonly apiKey: string_token;
28
28
  /**
29
29
  * A unique identifier representing your end-user, which can help Azure OpenAI to monitor
30
30
  * and detect abuse.
31
31
  *
32
32
  * @see https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids (document from OpenAI not Azure, but same concept)
33
33
  */
34
- user?: string_token;
34
+ readonly user?: string_token;
35
35
  };
@@ -1,2 +1,5 @@
1
1
  #!/usr/bin/env ts-node
2
2
  export {};
3
+ /**
4
+ * TODO: Test here that `systemMessage`, `temperature` and `seed` are working correctly
5
+ */
@@ -10,3 +10,6 @@ export declare class LangtailExecutionTools extends OpenAiExecutionTools impleme
10
10
  get title(): string_title & string_markdown_text;
11
11
  get description(): string_markdown;
12
12
  }
13
+ /**
14
+ * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
15
+ */
@@ -7,5 +7,5 @@ import type { OpenAiExecutionToolsOptions } from '../openai/OpenAiExecutionTools
7
7
  */
8
8
  export type LangtailExecutionToolsOptions = OpenAiExecutionToolsOptions;
9
9
  /**
10
- * TODO: !!! Use or remove
10
+ * TODO: !! Use or remove
11
11
  */
@@ -1,8 +1,8 @@
1
1
  import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
2
2
  import type { AvailableModel } from '../../execution/LlmExecutionTools';
3
3
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
4
- import type { PromptChatResult } from '../../execution/PromptResult';
5
- import type { PromptCompletionResult } from '../../execution/PromptResult';
4
+ import type { ChatPromptResult } from '../../execution/PromptResult';
5
+ import type { CompletionPromptResult } from '../../execution/PromptResult';
6
6
  import type { Prompt } from '../../types/Prompt';
7
7
  import type { string_markdown } from '../../types/typeAliases';
8
8
  import type { string_markdown_text } from '../../types/typeAliases';
@@ -18,17 +18,17 @@ export declare class MockedEchoLlmExecutionTools implements LlmExecutionTools {
18
18
  /**
19
19
  * Mocks chat model
20
20
  */
21
- callChatModel(prompt: Pick<Prompt, 'content' | 'modelRequirements'>): Promise<PromptChatResult>;
21
+ callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<ChatPromptResult>;
22
22
  /**
23
23
  * Mocks completion model
24
24
  */
25
- callCompletionModel(prompt: Pick<Prompt, 'content' | 'modelRequirements'>): Promise<PromptCompletionResult>;
25
+ callCompletionModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<CompletionPromptResult>;
26
26
  /**
27
27
  * List all available mocked-models that can be used
28
28
  */
29
29
  listModels(): Array<AvailableModel>;
30
30
  }
31
31
  /**
32
- * TODO: [🕵️‍♀️] Maybe just remove
32
+ * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
33
33
  * TODO: Allow in spaceTrim: nesting with > ${block(prompt.request)}, same as replace params
34
34
  */
@@ -1,9 +1,9 @@
1
1
  import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
2
2
  import type { AvailableModel } from '../../execution/LlmExecutionTools';
3
3
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
4
- import type { PromptChatResult } from '../../execution/PromptResult';
5
- import type { PromptCompletionResult } from '../../execution/PromptResult';
6
- import type { PromptEmbeddingResult } from '../../execution/PromptResult';
4
+ import type { ChatPromptResult } from '../../execution/PromptResult';
5
+ import type { CompletionPromptResult } from '../../execution/PromptResult';
6
+ import type { EmbeddingPromptResult } from '../../execution/PromptResult';
7
7
  import type { Prompt } from '../../types/Prompt';
8
8
  import type { string_markdown } from '../../types/typeAliases';
9
9
  import type { string_markdown_text } from '../../types/typeAliases';
@@ -19,20 +19,20 @@ export declare class MockedFackedLlmExecutionTools implements LlmExecutionTools
19
19
  /**
20
20
  * Fakes chat model
21
21
  */
22
- callChatModel(prompt: Pick<Prompt, 'content' | 'modelRequirements' | 'expectations' | 'postprocessing'>): Promise<PromptChatResult & PromptCompletionResult>;
22
+ callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'expectations' | 'postprocessing'>): Promise<ChatPromptResult & CompletionPromptResult>;
23
23
  /**
24
24
  * Fakes completion model
25
25
  */
26
- callCompletionModel(prompt: Pick<Prompt, 'content' | 'modelRequirements' | 'expectations' | 'postprocessing'>): Promise<PromptCompletionResult>;
26
+ callCompletionModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'expectations' | 'postprocessing'>): Promise<CompletionPromptResult>;
27
27
  /**
28
28
  * Fakes embedding model
29
29
  */
30
- callEmbeddingModel(prompt: Pick<Prompt, 'content' | 'modelRequirements' | 'expectations' | 'postprocessing'>): Promise<PromptEmbeddingResult>;
30
+ callEmbeddingModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'expectations' | 'postprocessing'>): Promise<EmbeddingPromptResult>;
31
31
  /**
32
32
  * List all available fake-models that can be used
33
33
  */
34
34
  listModels(): Array<AvailableModel>;
35
35
  }
36
36
  /**
37
- * TODO: [🕵️‍♀️] Maybe just remove
37
+ * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
38
38
  */
@@ -1,9 +1,11 @@
1
1
  import type { AvailableModel } from '../../execution/LlmExecutionTools';
2
2
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
- import type { PromptChatResult } from '../../execution/PromptResult';
4
- import type { PromptCompletionResult } from '../../execution/PromptResult';
5
- import type { PromptEmbeddingResult } from '../../execution/PromptResult';
6
- import type { Prompt } from '../../types/Prompt';
3
+ import type { ChatPromptResult } from '../../execution/PromptResult';
4
+ import type { CompletionPromptResult } from '../../execution/PromptResult';
5
+ import type { EmbeddingPromptResult } from '../../execution/PromptResult';
6
+ import type { ChatPrompt } from '../../types/Prompt';
7
+ import type { CompletionPrompt } from '../../types/Prompt';
8
+ import type { EmbeddingPrompt } from '../../types/Prompt';
7
9
  import type { string_markdown } from '../../types/typeAliases';
8
10
  import type { string_markdown_text } from '../../types/typeAliases';
9
11
  import type { string_title } from '../../types/typeAliases';
@@ -26,25 +28,27 @@ export declare class MultipleLlmExecutionTools implements LlmExecutionTools {
26
28
  /**
27
29
  * Calls the best available chat model
28
30
  */
29
- callChatModel(prompt: Prompt): Promise<PromptChatResult>;
31
+ callChatModel(prompt: ChatPrompt): Promise<ChatPromptResult>;
30
32
  /**
31
33
  * Calls the best available completion model
32
34
  */
33
- callCompletionModel(prompt: Prompt): Promise<PromptCompletionResult>;
35
+ callCompletionModel(prompt: CompletionPrompt): Promise<CompletionPromptResult>;
34
36
  /**
35
37
  * Calls the best available embedding model
36
38
  */
37
- callEmbeddingModel(prompt: Prompt): Promise<PromptEmbeddingResult>;
39
+ callEmbeddingModel(prompt: EmbeddingPrompt): Promise<EmbeddingPromptResult>;
38
40
  /**
39
41
  * Calls the best available model
40
42
  */
41
43
  private callModelCommon;
42
44
  /**
43
45
  * List all available models that can be used
44
- * This liost is a combination of all available models from all execution tools
46
+ * This lists is a combination of all available models from all execution tools
45
47
  */
46
48
  listModels(): Promise<Array<AvailableModel>>;
47
49
  }
48
50
  /**
49
51
  * TODO: [🧠][🎛] Aggregating multiple models - have result not only from one first aviable model BUT all of them
52
+ * TODO: [🏖] If no llmTools have for example not defined `callCompletionModel` this will still return object with defined `callCompletionModel` which just throws `PipelineExecutionError`, make it undefined instead
53
+ * Look how `countTotalUsage` (and `cacheLlmTools`) implements it
50
54
  */
@@ -14,3 +14,6 @@ import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
14
14
  * Tip: You don't have to use this function directly, just pass an array of LlmExecutionTools to the `ExecutionTools`
15
15
  */
16
16
  export declare function joinLlmExecutionTools(...llmExecutionTools: Array<LlmExecutionTools>): MultipleLlmExecutionTools;
17
+ /**
18
+ * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
19
+ */
@@ -1,8 +1,8 @@
1
1
  import type { AvailableModel } from '../../execution/LlmExecutionTools';
2
2
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
- import type { PromptChatResult } from '../../execution/PromptResult';
4
- import type { PromptCompletionResult } from '../../execution/PromptResult';
5
- import type { PromptEmbeddingResult } from '../../execution/PromptResult';
3
+ import type { ChatPromptResult } from '../../execution/PromptResult';
4
+ import type { CompletionPromptResult } from '../../execution/PromptResult';
5
+ import type { EmbeddingPromptResult } from '../../execution/PromptResult';
6
6
  import type { Prompt } from '../../types/Prompt';
7
7
  import type { string_markdown } from '../../types/typeAliases';
8
8
  import type { string_markdown_text } from '../../types/typeAliases';
@@ -28,15 +28,15 @@ export declare class OpenAiExecutionTools implements LlmExecutionTools {
28
28
  /**
29
29
  * Calls OpenAI API to use a chat model.
30
30
  */
31
- callChatModel(prompt: Pick<Prompt, 'content' | 'modelRequirements' | 'expectFormat'>): Promise<PromptChatResult>;
31
+ callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'expectFormat'>): Promise<ChatPromptResult>;
32
32
  /**
33
33
  * Calls OpenAI API to use a complete model.
34
34
  */
35
- callCompletionModel(prompt: Pick<Prompt, 'content' | 'modelRequirements'>): Promise<PromptCompletionResult>;
35
+ callCompletionModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<CompletionPromptResult>;
36
36
  /**
37
37
  * Calls OpenAI API to use a embedding model
38
38
  */
39
- callEmbeddingModel(prompt: Pick<Prompt, 'content' | 'modelRequirements'>): Promise<PromptEmbeddingResult>;
39
+ callEmbeddingModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<EmbeddingPromptResult>;
40
40
  /**
41
41
  * Get the model that should be used as default
42
42
  */
@@ -62,4 +62,5 @@ export declare class OpenAiExecutionTools implements LlmExecutionTools {
62
62
  * TODO: [🧠][🧙‍♂️] Maybe there can be some wizzard for thoose who want to use just OpenAI
63
63
  * TODO: Maybe Create some common util for callChatModel and callCompletionModel
64
64
  * TODO: Maybe make custom OpenaiError
65
+ * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
65
66
  */