@promptbook/openai 0.72.0-2 → 0.72.0-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 (255) hide show
  1. package/README.md +84 -67
  2. package/esm/index.es.js +148 -37
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/browser.index.d.ts +3 -1
  5. package/esm/typings/src/_packages/cli.index.d.ts +16 -0
  6. package/esm/typings/src/_packages/core.index.d.ts +54 -28
  7. package/esm/typings/src/_packages/documents.index.d.ts +8 -0
  8. package/esm/typings/src/_packages/legacy-documents.index.d.ts +8 -0
  9. package/esm/typings/src/_packages/markdown-utils.index.d.ts +6 -0
  10. package/esm/typings/src/_packages/node.index.d.ts +18 -6
  11. package/esm/typings/src/_packages/pdf.index.d.ts +8 -0
  12. package/esm/typings/src/_packages/types.index.d.ts +57 -33
  13. package/esm/typings/src/_packages/utils.index.d.ts +2 -2
  14. package/esm/typings/src/cli/cli-commands/about.d.ts +1 -1
  15. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  16. package/esm/typings/src/cli/cli-commands/make.d.ts +1 -1
  17. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  18. package/esm/typings/src/cli/cli-commands/test-command.d.ts +13 -0
  19. package/esm/typings/src/cli/main.d.ts +1 -1
  20. package/esm/typings/src/cli/promptbookCli.d.ts +1 -1
  21. package/esm/typings/src/collection/PipelineCollection.d.ts +1 -1
  22. package/esm/typings/src/collection/SimplePipelineCollection.d.ts +2 -2
  23. package/esm/typings/src/collection/collectionToJson.d.ts +1 -1
  24. package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +11 -6
  25. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +1 -1
  26. package/esm/typings/src/collection/constructors/createCollectionFromPromise.d.ts +1 -1
  27. package/esm/typings/src/collection/constructors/createCollectionFromUrl.d.ts +1 -1
  28. package/esm/typings/src/commands/EXPECT/expectCommandParser.d.ts +1 -1
  29. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +5 -1
  30. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +1 -1
  31. package/esm/typings/src/commands/FORMAT/formatCommandParser.d.ts +1 -1
  32. package/esm/typings/src/commands/JOKER/jokerCommandParser.d.ts +1 -1
  33. package/esm/typings/src/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +1 -1
  34. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.d.ts +11 -0
  35. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.test.d.ts +4 -0
  36. package/esm/typings/src/commands/MODEL/modelCommandParser.d.ts +1 -1
  37. package/esm/typings/src/commands/PARAMETER/parameterCommandParser.d.ts +1 -1
  38. package/esm/typings/src/commands/PERSONA/personaCommandParser.d.ts +1 -1
  39. package/esm/typings/src/commands/POSTPROCESS/postprocessCommandParser.d.ts +1 -1
  40. package/esm/typings/src/commands/PROMPTBOOK_VERSION/promptbookVersionCommandParser.d.ts +1 -1
  41. package/esm/typings/src/commands/TEMPLATE/templateCommandParser.d.ts +1 -1
  42. package/esm/typings/src/commands/URL/urlCommandParser.d.ts +1 -1
  43. package/esm/typings/src/commands/X_ACTION/actionCommandParser.d.ts +1 -1
  44. package/esm/typings/src/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +1 -1
  45. package/esm/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -1
  46. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +5 -5
  47. package/esm/typings/src/config.d.ts +35 -12
  48. package/esm/typings/src/conversion/pipelineStringToJson.d.ts +4 -15
  49. package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +1 -1
  50. package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
  51. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -5
  52. package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceTools.d.ts +2 -2
  53. package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceToolsOptions.d.ts +3 -3
  54. package/esm/typings/src/{knowledge/dialogs → dialogs}/simple-prompt/SimplePromptInterfaceTools.d.ts +6 -6
  55. package/esm/typings/src/errors/AbstractFormatError.d.ts +11 -0
  56. package/esm/typings/src/errors/KnowledgeScrapeError.d.ts +9 -0
  57. package/esm/typings/src/errors/MissingToolsError.d.ts +9 -0
  58. package/esm/typings/src/executables/$provideExecutablesForNode.d.ts +12 -0
  59. package/esm/typings/src/executables/apps/locateLibreoffice.d.ts +11 -0
  60. package/esm/typings/src/executables/apps/locatePandoc.d.ts +11 -0
  61. package/esm/typings/src/executables/locateApp.d.ts +33 -0
  62. package/esm/typings/src/executables/platforms/locateAppOnLinux.d.ts +12 -0
  63. package/esm/typings/src/executables/platforms/locateAppOnMacOs.d.ts +12 -0
  64. package/esm/typings/src/executables/platforms/locateAppOnWindows.d.ts +12 -0
  65. package/esm/typings/src/execution/{CommonExecutionToolsOptions.d.ts → CommonToolsOptions.d.ts} +1 -1
  66. package/esm/typings/src/execution/EmbeddingVector.d.ts +1 -1
  67. package/esm/typings/src/execution/Executables.d.ts +18 -0
  68. package/esm/typings/src/execution/ExecutionTools.d.ts +35 -9
  69. package/esm/typings/src/execution/FilesystemTools.d.ts +9 -0
  70. package/esm/typings/src/execution/LlmExecutionTools.d.ts +2 -2
  71. package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
  72. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +2 -2
  73. package/esm/typings/src/execution/assertsExecutionSuccessful.d.ts +3 -2
  74. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +31 -5
  75. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +3 -0
  76. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +6 -12
  77. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +7 -18
  78. package/esm/typings/src/execution/createPipelineExecutor/{30-executeFormatCells.d.ts → 30-executeFormatSubvalues.d.ts} +2 -6
  79. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +9 -19
  80. package/esm/typings/src/execution/embeddingVectorToString.d.ts +1 -1
  81. package/esm/typings/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +11 -3
  82. package/esm/typings/src/execution/translation/automatic-translate/translateMessages.d.ts +4 -0
  83. package/esm/typings/src/execution/utils/$provideExecutionToolsForNode.d.ts +13 -0
  84. package/esm/typings/src/execution/utils/addUsage.d.ts +1 -1
  85. package/esm/typings/src/execution/utils/forEachAsync.d.ts +2 -1
  86. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +2 -2
  87. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +3 -2
  88. package/esm/typings/src/formats/csv/CsvFormatError.d.ts +10 -0
  89. package/esm/typings/src/llm-providers/_common/{$llmToolsMetadataRegister.d.ts → register/$llmToolsMetadataRegister.d.ts} +4 -1
  90. package/esm/typings/src/llm-providers/_common/{$llmToolsRegister.d.ts → register/$llmToolsRegister.d.ts} +5 -2
  91. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfigurationFromEnv.d.ts → register/$provideLlmToolsConfigurationFromEnv.d.ts} +3 -3
  92. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForCli.d.ts +15 -0
  93. package/esm/typings/src/llm-providers/_common/{getLlmToolsForTestingAndScriptsAndPlayground.d.ts → register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts} +4 -3
  94. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromEnv.d.ts → register/$provideLlmToolsFromEnv.d.ts} +6 -5
  95. package/esm/typings/src/llm-providers/_common/{$registeredLlmToolsMessage.d.ts → register/$registeredLlmToolsMessage.d.ts} +5 -2
  96. package/esm/typings/src/llm-providers/_common/{LlmToolsConfiguration.d.ts → register/LlmToolsConfiguration.d.ts} +6 -5
  97. package/esm/typings/src/llm-providers/_common/{LlmToolsMetadata.d.ts → register/LlmToolsMetadata.d.ts} +5 -4
  98. package/esm/typings/src/llm-providers/_common/{LlmToolsOptions.d.ts → register/LlmToolsOptions.d.ts} +4 -1
  99. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfiguration.d.ts → register/createLlmToolsFromConfiguration.d.ts} +12 -4
  100. package/esm/typings/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +4 -1
  101. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
  102. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +5 -5
  103. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  104. package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -2
  105. package/esm/typings/src/llm-providers/anthropic-claude/register-configuration.d.ts +4 -3
  106. package/esm/typings/src/llm-providers/anthropic-claude/register-constructor.d.ts +4 -3
  107. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +7 -1
  108. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +4 -3
  109. package/esm/typings/src/llm-providers/azure-openai/playground/playground.d.ts +1 -0
  110. package/esm/typings/src/llm-providers/azure-openai/register-configuration.d.ts +4 -3
  111. package/esm/typings/src/llm-providers/azure-openai/register-constructor.d.ts +4 -3
  112. package/esm/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +1 -1
  113. package/esm/typings/src/llm-providers/langtail/playground/playground.d.ts +3 -0
  114. package/esm/typings/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +1 -1
  115. package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +4 -4
  116. package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +4 -4
  117. package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +4 -4
  118. package/esm/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +1 -1
  119. package/esm/typings/src/llm-providers/multiple/playground/playground.d.ts +3 -0
  120. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +1 -2
  121. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -2
  122. package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +4 -4
  123. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  124. package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +2 -1
  125. package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +5 -4
  126. package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +5 -4
  127. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +4 -4
  128. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Request.d.ts +16 -7
  129. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Response.d.ts +4 -4
  130. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Request.d.ts +7 -13
  131. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Response.d.ts +3 -3
  132. package/esm/typings/src/llm-providers/remote/interfaces/RemoteLlmExecutionToolsOptions.d.ts +11 -16
  133. package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +24 -9
  134. package/esm/typings/src/llm-providers/remote/playground/playground.d.ts +3 -0
  135. package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
  136. package/esm/typings/src/personas/preparePersona.d.ts +3 -2
  137. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +49 -0
  138. package/esm/typings/src/prepare/preparePipeline.d.ts +3 -2
  139. package/esm/typings/src/prepare/prepareTemplates.d.ts +4 -3
  140. package/esm/typings/src/scrapers/_common/Converter.d.ts +22 -0
  141. package/esm/typings/src/scrapers/_common/Scraper.d.ts +59 -0
  142. package/esm/typings/src/scrapers/_common/ScraperIntermediateSource.d.ts +11 -0
  143. package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.d.ts +5 -4
  144. package/esm/typings/src/scrapers/_common/register/$provideFilesystemForNode.d.ts +11 -0
  145. package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +12 -0
  146. package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +15 -0
  147. package/esm/typings/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +12 -0
  148. package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +13 -0
  149. package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +13 -0
  150. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +41 -0
  151. package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +12 -0
  152. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +34 -0
  153. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
  154. package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +11 -0
  155. package/esm/typings/src/scrapers/document/DocumentScraper.d.ts +43 -0
  156. package/esm/typings/src/scrapers/document/DocumentScraper.test.d.ts +4 -0
  157. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +20 -0
  158. package/esm/typings/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
  159. package/esm/typings/src/scrapers/document/register-constructor.d.ts +13 -0
  160. package/esm/typings/src/scrapers/document/register-metadata.d.ts +24 -0
  161. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +43 -0
  162. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +4 -0
  163. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +20 -0
  164. package/esm/typings/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
  165. package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +13 -0
  166. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +24 -0
  167. package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +29 -0
  168. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +20 -0
  169. package/esm/typings/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
  170. package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +13 -0
  171. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +24 -0
  172. package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +40 -0
  173. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +20 -0
  174. package/esm/typings/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
  175. package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +13 -0
  176. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +24 -0
  177. package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +2 -2
  178. package/esm/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
  179. package/esm/typings/src/scripting/python/PythonExecutionTools.d.ts +3 -3
  180. package/esm/typings/src/scripting/typescript/TypescriptExecutionTools.d.ts +3 -3
  181. package/esm/typings/src/storage/{files-storage/FilesStorage.d.ts → file-cache-storage/FileCacheStorage.d.ts} +7 -5
  182. package/esm/typings/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +10 -0
  183. package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.d.ts +2 -2
  184. package/esm/typings/src/storage/local-storage/getLocalStorage.d.ts +1 -1
  185. package/esm/typings/src/storage/local-storage/getSessionStorage.d.ts +1 -1
  186. package/esm/typings/src/storage/{utils → memory/utils}/PrefixStorage.d.ts +1 -1
  187. package/esm/typings/src/storage/{utils → memory/utils}/makePromptbookStorageFromWebStorage.d.ts +1 -1
  188. package/esm/typings/src/types/Arrayable.d.ts +1 -1
  189. package/esm/typings/src/types/IntermediateFilesStrategy.d.ts +7 -0
  190. package/esm/typings/src/types/PipelineJson/KnowledgePieceJson.d.ts +4 -4
  191. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +10 -3
  192. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -1
  193. package/esm/typings/src/types/PipelineJson/PersonaJson.d.ts +1 -1
  194. package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +2 -2
  195. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +2 -2
  196. package/esm/typings/src/types/Prompt.d.ts +2 -1
  197. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -4
  198. package/esm/typings/src/types/execution-report/executionReportJsonToString.d.ts +2 -1
  199. package/esm/typings/src/types/typeAliases.d.ts +27 -20
  200. package/esm/typings/src/utils/$Register.d.ts +20 -7
  201. package/esm/typings/src/utils/FromtoItems.d.ts +1 -1
  202. package/esm/typings/src/utils/arrayableToArray.d.ts +1 -1
  203. package/esm/typings/src/utils/emojis.d.ts +1 -1
  204. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +14 -0
  205. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +17 -0
  206. package/esm/typings/src/utils/execCommand/ExecCommandOptions.d.ts +19 -0
  207. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +10 -0
  208. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.test.d.ts +1 -0
  209. package/esm/typings/src/utils/expectation-counters/countSentences.d.ts +1 -1
  210. package/esm/typings/src/utils/files/extensionToMimeType.d.ts +8 -0
  211. package/esm/typings/src/utils/files/extensionToMimeType.test.d.ts +1 -0
  212. package/esm/typings/src/utils/files/getFileExtension.d.ts +8 -0
  213. package/esm/typings/src/utils/files/getFileExtension.test.d.ts +1 -0
  214. package/esm/typings/src/utils/files/isDirectoryExisting.d.ts +14 -0
  215. package/esm/typings/src/utils/files/isDirectoryExisting.test.d.ts +1 -0
  216. package/esm/typings/src/utils/files/isExecutable.d.ts +11 -0
  217. package/esm/typings/src/utils/files/isFileExisting.d.ts +13 -0
  218. package/esm/typings/src/utils/files/isFileExisting.test.d.ts +1 -0
  219. package/esm/typings/src/utils/files/listAllFiles.d.ts +17 -0
  220. package/esm/typings/src/utils/files/listAllFiles.test.d.ts +1 -0
  221. package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +1 -1
  222. package/esm/typings/src/utils/markdown/splitMarkdownIntoSections.d.ts +1 -1
  223. package/esm/typings/src/utils/normalization/IKeywords.d.ts +2 -2
  224. package/esm/typings/src/utils/normalization/parseKeywords.d.ts +2 -2
  225. package/esm/typings/src/utils/normalization/parseKeywordsFromString.d.ts +2 -2
  226. package/esm/typings/src/utils/normalization/searchKeywords.d.ts +2 -2
  227. package/esm/typings/src/utils/organization/TODO_USE.d.ts +1 -1
  228. package/esm/typings/src/utils/organization/keepUnused.d.ts +1 -1
  229. package/esm/typings/src/utils/random/$randomSeed.d.ts +1 -1
  230. package/esm/typings/src/utils/sets/intersection.d.ts +1 -1
  231. package/esm/typings/src/utils/sets/union.d.ts +1 -1
  232. package/esm/typings/src/utils/unwrapResult.d.ts +4 -4
  233. package/esm/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -2
  234. package/package.json +5 -4
  235. package/umd/index.umd.js +148 -37
  236. package/umd/index.umd.js.map +1 -1
  237. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +0 -40
  238. package/esm/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +0 -37
  239. package/esm/typings/src/knowledge/prepare-knowledge/markdown/playground/markdown-knowledge-playground.d.ts +0 -2
  240. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +0 -14
  241. package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +0 -15
  242. package/esm/typings/src/llm-providers/_common/getLlmToolsForCli.d.ts +0 -22
  243. package/esm/typings/src/prepare/PrepareOptions.d.ts +0 -22
  244. package/esm/typings/src/storage/files-storage/FilesStorageOptions.d.ts +0 -10
  245. package/esm/typings/src/utils/files/$isDirectoryExisting.d.ts +0 -15
  246. package/esm/typings/src/utils/files/$isFileExisting.d.ts +0 -14
  247. package/esm/typings/src/utils/files/$listAllFiles.d.ts +0 -17
  248. /package/esm/typings/src/{knowledge/dialogs → dialogs}/user-interface-execution-tools.test.d.ts +0 -0
  249. /package/esm/typings/src/{knowledge/prepare-knowledge/_common/prepareKnowledgePieces.test.d.ts → executables/apps/locateLibreoffice.test.d.ts} +0 -0
  250. /package/esm/typings/src/{knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.test.d.ts → executables/apps/locatePandoc.test.d.ts} +0 -0
  251. /package/esm/typings/src/{storage/files-storage/utils/nameToSubfolderPath.test.d.ts → executables/locateApp.test.d.ts} +0 -0
  252. /package/esm/typings/src/{utils/files/$isDirectoryExisting.test.d.ts → scrapers/_common/prepareKnowledgePieces.test.d.ts} +0 -0
  253. /package/esm/typings/src/{knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts → scrapers/markdown/MarkdownScraper.test.d.ts} +0 -0
  254. /package/esm/typings/src/{utils/files/$isFileExisting.test.d.ts → storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts} +0 -0
  255. /package/esm/typings/src/utils/{files/$listAllFiles.test.d.ts → execCommand/execCommand.test.d.ts} +0 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![Promptbook logo - cube with letters P and B](./other/design/logo-h1.png) Promptbook
4
4
 
5
- Supercharge your use of large language models
5
+ Build responsible, controlled and transparent applications on top of LLM models!
6
6
 
7
7
 
8
8
 
@@ -20,6 +20,12 @@ Supercharge your use of large language models
20
20
 
21
21
  - ✨ **Support of [OpenAI o1 model](https://openai.com/o1/)**
22
22
 
23
+
24
+
25
+ <blockquote style="color: #ff8811">
26
+ <b>⚠ Warning:</b> This is a pre-release version of the library. It is not yet ready for production use. Please look at <a href="https://www.npmjs.com/package/@promptbook/core?activeTab=versions">latest stable release</a>.
27
+ </blockquote>
28
+
23
29
  ## 📦 Package `@promptbook/openai`
24
30
 
25
31
  - Promptbooks are [divided into several](#-packages) packages, all are published from [single monorepo](https://github.com/webgptorg/promptbook).
@@ -41,31 +47,37 @@ npm install @promptbook/openai
41
47
 
42
48
  ```typescript
43
49
  import { createPipelineExecutor, assertsExecutionSuccessful } from '@promptbook/core';
44
- import { createCollectionFromDirectory } from '@promptbook/node';
50
+ import {
51
+ createCollectionFromDirectory,
52
+ $provideExecutionToolsForNode,
53
+ $provideFilesystemForNode,
54
+ } from '@promptbook/node';
45
55
  import { JavascriptExecutionTools } from '@promptbook/execute-javascript';
46
56
  import { OpenAiExecutionTools } from '@promptbook/openai';
47
57
 
58
+ // ▶ Prepare tools
59
+ const fs = $provideFilesystemForNode();
60
+ const llm = new OpenAiExecutionTools(
61
+ // <- TODO: [🧱] Implement in a functional (not new Class) way
62
+ {
63
+ isVerbose: true,
64
+ apiKey: process.env.OPENAI_API_KEY,
65
+ },
66
+ );
67
+ const executables = await $provideExecutablesForNode();
68
+ const tools = {
69
+ llm,
70
+ fs,
71
+ scrapers: await $provideScrapersForNode({ fs, llm, executables }),
72
+ script: [new JavascriptExecutionTools()],
73
+ };
74
+
48
75
  // ▶ Create whole pipeline collection
49
- const collection = await createCollectionFromDirectory('./promptbook-collection');
76
+ const collection = await createCollectionFromDirectory('./promptbook-collection', tools);
50
77
 
51
78
  // ▶ Get single Pipeline
52
79
  const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.ptbk.md`);
53
80
 
54
- // ▶ Prepare tools
55
- const tools = {
56
- llm: new OpenAiExecutionTools(
57
- // <- TODO: [🧱] Implement in a functional (not new Class) way
58
- {
59
- isVerbose: true,
60
- apiKey: process.env.OPENAI_API_KEY,
61
- },
62
- ),
63
- script: [
64
- new JavascriptExecutionTools(),
65
- // <- TODO: [🧱] Implement in a functional (not new Class) way
66
- ],
67
- };
68
-
69
81
  // ▶ Create executor - the function that will execute the Pipeline
70
82
  const pipelineExecutor = createPipelineExecutor({ pipeline, tools });
71
83
 
@@ -85,34 +97,29 @@ console.info(outputParameters);
85
97
 
86
98
  ## 🤺 Usage with OpenAI`s Assistants (GPTs)
87
99
 
88
- !!!!!!
89
- OpenAiExecutionTools.createAssistantSubtools
100
+ > TODO: Write a guide how to use OpenAI's Assistants with Promptbook
101
+
102
+
90
103
 
91
104
  ## 🧙‍♂️ Connect to LLM providers automatically
92
105
 
93
- You can just use `createLlmToolsFromEnv` function to create LLM tools from environment variables like `OPENAI_API_KEY` and `ANTHROPIC_CLAUDE_API_KEY` automatically.
106
+ You can just use `$provideExecutionToolsForNode` function to create all required tools from environment variables like `OPENAI_API_KEY` and `ANTHROPIC_CLAUDE_API_KEY` automatically.
94
107
 
95
108
  ```typescript
96
109
  import { createPipelineExecutor, createCollectionFromDirectory, assertsExecutionSuccessful } from '@promptbook/core';
97
110
  import { JavascriptExecutionTools } from '@promptbook/execute-javascript';
98
- import { createLlmToolsFromEnv } from '@promptbook/node';
111
+ import { $provideExecutionToolsForNode } from '@promptbook/node';
112
+ import { $provideFilesystemForNode } from '@promptbook/node';
113
+
114
+ // ▶ Prepare tools
115
+ const tools = await $provideExecutionToolsForNode();
99
116
 
100
117
  // ▶ Create whole pipeline collection
101
- const collection = await createCollectionFromDirectory('./promptbook-collection');
118
+ const collection = await createCollectionFromDirectory('./promptbook-collection', tools);
102
119
 
103
120
  // ▶ Get single Pipeline
104
121
  const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.ptbk.md`);
105
122
 
106
- // ▶ Prepare multiple tools
107
- const tools = {
108
- // Note: 🧙‍♂️ Just call `createLlmToolsFromEnv` to automatically connect to all configured providers
109
- llm: createLlmToolsFromEnv(),
110
- script: [
111
- new JavascriptExecutionTools(),
112
- // <- TODO: [🧱] Implement in a functional (not new Class) way
113
- ],
114
- };
115
-
116
123
  // ▶ Create executor - the function that will execute the Pipeline
117
124
  const pipelineExecutor = createPipelineExecutor({ pipeline, tools });
118
125
 
@@ -136,50 +143,56 @@ You can use multiple LLM providers in one Promptbook execution. The best model w
136
143
 
137
144
  ```typescript
138
145
  import { createPipelineExecutor, assertsExecutionSuccessful } from '@promptbook/core';
139
- import { createCollectionFromDirectory } from '@promptbook/node';
146
+ import {
147
+ createCollectionFromDirectory,
148
+ $provideExecutionToolsForNode,
149
+ $provideFilesystemForNode,
150
+ } from '@promptbook/node';
140
151
  import { JavascriptExecutionTools } from '@promptbook/execute-javascript';
141
152
  import { OpenAiExecutionTools } from '@promptbook/openai';
142
153
  import { AnthropicClaudeExecutionTools } from '@promptbook/anthropic-claude';
143
154
  import { AzureOpenAiExecutionTools } from '@promptbook/azure-openai';
144
155
 
156
+ // ▶ Prepare multiple tools
157
+ const fs = $provideFilesystemForNode();
158
+ const llm = [
159
+ // Note: You can use multiple LLM providers in one Promptbook execution.
160
+ // The best model will be chosen automatically according to the prompt and the model's capabilities.
161
+ new OpenAiExecutionTools(
162
+ // <- TODO: [🧱] Implement in a functional (not new Class) way
163
+ {
164
+ apiKey: process.env.OPENAI_API_KEY,
165
+ },
166
+ ),
167
+ new AnthropicClaudeExecutionTools(
168
+ // <- TODO: [🧱] Implement in a functional (not new Class) way
169
+ {
170
+ apiKey: process.env.ANTHROPIC_CLAUDE_API_KEY,
171
+ },
172
+ ),
173
+ new AzureOpenAiExecutionTools(
174
+ // <- TODO: [🧱] Implement in a functional (not new Class) way
175
+ {
176
+ resourceName: process.env.AZUREOPENAI_RESOURCE_NAME,
177
+ deploymentName: process.env.AZUREOPENAI_DEPLOYMENT_NAME,
178
+ apiKey: process.env.AZUREOPENAI_API_KEY,
179
+ },
180
+ ),
181
+ ];
182
+ const executables = await $provideExecutablesForNode();
183
+ const tools = {
184
+ llm,
185
+ fs,
186
+ scrapers: await $provideScrapersForNode({ fs, llm, executables }),
187
+ script: [new JavascriptExecutionTools()],
188
+ };
189
+
145
190
  // ▶ Create whole pipeline collection
146
- const collection = await createCollectionFromDirectory('./promptbook-collection');
191
+ const collection = await createCollectionFromDirectory('./promptbook-collection', tools);
147
192
 
148
193
  // ▶ Get single Pipeline
149
194
  const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.ptbk.md`);
150
195
 
151
- // ▶ Prepare multiple tools
152
- const tools = {
153
- llm: [
154
- // Note: You can use multiple LLM providers in one Promptbook execution.
155
- // The best model will be chosen automatically according to the prompt and the model's capabilities.
156
- new OpenAiExecutionTools(
157
- // <- TODO: [🧱] Implement in a functional (not new Class) way
158
- {
159
- apiKey: process.env.OPENAI_API_KEY,
160
- },
161
- ),
162
- new AnthropicClaudeExecutionTools(
163
- // <- TODO: [🧱] Implement in a functional (not new Class) way
164
- {
165
- apiKey: process.env.ANTHROPIC_CLAUDE_API_KEY,
166
- },
167
- ),
168
- new AzureOpenAiExecutionTools(
169
- // <- TODO: [🧱] Implement in a functional (not new Class) way
170
- {
171
- resourceName: process.env.AZUREOPENAI_RESOURCE_NAME,
172
- deploymentName: process.env.AZUREOPENAI_DEPLOYMENT_NAME,
173
- apiKey: process.env.AZUREOPENAI_API_KEY,
174
- },
175
- ),
176
- ],
177
- script: [
178
- new JavascriptExecutionTools(),
179
- // <- TODO: [🧱] Implement in a functional (not new Class) way
180
- ],
181
- };
182
-
183
196
  // ▶ Create executor - the function that will execute the Pipeline
184
197
  const pipelineExecutor = createPipelineExecutor({ pipeline, tools });
185
198
 
@@ -495,6 +508,10 @@ Or you can install them separately:
495
508
  - **[@promptbook/fake-llm](https://www.npmjs.com/package/@promptbook/fake-llm)** - Mocked execution tools for testing the library and saving the tokens
496
509
  - **[@promptbook/remote-client](https://www.npmjs.com/package/@promptbook/remote-client)** - Remote client for remote execution of promptbooks
497
510
  - **[@promptbook/remote-server](https://www.npmjs.com/package/@promptbook/remote-server)** - Remote server for remote execution of promptbooks
511
+ - **[@promptbook/pdf](https://www.npmjs.com/package/@promptbook/pdf)** - Read knowledge from `.pdf` documents
512
+ - **[@promptbook/documents](https://www.npmjs.com/package/@promptbook/documents)** - Read knowledge from documents like `.docx`, `.odt`,…
513
+ - **[@promptbook/legacy-documents](https://www.npmjs.com/package/@promptbook/legacy-documents)** - Read knowledge from legacy documents like `.doc`, `.rtf`,…
514
+ - **[@promptbook/website-crawler](https://www.npmjs.com/package/@promptbook/website-crawler)** - Crawl knowledge from the web
498
515
  - **[@promptbook/types](https://www.npmjs.com/package/@promptbook/types)** - Just typescript types used in the library
499
516
  - **[@promptbook/cli](https://www.npmjs.com/package/@promptbook/cli)** - Command line interface utilities for promptbooks
500
517
 
package/esm/index.es.js CHANGED
@@ -6,8 +6,8 @@ import OpenAI from 'openai';
6
6
  /**
7
7
  * The version of the Promptbook library
8
8
  */
9
- var PROMPTBOOK_VERSION = '0.72.0-1';
10
- // TODO:[main] !!!! List here all the versions and annotate + put into script
9
+ var PROMPTBOOK_VERSION = '0.72.0-22';
10
+ // TODO: [main] !!!! List here all the versions and annotate + put into script
11
11
 
12
12
  /*! *****************************************************************************
13
13
  Copyright (c) Microsoft Corporation.
@@ -1278,7 +1278,7 @@ var OPENAI_MODELS = $asDeeplyFrozenSerializableJson('OPENAI_MODELS', [
1278
1278
  prompt: computeUsage("$5.00 / 1M tokens"),
1279
1279
  output: computeUsage("$15.00 / 1M tokens"),
1280
1280
  },
1281
- //TODO:[main] !!!!!! Add gpt-4o-mini-2024-07-18 and all others to be up to date
1281
+ //TODO: [main] !!! Add gpt-4o-mini-2024-07-18 and all others to be up to date
1282
1282
  },
1283
1283
  /**/
1284
1284
  /**/
@@ -1308,7 +1308,7 @@ var OPENAI_MODELS = $asDeeplyFrozenSerializableJson('OPENAI_MODELS', [
1308
1308
  modelVariant: 'CHAT',
1309
1309
  modelTitle: 'o1-preview-2024-09-12',
1310
1310
  modelName: 'o1-preview-2024-09-12',
1311
- // <- TODO:[main] !!!!!! Some better system to organize theese date suffixes and versions
1311
+ // <- TODO: [main] !!! Some better system to organize theese date suffixes and versions
1312
1312
  pricing: {
1313
1313
  prompt: computeUsage("$15.00 / 1M tokens"),
1314
1314
  output: computeUsage("$60.00 / 1M tokens"),
@@ -1413,7 +1413,6 @@ var OpenAiExecutionTools = /** @class */ (function () {
1413
1413
  * @param options which are relevant are directly passed to the OpenAI client
1414
1414
  */
1415
1415
  function OpenAiExecutionTools(options) {
1416
- if (options === void 0) { options = {}; }
1417
1416
  this.options = options;
1418
1417
  /**
1419
1418
  * OpenAI API client.
@@ -1441,8 +1440,8 @@ var OpenAiExecutionTools = /** @class */ (function () {
1441
1440
  if (this.client === null) {
1442
1441
  openAiOptions = __assign({}, this.options);
1443
1442
  delete openAiOptions.isVerbose;
1444
- delete openAiOptions.user;
1445
- this.client = new OpenAI(__assign({}, openAiOptions));
1443
+ delete openAiOptions.userId;
1444
+ this.client = new OpenAI(openAiOptions);
1446
1445
  }
1447
1446
  return [2 /*return*/, this.client];
1448
1447
  });
@@ -1489,10 +1488,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
1489
1488
  * Calls OpenAI API to use a chat model.
1490
1489
  */
1491
1490
  OpenAiExecutionTools.prototype.callChatModel = function (prompt) {
1491
+ var _a;
1492
1492
  return __awaiter(this, void 0, void 0, function () {
1493
1493
  var content, parameters, modelRequirements, format, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
1494
- return __generator(this, function (_a) {
1495
- switch (_a.label) {
1494
+ var _this = this;
1495
+ return __generator(this, function (_b) {
1496
+ switch (_b.label) {
1496
1497
  case 0:
1497
1498
  if (this.options.isVerbose) {
1498
1499
  console.info('💬 OpenAI callChatModel call', { prompt: prompt });
@@ -1500,7 +1501,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1500
1501
  content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements, format = prompt.format;
1501
1502
  return [4 /*yield*/, this.getClient()];
1502
1503
  case 1:
1503
- client = _a.sent();
1504
+ client = _b.sent();
1504
1505
  // TODO: [☂] Use here more modelRequirements
1505
1506
  if (modelRequirements.modelVariant !== 'CHAT') {
1506
1507
  throw new PipelineExecutionError('Use callChatModel only for CHAT variant');
@@ -1532,14 +1533,19 @@ var OpenAiExecutionTools = /** @class */ (function () {
1532
1533
  role: 'user',
1533
1534
  content: rawPromptContent,
1534
1535
  },
1535
- ], false), user: this.options.user });
1536
+ ], false), user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString() });
1536
1537
  start = getCurrentIsoDate();
1537
1538
  if (this.options.isVerbose) {
1538
1539
  console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
1539
1540
  }
1540
- return [4 /*yield*/, client.chat.completions.create(rawRequest)];
1541
+ return [4 /*yield*/, client.chat.completions.create(rawRequest).catch(function (error) {
1542
+ if (_this.options.isVerbose) {
1543
+ console.info(colors.bgRed('error'), error);
1544
+ }
1545
+ throw error;
1546
+ })];
1541
1547
  case 2:
1542
- rawResponse = _a.sent();
1548
+ rawResponse = _b.sent();
1543
1549
  if (this.options.isVerbose) {
1544
1550
  console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
1545
1551
  }
@@ -1578,10 +1584,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
1578
1584
  * Calls OpenAI API to use a complete model.
1579
1585
  */
1580
1586
  OpenAiExecutionTools.prototype.callCompletionModel = function (prompt) {
1587
+ var _a;
1581
1588
  return __awaiter(this, void 0, void 0, function () {
1582
1589
  var content, parameters, modelRequirements, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
1583
- return __generator(this, function (_a) {
1584
- switch (_a.label) {
1590
+ var _this = this;
1591
+ return __generator(this, function (_b) {
1592
+ switch (_b.label) {
1585
1593
  case 0:
1586
1594
  if (this.options.isVerbose) {
1587
1595
  console.info('🖋 OpenAI callCompletionModel call', { prompt: prompt });
@@ -1589,7 +1597,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1589
1597
  content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements;
1590
1598
  return [4 /*yield*/, this.getClient()];
1591
1599
  case 1:
1592
- client = _a.sent();
1600
+ client = _b.sent();
1593
1601
  // TODO: [☂] Use here more modelRequirements
1594
1602
  if (modelRequirements.modelVariant !== 'COMPLETION') {
1595
1603
  throw new PipelineExecutionError('Use callCompletionModel only for COMPLETION variant');
@@ -1604,14 +1612,19 @@ var OpenAiExecutionTools = /** @class */ (function () {
1604
1612
  // <- Note: [🧆]
1605
1613
  };
1606
1614
  rawPromptContent = replaceParameters(content, __assign(__assign({}, parameters), { modelName: modelName }));
1607
- rawRequest = __assign(__assign({}, modelSettings), { prompt: rawPromptContent, user: this.options.user });
1615
+ rawRequest = __assign(__assign({}, modelSettings), { prompt: rawPromptContent, user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString() });
1608
1616
  start = getCurrentIsoDate();
1609
1617
  if (this.options.isVerbose) {
1610
1618
  console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
1611
1619
  }
1612
- return [4 /*yield*/, client.completions.create(rawRequest)];
1620
+ return [4 /*yield*/, client.completions.create(rawRequest).catch(function (error) {
1621
+ if (_this.options.isVerbose) {
1622
+ console.info(colors.bgRed('error'), error);
1623
+ }
1624
+ throw error;
1625
+ })];
1613
1626
  case 2:
1614
- rawResponse = _a.sent();
1627
+ rawResponse = _b.sent();
1615
1628
  if (this.options.isVerbose) {
1616
1629
  console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
1617
1630
  }
@@ -1649,6 +1662,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1649
1662
  OpenAiExecutionTools.prototype.callEmbeddingModel = function (prompt) {
1650
1663
  return __awaiter(this, void 0, void 0, function () {
1651
1664
  var content, parameters, modelRequirements, client, modelName, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
1665
+ var _this = this;
1652
1666
  return __generator(this, function (_a) {
1653
1667
  switch (_a.label) {
1654
1668
  case 0:
@@ -1673,7 +1687,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
1673
1687
  if (this.options.isVerbose) {
1674
1688
  console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
1675
1689
  }
1676
- return [4 /*yield*/, client.embeddings.create(rawRequest)];
1690
+ return [4 /*yield*/, client.embeddings.create(rawRequest).catch(function (error) {
1691
+ if (_this.options.isVerbose) {
1692
+ console.info(colors.bgRed('error'), error);
1693
+ }
1694
+ throw error;
1695
+ })];
1677
1696
  case 2:
1678
1697
  rawResponse = _a.sent();
1679
1698
  if (this.options.isVerbose) {
@@ -1826,14 +1845,13 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1826
1845
  }
1827
1846
  rawPromptContent = replaceParameters(content, __assign(__assign({}, parameters), { modelName: 'assistant' }));
1828
1847
  rawRequest = {
1829
- // [👨‍👨‍👧‍👧] ...modelSettings,
1830
- assistant_id: 'asst_CJCZzFCbBL0f2D4OWMXVTdBB',
1831
- // <- Note: This is not a private information, just ID of the assistant which is accessible only with correct API key
1848
+ // TODO: [👨‍👨‍👧‍👧] ...modelSettings,
1849
+ // TODO: [👨‍👨‍👧‍👧][🧠] What about system message for assistants, does it make sence - combination of OpenAI assistants with Promptbook Personas
1850
+ assistant_id: this.assistantId,
1832
1851
  thread: {
1833
1852
  messages: [
1834
- // TODO: !!!!!! Unhardcode
1835
- // TODO: !!!!!! Allow threads to be passed
1836
- { role: 'user', content: 'What is the meaning of life? I want breathtaking speech.' },
1853
+ // TODO: [🗯] !!!!!! Allow threads to be passed
1854
+ { role: 'user', content: rawPromptContent },
1837
1855
  ],
1838
1856
  },
1839
1857
  // !!!!!! user: this.options.user,
@@ -1859,7 +1877,7 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1859
1877
  messageDelta.content[0].type === 'text') {
1860
1878
  console.info('messageDelta', (_a = messageDelta.content[0].text) === null || _a === void 0 ? void 0 : _a.value);
1861
1879
  }
1862
- // TODO: !!!!!! report progress
1880
+ // <- TODO: [🐚] Make streaming and running tasks working
1863
1881
  });
1864
1882
  stream.on('messageCreated', function (message) {
1865
1883
  if (_this.options.isVerbose) {
@@ -1891,14 +1909,16 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1891
1909
  // eslint-disable-next-line prefer-const
1892
1910
  complete = getCurrentIsoDate();
1893
1911
  usage = UNCERTAIN_USAGE;
1894
- // TODO: !!!!!!> = computeOpenAiUsage(content, resultContent || '', rawResponse);
1912
+ // <- TODO: [🥘] Compute real usage for assistant
1913
+ // ?> const usage = computeOpenAiUsage(content, resultContent || '', rawResponse);
1895
1914
  if (resultContent === null) {
1896
1915
  throw new PipelineExecutionError('No response message from OpenAI');
1897
1916
  }
1898
1917
  return [2 /*return*/, $asDeeplyFrozenSerializableJson('OpenAiAssistantExecutionTools ChatPromptResult', {
1899
1918
  content: resultContent,
1900
1919
  modelName: 'assistant',
1901
- // <- TODO: !!!!!! Can we detect really used model: rawResponse.model || modelName,
1920
+ // <- TODO: [🥘] Detect used model in assistant
1921
+ // ?> model: rawResponse.model || modelName,
1902
1922
  timing: {
1903
1923
  start: start,
1904
1924
  complete: complete,
@@ -1916,7 +1936,6 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1916
1936
  return OpenAiAssistantExecutionTools;
1917
1937
  }(OpenAiExecutionTools));
1918
1938
  /**
1919
- * TODO: !!!!!! DO not use colors - can be used in browser
1920
1939
  * TODO: [🧠][🧙‍♂️] Maybe there can be some wizzard for thoose who want to use just OpenAI
1921
1940
  * TODO: Maybe make custom OpenAiError
1922
1941
  * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
@@ -1974,6 +1993,85 @@ function $getGlobalScope() {
1974
1993
  return Function('return this')();
1975
1994
  }
1976
1995
 
1996
+ /**
1997
+ * @@@
1998
+ *
1999
+ * @param text @@@
2000
+ * @returns @@@
2001
+ * @example 'HELLO_WORLD'
2002
+ * @example 'I_LOVE_PROMPTBOOK'
2003
+ * @public exported from `@promptbook/utils`
2004
+ */
2005
+ function normalizeTo_SCREAMING_CASE(text) {
2006
+ var e_1, _a;
2007
+ var charType;
2008
+ var lastCharType = 'OTHER';
2009
+ var normalizedName = '';
2010
+ try {
2011
+ for (var text_1 = __values(text), text_1_1 = text_1.next(); !text_1_1.done; text_1_1 = text_1.next()) {
2012
+ var char = text_1_1.value;
2013
+ var normalizedChar = void 0;
2014
+ if (/^[a-z]$/.test(char)) {
2015
+ charType = 'LOWERCASE';
2016
+ normalizedChar = char.toUpperCase();
2017
+ }
2018
+ else if (/^[A-Z]$/.test(char)) {
2019
+ charType = 'UPPERCASE';
2020
+ normalizedChar = char;
2021
+ }
2022
+ else if (/^[0-9]$/.test(char)) {
2023
+ charType = 'NUMBER';
2024
+ normalizedChar = char;
2025
+ }
2026
+ else {
2027
+ charType = 'OTHER';
2028
+ normalizedChar = '_';
2029
+ }
2030
+ if (charType !== lastCharType &&
2031
+ !(lastCharType === 'UPPERCASE' && charType === 'LOWERCASE') &&
2032
+ !(lastCharType === 'NUMBER') &&
2033
+ !(charType === 'NUMBER')) {
2034
+ normalizedName += '_';
2035
+ }
2036
+ normalizedName += normalizedChar;
2037
+ lastCharType = charType;
2038
+ }
2039
+ }
2040
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
2041
+ finally {
2042
+ try {
2043
+ if (text_1_1 && !text_1_1.done && (_a = text_1.return)) _a.call(text_1);
2044
+ }
2045
+ finally { if (e_1) throw e_1.error; }
2046
+ }
2047
+ normalizedName = normalizedName.replace(/_+/g, '_');
2048
+ normalizedName = normalizedName.replace(/_?\/_?/g, '/');
2049
+ normalizedName = normalizedName.replace(/^_/, '');
2050
+ normalizedName = normalizedName.replace(/_$/, '');
2051
+ return normalizedName;
2052
+ }
2053
+ /**
2054
+ * TODO: Tests
2055
+ * > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'Moje tabule' })).toEqual('/VtG7sR9rRJqwNEdM2/Moje tabule');
2056
+ * > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: 'ěščřžžýáíúů' })).toEqual('/VtG7sR9rRJqwNEdM2/escrzyaieuu');
2057
+ * > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj');
2058
+ * > expect(encodeRoutePath({ uriId: 'VtG7sR9rRJqwNEdM2', name: ' ahoj_ahojAhoj ahoj ' })).toEqual('/VtG7sR9rRJqwNEdM2/ahoj-ahoj-ahoj-ahoj');
2059
+ * TODO: [🌺] Use some intermediate util splitWords
2060
+ */
2061
+
2062
+ /**
2063
+ * @@@
2064
+ *
2065
+ * @param text @@@
2066
+ * @returns @@@
2067
+ * @example 'hello_world'
2068
+ * @example 'i_love_promptbook'
2069
+ * @public exported from `@promptbook/utils`
2070
+ */
2071
+ function normalizeTo_snake_case(text) {
2072
+ return normalizeTo_SCREAMING_CASE(text).toLowerCase();
2073
+ }
2074
+
1977
2075
  /**
1978
2076
  * Register is @@@
1979
2077
  *
@@ -1982,9 +2080,9 @@ function $getGlobalScope() {
1982
2080
  * @private internal utility, exported are only signleton instances of this class
1983
2081
  */
1984
2082
  var $Register = /** @class */ (function () {
1985
- function $Register(storageName) {
1986
- this.storageName = storageName;
1987
- storageName = "_promptbook_".concat(storageName);
2083
+ function $Register(registerName) {
2084
+ this.registerName = registerName;
2085
+ var storageName = "_promptbook_".concat(normalizeTo_snake_case(registerName));
1988
2086
  var globalScope = $getGlobalScope();
1989
2087
  if (globalScope[storageName] === undefined) {
1990
2088
  globalScope[storageName] = [];
@@ -1995,11 +2093,10 @@ var $Register = /** @class */ (function () {
1995
2093
  this.storage = globalScope[storageName];
1996
2094
  }
1997
2095
  $Register.prototype.list = function () {
1998
- // <- TODO: ReadonlyDeep<Array<TRegistered>>
2096
+ // <- TODO: ReadonlyDeep<ReadonlyArray<TRegistered>>
1999
2097
  return this.storage;
2000
2098
  };
2001
2099
  $Register.prototype.register = function (registered) {
2002
- // <- TODO: What to return here
2003
2100
  var packageName = registered.packageName, className = registered.className;
2004
2101
  var existingRegistrationIndex = this.storage.findIndex(function (item) { return item.packageName === packageName && item.className === className; });
2005
2102
  var existingRegistration = this.storage[existingRegistrationIndex];
@@ -2009,6 +2106,17 @@ var $Register = /** @class */ (function () {
2009
2106
  else {
2010
2107
  this.storage[existingRegistrationIndex] = registered;
2011
2108
  }
2109
+ return {
2110
+ registerName: this.registerName,
2111
+ packageName: packageName,
2112
+ className: className,
2113
+ get isDestroyed() {
2114
+ return false;
2115
+ },
2116
+ destroy: function () {
2117
+ throw new NotYetImplementedError("Registration to ".concat(this.registerName, " is permanent in this version of Promptbook"));
2118
+ },
2119
+ };
2012
2120
  };
2013
2121
  return $Register;
2014
2122
  }());
@@ -2021,11 +2129,14 @@ var $Register = /** @class */ (function () {
2021
2129
  * @public exported from `@promptbook/core`
2022
2130
  */
2023
2131
  var $llmToolsRegister = new $Register('llm_execution_tools_constructors');
2132
+ /**
2133
+ * TODO: [®] DRY Register logic
2134
+ */
2024
2135
 
2025
2136
  /**
2026
- * @@@ registration2
2137
+ * Registration of LLM provider
2027
2138
  *
2028
- * Note: [🏐] Configurations registrations are done in @@@ BUT constructor @@@
2139
+ * Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available LLM tools
2029
2140
  *
2030
2141
  * @public exported from `@promptbook/openai`
2031
2142
  * @public exported from `@promptbook/cli`