@promptbook/openai 0.72.0-0 → 0.72.0-10

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 (247) hide show
  1. package/README.md +88 -70
  2. package/esm/index.es.js +316 -151
  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 +24 -0
  6. package/esm/typings/src/_packages/core.index.d.ts +47 -15
  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 +16 -6
  11. package/esm/typings/src/_packages/openai.index.d.ts +4 -0
  12. package/esm/typings/src/_packages/pdf.index.d.ts +8 -0
  13. package/esm/typings/src/_packages/types.index.d.ts +61 -27
  14. package/esm/typings/src/_packages/utils.index.d.ts +4 -4
  15. package/esm/typings/src/_packages/website-crawler.index.d.ts +8 -0
  16. package/esm/typings/src/cli/cli-commands/about.d.ts +1 -1
  17. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  18. package/esm/typings/src/cli/cli-commands/make.d.ts +1 -1
  19. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  20. package/esm/typings/src/cli/cli-commands/test-command.d.ts +13 -0
  21. package/esm/typings/src/cli/main.d.ts +1 -1
  22. package/esm/typings/src/cli/promptbookCli.d.ts +1 -1
  23. package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +11 -6
  24. package/esm/typings/src/collection/constructors/createCollectionFromUrl.d.ts +1 -1
  25. package/esm/typings/src/commands/EXPECT/expectCommandParser.d.ts +1 -1
  26. package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +3 -2
  27. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +27 -0
  28. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -2
  29. package/esm/typings/src/commands/FORMAT/formatCommandParser.d.ts +1 -1
  30. package/esm/typings/src/commands/JOKER/jokerCommandParser.d.ts +1 -1
  31. package/esm/typings/src/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +1 -1
  32. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.d.ts +11 -0
  33. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.test.d.ts +4 -0
  34. package/esm/typings/src/commands/MODEL/modelCommandParser.d.ts +1 -1
  35. package/esm/typings/src/commands/PARAMETER/parameterCommandParser.d.ts +1 -1
  36. package/esm/typings/src/commands/PERSONA/personaCommandParser.d.ts +1 -1
  37. package/esm/typings/src/commands/POSTPROCESS/postprocessCommandParser.d.ts +1 -1
  38. package/esm/typings/src/commands/PROMPTBOOK_VERSION/promptbookVersionCommandParser.d.ts +1 -1
  39. package/esm/typings/src/commands/TEMPLATE/templateCommandParser.d.ts +1 -1
  40. package/esm/typings/src/commands/URL/urlCommandParser.d.ts +1 -1
  41. package/esm/typings/src/commands/X_ACTION/actionCommandParser.d.ts +1 -1
  42. package/esm/typings/src/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +1 -1
  43. package/esm/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -1
  44. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +16 -1
  45. package/esm/typings/src/config.d.ts +30 -1
  46. package/esm/typings/src/conversion/pipelineStringToJson.d.ts +4 -15
  47. package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +1 -1
  48. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
  49. package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
  50. package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
  51. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +10 -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/execution/{CommonExecutionToolsOptions.d.ts → CommonToolsOptions.d.ts} +1 -1
  59. package/esm/typings/src/execution/ExecutionTools.d.ts +29 -9
  60. package/esm/typings/src/execution/FilesystemTools.d.ts +9 -0
  61. package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
  62. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +9 -8
  63. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +45 -0
  64. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +23 -0
  65. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +29 -0
  66. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +13 -0
  67. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +58 -0
  68. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +60 -0
  69. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +15 -0
  70. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +69 -0
  71. package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
  72. package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
  73. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
  74. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
  75. package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
  76. package/esm/typings/src/execution/embeddingVectorToString.d.ts +1 -1
  77. package/esm/typings/src/execution/translation/automatic-translate/translateMessages.d.ts +4 -0
  78. package/esm/typings/src/execution/utils/$provideExecutionToolsForNode.d.ts +13 -0
  79. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  80. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -0
  81. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  82. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +14 -15
  83. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +31 -0
  84. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
  85. package/esm/typings/src/formats/csv/CsvFormatError.d.ts +10 -0
  86. package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
  87. package/esm/typings/src/formats/index.d.ts +1 -1
  88. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
  89. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
  90. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
  91. package/esm/typings/src/llm-providers/_common/{$llmToolsMetadataRegister.d.ts → register/$llmToolsMetadataRegister.d.ts} +4 -1
  92. package/esm/typings/src/llm-providers/_common/{$llmToolsRegister.d.ts → register/$llmToolsRegister.d.ts} +5 -2
  93. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfigurationFromEnv.d.ts → register/$provideLlmToolsConfigurationFromEnv.d.ts} +3 -3
  94. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForCli.d.ts +15 -0
  95. package/esm/typings/src/llm-providers/_common/{getLlmToolsForTestingAndScriptsAndPlayground.d.ts → register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts} +4 -3
  96. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromEnv.d.ts → register/$provideLlmToolsFromEnv.d.ts} +6 -5
  97. package/esm/typings/src/llm-providers/_common/{$registeredLlmToolsMessage.d.ts → register/$registeredLlmToolsMessage.d.ts} +5 -2
  98. package/esm/typings/src/llm-providers/_common/{LlmToolsConfiguration.d.ts → register/LlmToolsConfiguration.d.ts} +5 -4
  99. package/esm/typings/src/llm-providers/_common/{LlmToolsMetadata.d.ts → register/LlmToolsMetadata.d.ts} +5 -4
  100. package/esm/typings/src/llm-providers/_common/{LlmToolsOptions.d.ts → register/LlmToolsOptions.d.ts} +4 -1
  101. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfiguration.d.ts → register/createLlmToolsFromConfiguration.d.ts} +5 -4
  102. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +5 -5
  103. package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -2
  104. package/esm/typings/src/llm-providers/anthropic-claude/register-configuration.d.ts +4 -3
  105. package/esm/typings/src/llm-providers/anthropic-claude/register-constructor.d.ts +4 -3
  106. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +6 -0
  107. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +4 -3
  108. package/esm/typings/src/llm-providers/azure-openai/playground/playground.d.ts +1 -0
  109. package/esm/typings/src/llm-providers/azure-openai/register-configuration.d.ts +4 -3
  110. package/esm/typings/src/llm-providers/azure-openai/register-constructor.d.ts +4 -3
  111. package/esm/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +1 -1
  112. package/esm/typings/src/llm-providers/langtail/playground/playground.d.ts +3 -0
  113. package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +3 -3
  114. package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +3 -3
  115. package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +1 -0
  116. package/esm/typings/src/llm-providers/multiple/playground/playground.d.ts +3 -0
  117. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +2 -2
  118. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +1 -1
  119. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +10 -1
  120. package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +4 -4
  121. package/esm/typings/src/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +15 -0
  122. package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +2 -1
  123. package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +11 -1
  124. package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +11 -1
  125. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +3 -3
  126. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Request.d.ts +16 -7
  127. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Response.d.ts +2 -2
  128. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Request.d.ts +7 -13
  129. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Response.d.ts +1 -1
  130. package/esm/typings/src/llm-providers/remote/interfaces/RemoteLlmExecutionToolsOptions.d.ts +11 -16
  131. package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +23 -9
  132. package/esm/typings/src/llm-providers/remote/playground/playground.d.ts +3 -0
  133. package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
  134. package/esm/typings/src/personas/preparePersona.d.ts +3 -2
  135. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +68 -0
  136. package/esm/typings/src/prepare/preparePipeline.d.ts +3 -2
  137. package/esm/typings/src/prepare/prepareTemplates.d.ts +3 -2
  138. package/esm/typings/src/scrapers/_common/Converter.d.ts +22 -0
  139. package/esm/typings/src/scrapers/_common/Scraper.d.ts +66 -0
  140. package/esm/typings/src/scrapers/_common/ScraperIntermediateSource.d.ts +11 -0
  141. package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.d.ts +5 -4
  142. package/esm/typings/src/scrapers/_common/register/$provideFilesystemForNode.d.ts +11 -0
  143. package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +12 -0
  144. package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +15 -0
  145. package/esm/typings/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +12 -0
  146. package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +13 -0
  147. package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +13 -0
  148. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +41 -0
  149. package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +12 -0
  150. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +34 -0
  151. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
  152. package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +11 -0
  153. package/esm/typings/src/scrapers/document/DocumentScraper.d.ts +43 -0
  154. package/esm/typings/src/scrapers/document/DocumentScraper.test.d.ts +4 -0
  155. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +20 -0
  156. package/esm/typings/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
  157. package/esm/typings/src/scrapers/document/register-constructor.d.ts +13 -0
  158. package/esm/typings/src/scrapers/document/register-metadata.d.ts +24 -0
  159. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +43 -0
  160. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +4 -0
  161. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +20 -0
  162. package/esm/typings/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
  163. package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +13 -0
  164. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +24 -0
  165. package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +29 -0
  166. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +20 -0
  167. package/esm/typings/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
  168. package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +13 -0
  169. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +24 -0
  170. package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +40 -0
  171. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +20 -0
  172. package/esm/typings/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
  173. package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +13 -0
  174. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +24 -0
  175. package/esm/typings/src/scrapers/website/WebsiteScraper.d.ts +47 -0
  176. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +20 -0
  177. package/esm/typings/src/scrapers/website/playground/website-scraper-playground.d.ts +5 -0
  178. package/esm/typings/src/scrapers/website/register-constructor.d.ts +13 -0
  179. package/esm/typings/src/scrapers/website/register-metadata.d.ts +24 -0
  180. package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +12 -0
  181. package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +2 -2
  182. package/esm/typings/src/scripting/python/PythonExecutionTools.d.ts +3 -3
  183. package/esm/typings/src/scripting/typescript/TypescriptExecutionTools.d.ts +3 -3
  184. package/esm/typings/src/storage/{files-storage/FilesStorage.d.ts → file-cache-storage/FileCacheStorage.d.ts} +7 -5
  185. package/esm/typings/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +10 -0
  186. package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.d.ts +1 -1
  187. package/esm/typings/src/storage/local-storage/getLocalStorage.d.ts +1 -1
  188. package/esm/typings/src/storage/local-storage/getSessionStorage.d.ts +1 -1
  189. package/esm/typings/src/storage/{utils → memory/utils}/PrefixStorage.d.ts +1 -1
  190. package/esm/typings/src/storage/{utils → memory/utils}/makePromptbookStorageFromWebStorage.d.ts +1 -1
  191. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +9 -2
  192. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
  193. package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +2 -2
  194. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
  195. package/esm/typings/src/types/Prompt.d.ts +1 -0
  196. package/esm/typings/src/types/execution-report/executionReportJsonToString.d.ts +2 -1
  197. package/esm/typings/src/types/typeAliases.d.ts +27 -20
  198. package/esm/typings/src/utils/$Register.d.ts +19 -6
  199. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +14 -0
  200. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +17 -0
  201. package/esm/typings/src/utils/execCommand/IExecCommandOptions.d.ts +23 -0
  202. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +10 -0
  203. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  204. package/esm/typings/src/utils/files/extensionToMimeType.d.ts +8 -0
  205. package/esm/typings/src/utils/files/getFileExtension.d.ts +8 -0
  206. package/esm/typings/src/utils/files/isDirectoryExisting.d.ts +14 -0
  207. package/esm/typings/src/utils/files/isFileExisting.d.ts +13 -0
  208. package/esm/typings/src/utils/files/isFileExisting.test.d.ts +1 -0
  209. package/esm/typings/src/utils/files/listAllFiles.d.ts +17 -0
  210. package/esm/typings/src/utils/files/listAllFiles.test.d.ts +1 -0
  211. package/esm/typings/src/utils/organization/{f.d.ts → empty_object.d.ts} +5 -1
  212. package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -0
  213. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  214. package/esm/typings/src/utils/parameters/extractParameterNames.test.d.ts +1 -0
  215. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  216. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts +1 -0
  217. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  218. package/esm/typings/src/utils/parameters/replaceParameters.test.d.ts +1 -0
  219. package/esm/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -2
  220. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  221. package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
  222. package/package.json +18 -14
  223. package/umd/index.umd.js +321 -154
  224. package/umd/index.umd.js.map +1 -1
  225. package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
  226. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  227. package/esm/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +0 -37
  228. package/esm/typings/src/knowledge/prepare-knowledge/markdown/playground/markdown-knowledge-playground.d.ts +0 -2
  229. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +0 -14
  230. package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +0 -15
  231. package/esm/typings/src/llm-providers/_common/getLlmToolsForCli.d.ts +0 -22
  232. package/esm/typings/src/prepare/PrepareOptions.d.ts +0 -22
  233. package/esm/typings/src/storage/files-storage/FilesStorageOptions.d.ts +0 -10
  234. package/esm/typings/src/utils/files/$isDirectoryExisting.d.ts +0 -15
  235. package/esm/typings/src/utils/files/$isFileExisting.d.ts +0 -14
  236. package/esm/typings/src/utils/files/$listAllFiles.d.ts +0 -17
  237. /package/esm/typings/src/{knowledge/dialogs → dialogs}/user-interface-execution-tools.test.d.ts +0 -0
  238. /package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.test.d.ts +0 -0
  239. /package/esm/typings/src/{knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts → scrapers/markdown/MarkdownScraper.test.d.ts} +0 -0
  240. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → scrapers/website/WebsiteScraper.test.d.ts} +0 -0
  241. /package/esm/typings/src/{knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.test.d.ts → scrapers/website/utils/markdownConverter.test.d.ts} +0 -0
  242. /package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.test.d.ts +0 -0
  243. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → execCommand/execCommand.test.d.ts} +0 -0
  244. /package/esm/typings/src/utils/{files/$isDirectoryExisting.test.d.ts → execCommand/execCommandNormalizeOptions.test.d.ts} +0 -0
  245. /package/esm/typings/src/utils/files/{$isFileExisting.test.d.ts → extensionToMimeType.test.d.ts} +0 -0
  246. /package/esm/typings/src/utils/files/{$listAllFiles.test.d.ts → getFileExtension.test.d.ts} +0 -0
  247. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → files/isDirectoryExisting.test.d.ts} +0 -0
package/esm/index.es.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import colors from 'colors';
2
- import OpenAI from 'openai';
3
2
  import spaceTrim$1, { spaceTrim } from 'spacetrim';
3
+ import OpenAI from 'openai';
4
4
 
5
5
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
6
6
  /**
7
7
  * The version of the Promptbook library
8
8
  */
9
- var PROMPTBOOK_VERSION = '0.68.5';
10
- // TODO:[main] !!!! List here all the versions and annotate + put into script
9
+ var PROMPTBOOK_VERSION = '0.72.0-9';
10
+ // TODO: [main] !!!! List here all the versions and annotate + put into script
11
11
 
12
12
  /*! *****************************************************************************
13
13
  Copyright (c) Microsoft Corporation.
@@ -147,46 +147,37 @@ var $isRunningInBrowser = new Function("\n try {\n return this === win
147
147
  var $isRunningInWebWorker = new Function("\n try {\n if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n return true;\n } else {\n return false;\n }\n } catch (e) {\n return false;\n }\n");
148
148
 
149
149
  /**
150
- * This error indicates errors during the execution of the pipeline
150
+ * This error type indicates that some part of the code is not implemented yet
151
151
  *
152
152
  * @public exported from `@promptbook/core`
153
153
  */
154
- var PipelineExecutionError = /** @class */ (function (_super) {
155
- __extends(PipelineExecutionError, _super);
156
- function PipelineExecutionError(message) {
157
- var _this = _super.call(this, message) || this;
158
- _this.name = 'PipelineExecutionError';
159
- Object.setPrototypeOf(_this, PipelineExecutionError.prototype);
154
+ var NotYetImplementedError = /** @class */ (function (_super) {
155
+ __extends(NotYetImplementedError, _super);
156
+ function NotYetImplementedError(message) {
157
+ var _this = _super.call(this, spaceTrim(function (block) { return "\n ".concat(block(message), "\n\n Note: This feature is not implemented yet but it will be soon.\n\n If you want speed up the implementation or just read more, look here:\n https://github.com/webgptorg/promptbook\n\n Or contact us on me@pavolhejny.com\n\n "); })) || this;
158
+ _this.name = 'NotYetImplementedError';
159
+ Object.setPrototypeOf(_this, NotYetImplementedError.prototype);
160
160
  return _this;
161
161
  }
162
- return PipelineExecutionError;
162
+ return NotYetImplementedError;
163
163
  }(Error));
164
164
 
165
165
  /**
166
- * This error type indicates that the error should not happen and its last check before crashing with some other error
166
+ * This error indicates errors during the execution of the pipeline
167
167
  *
168
168
  * @public exported from `@promptbook/core`
169
169
  */
170
- var UnexpectedError = /** @class */ (function (_super) {
171
- __extends(UnexpectedError, _super);
172
- function UnexpectedError(message) {
173
- var _this = _super.call(this, spaceTrim(function (block) { return "\n ".concat(block(message), "\n\n Note: This error should not happen.\n It's probbably a bug in the pipeline collection\n\n Please report issue:\n https://github.com/webgptorg/promptbook/issues\n\n Or contact us on me@pavolhejny.com\n\n "); })) || this;
174
- _this.name = 'UnexpectedError';
175
- Object.setPrototypeOf(_this, UnexpectedError.prototype);
170
+ var PipelineExecutionError = /** @class */ (function (_super) {
171
+ __extends(PipelineExecutionError, _super);
172
+ function PipelineExecutionError(message) {
173
+ var _this = _super.call(this, message) || this;
174
+ _this.name = 'PipelineExecutionError';
175
+ Object.setPrototypeOf(_this, PipelineExecutionError.prototype);
176
176
  return _this;
177
177
  }
178
- return UnexpectedError;
178
+ return PipelineExecutionError;
179
179
  }(Error));
180
180
 
181
- /**
182
- * Get current date in ISO 8601 format
183
- *
184
- * @private internal utility
185
- */
186
- function getCurrentIsoDate() {
187
- return new Date().toISOString();
188
- }
189
-
190
181
  /**
191
182
  * @@@
192
183
  *
@@ -221,6 +212,84 @@ function $deepFreeze(objectValue) {
221
212
  * TODO: [🧠] Is there a way how to meaningfully test this utility
222
213
  */
223
214
 
215
+ /**
216
+ * Represents the usage with no resources consumed
217
+ *
218
+ * @public exported from `@promptbook/core`
219
+ */
220
+ $deepFreeze({
221
+ price: { value: 0 },
222
+ input: {
223
+ tokensCount: { value: 0 },
224
+ charactersCount: { value: 0 },
225
+ wordsCount: { value: 0 },
226
+ sentencesCount: { value: 0 },
227
+ linesCount: { value: 0 },
228
+ paragraphsCount: { value: 0 },
229
+ pagesCount: { value: 0 },
230
+ },
231
+ output: {
232
+ tokensCount: { value: 0 },
233
+ charactersCount: { value: 0 },
234
+ wordsCount: { value: 0 },
235
+ sentencesCount: { value: 0 },
236
+ linesCount: { value: 0 },
237
+ paragraphsCount: { value: 0 },
238
+ pagesCount: { value: 0 },
239
+ },
240
+ });
241
+ /**
242
+ * Represents the usage with unknown resources consumed
243
+ *
244
+ * @public exported from `@promptbook/core`
245
+ */
246
+ var UNCERTAIN_USAGE = $deepFreeze({
247
+ price: { value: 0, isUncertain: true },
248
+ input: {
249
+ tokensCount: { value: 0, isUncertain: true },
250
+ charactersCount: { value: 0, isUncertain: true },
251
+ wordsCount: { value: 0, isUncertain: true },
252
+ sentencesCount: { value: 0, isUncertain: true },
253
+ linesCount: { value: 0, isUncertain: true },
254
+ paragraphsCount: { value: 0, isUncertain: true },
255
+ pagesCount: { value: 0, isUncertain: true },
256
+ },
257
+ output: {
258
+ tokensCount: { value: 0, isUncertain: true },
259
+ charactersCount: { value: 0, isUncertain: true },
260
+ wordsCount: { value: 0, isUncertain: true },
261
+ sentencesCount: { value: 0, isUncertain: true },
262
+ linesCount: { value: 0, isUncertain: true },
263
+ paragraphsCount: { value: 0, isUncertain: true },
264
+ pagesCount: { value: 0, isUncertain: true },
265
+ },
266
+ });
267
+
268
+ /**
269
+ * Get current date in ISO 8601 format
270
+ *
271
+ * @private internal utility
272
+ */
273
+ function getCurrentIsoDate() {
274
+ return new Date().toISOString();
275
+ }
276
+
277
+ /**
278
+ * This error type indicates that the error should not happen and its last check before crashing with some other error
279
+ *
280
+ * @public exported from `@promptbook/core`
281
+ */
282
+ var UnexpectedError = /** @class */ (function (_super) {
283
+ __extends(UnexpectedError, _super);
284
+ function UnexpectedError(message) {
285
+ var _this = _super.call(this, spaceTrim(function (block) { return "\n ".concat(block(message), "\n\n Note: This error should not happen.\n It's probbably a bug in the pipeline collection\n\n Please report issue:\n https://github.com/webgptorg/promptbook/issues\n\n Or contact us on me@pavolhejny.com\n\n "); })) || this;
286
+ _this.name = 'UnexpectedError';
287
+ Object.setPrototypeOf(_this, UnexpectedError.prototype);
288
+ return _this;
289
+ }
290
+ return UnexpectedError;
291
+ }(Error));
292
+
224
293
  /**
225
294
  * Checks if the value is [🚉] serializable as JSON
226
295
  * If not, throws an UnexpectedError with a rich error message and tracking
@@ -389,6 +458,7 @@ $asDeeplyFrozenSerializableJson('RESERVED_PARAMETER_NAMES', [
389
458
  'samples',
390
459
  'modelName',
391
460
  'currentDate',
461
+ // <- TODO: !!!!! list here all command names
392
462
  // <- TODO: Add more like 'date', 'modelName',...
393
463
  // <- TODO: Add [emoji] + instructions ACRY when adding new reserved parameter
394
464
  ]);
@@ -404,6 +474,18 @@ var RESERVED_PARAMETER_MISSING_VALUE = 'MISSING-' + REPLACING_NONCE;
404
474
  * @private within the repository
405
475
  */
406
476
  var RESERVED_PARAMETER_RESTRICTED = 'RESTRICTED-' + REPLACING_NONCE;
477
+ // <- TODO: [🧜‍♂️]
478
+ /**
479
+ * @@@
480
+ *
481
+ * @public exported from `@promptbook/core`
482
+ */
483
+ Object.freeze({
484
+ delimiter: ',',
485
+ quoteChar: '"',
486
+ newline: '\n',
487
+ skipEmptyLines: true,
488
+ });
407
489
  /**
408
490
  * TODO: [🧠][🧜‍♂️] Maybe join remoteUrl and path into single value
409
491
  */
@@ -1196,7 +1278,7 @@ var OPENAI_MODELS = $asDeeplyFrozenSerializableJson('OPENAI_MODELS', [
1196
1278
  prompt: computeUsage("$5.00 / 1M tokens"),
1197
1279
  output: computeUsage("$15.00 / 1M tokens"),
1198
1280
  },
1199
- //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
1200
1282
  },
1201
1283
  /**/
1202
1284
  /**/
@@ -1226,7 +1308,7 @@ var OPENAI_MODELS = $asDeeplyFrozenSerializableJson('OPENAI_MODELS', [
1226
1308
  modelVariant: 'CHAT',
1227
1309
  modelTitle: 'o1-preview-2024-09-12',
1228
1310
  modelName: 'o1-preview-2024-09-12',
1229
- // <- 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
1230
1312
  pricing: {
1231
1313
  prompt: computeUsage("$15.00 / 1M tokens"),
1232
1314
  output: computeUsage("$60.00 / 1M tokens"),
@@ -1331,7 +1413,6 @@ var OpenAiExecutionTools = /** @class */ (function () {
1331
1413
  * @param options which are relevant are directly passed to the OpenAI client
1332
1414
  */
1333
1415
  function OpenAiExecutionTools(options) {
1334
- if (options === void 0) { options = {}; }
1335
1416
  this.options = options;
1336
1417
  /**
1337
1418
  * OpenAI API client.
@@ -1359,13 +1440,22 @@ var OpenAiExecutionTools = /** @class */ (function () {
1359
1440
  if (this.client === null) {
1360
1441
  openAiOptions = __assign({}, this.options);
1361
1442
  delete openAiOptions.isVerbose;
1362
- delete openAiOptions.user;
1363
- this.client = new OpenAI(__assign({}, openAiOptions));
1443
+ delete openAiOptions.userId;
1444
+ this.client = new OpenAI(openAiOptions);
1364
1445
  }
1365
1446
  return [2 /*return*/, this.client];
1366
1447
  });
1367
1448
  });
1368
1449
  };
1450
+ /**
1451
+ * Create (sub)tools for calling OpenAI API Assistants
1452
+ *
1453
+ * @param assistantId Which assistant to use
1454
+ * @returns Tools for calling OpenAI API Assistants with same token
1455
+ */
1456
+ OpenAiExecutionTools.prototype.createAssistantSubtools = function (assistantId) {
1457
+ return new OpenAiAssistantExecutionTools(__assign(__assign({}, this.options), { assistantId: assistantId }));
1458
+ };
1369
1459
  /**
1370
1460
  * Check the `options` passed to `constructor`
1371
1461
  */
@@ -1398,10 +1488,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
1398
1488
  * Calls OpenAI API to use a chat model.
1399
1489
  */
1400
1490
  OpenAiExecutionTools.prototype.callChatModel = function (prompt) {
1491
+ var _a;
1401
1492
  return __awaiter(this, void 0, void 0, function () {
1402
1493
  var content, parameters, modelRequirements, format, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
1403
- return __generator(this, function (_a) {
1404
- switch (_a.label) {
1494
+ var _this = this;
1495
+ return __generator(this, function (_b) {
1496
+ switch (_b.label) {
1405
1497
  case 0:
1406
1498
  if (this.options.isVerbose) {
1407
1499
  console.info('💬 OpenAI callChatModel call', { prompt: prompt });
@@ -1409,7 +1501,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1409
1501
  content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements, format = prompt.format;
1410
1502
  return [4 /*yield*/, this.getClient()];
1411
1503
  case 1:
1412
- client = _a.sent();
1504
+ client = _b.sent();
1413
1505
  // TODO: [☂] Use here more modelRequirements
1414
1506
  if (modelRequirements.modelVariant !== 'CHAT') {
1415
1507
  throw new PipelineExecutionError('Use callChatModel only for CHAT variant');
@@ -1441,14 +1533,19 @@ var OpenAiExecutionTools = /** @class */ (function () {
1441
1533
  role: 'user',
1442
1534
  content: rawPromptContent,
1443
1535
  },
1444
- ], false), user: this.options.user });
1536
+ ], false), user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString() });
1445
1537
  start = getCurrentIsoDate();
1446
1538
  if (this.options.isVerbose) {
1447
1539
  console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
1448
1540
  }
1449
- 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
+ })];
1450
1547
  case 2:
1451
- rawResponse = _a.sent();
1548
+ rawResponse = _b.sent();
1452
1549
  if (this.options.isVerbose) {
1453
1550
  console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
1454
1551
  }
@@ -1462,7 +1559,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1462
1559
  resultContent = rawResponse.choices[0].message.content;
1463
1560
  // eslint-disable-next-line prefer-const
1464
1561
  complete = getCurrentIsoDate();
1465
- usage = computeOpenAiUsage(content, resultContent || '', rawResponse);
1562
+ usage = computeOpenAiUsage(content || '', resultContent || '', rawResponse);
1466
1563
  if (resultContent === null) {
1467
1564
  throw new PipelineExecutionError('No response message from OpenAI');
1468
1565
  }
@@ -1487,10 +1584,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
1487
1584
  * Calls OpenAI API to use a complete model.
1488
1585
  */
1489
1586
  OpenAiExecutionTools.prototype.callCompletionModel = function (prompt) {
1587
+ var _a;
1490
1588
  return __awaiter(this, void 0, void 0, function () {
1491
1589
  var content, parameters, modelRequirements, client, modelName, modelSettings, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
1492
- return __generator(this, function (_a) {
1493
- switch (_a.label) {
1590
+ var _this = this;
1591
+ return __generator(this, function (_b) {
1592
+ switch (_b.label) {
1494
1593
  case 0:
1495
1594
  if (this.options.isVerbose) {
1496
1595
  console.info('🖋 OpenAI callCompletionModel call', { prompt: prompt });
@@ -1498,7 +1597,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1498
1597
  content = prompt.content, parameters = prompt.parameters, modelRequirements = prompt.modelRequirements;
1499
1598
  return [4 /*yield*/, this.getClient()];
1500
1599
  case 1:
1501
- client = _a.sent();
1600
+ client = _b.sent();
1502
1601
  // TODO: [☂] Use here more modelRequirements
1503
1602
  if (modelRequirements.modelVariant !== 'COMPLETION') {
1504
1603
  throw new PipelineExecutionError('Use callCompletionModel only for COMPLETION variant');
@@ -1513,14 +1612,19 @@ var OpenAiExecutionTools = /** @class */ (function () {
1513
1612
  // <- Note: [🧆]
1514
1613
  };
1515
1614
  rawPromptContent = replaceParameters(content, __assign(__assign({}, parameters), { modelName: modelName }));
1516
- 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() });
1517
1616
  start = getCurrentIsoDate();
1518
1617
  if (this.options.isVerbose) {
1519
1618
  console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
1520
1619
  }
1521
- 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
+ })];
1522
1626
  case 2:
1523
- rawResponse = _a.sent();
1627
+ rawResponse = _b.sent();
1524
1628
  if (this.options.isVerbose) {
1525
1629
  console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
1526
1630
  }
@@ -1534,7 +1638,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1534
1638
  resultContent = rawResponse.choices[0].text;
1535
1639
  // eslint-disable-next-line prefer-const
1536
1640
  complete = getCurrentIsoDate();
1537
- usage = computeOpenAiUsage(content, resultContent || '', rawResponse);
1641
+ usage = computeOpenAiUsage(content || '', resultContent || '', rawResponse);
1538
1642
  return [2 /*return*/, $asDeeplyFrozenSerializableJson('OpenAiExecutionTools CompletionPromptResult', {
1539
1643
  content: resultContent,
1540
1644
  modelName: rawResponse.model || modelName,
@@ -1558,6 +1662,7 @@ var OpenAiExecutionTools = /** @class */ (function () {
1558
1662
  OpenAiExecutionTools.prototype.callEmbeddingModel = function (prompt) {
1559
1663
  return __awaiter(this, void 0, void 0, function () {
1560
1664
  var content, parameters, modelRequirements, client, modelName, rawPromptContent, rawRequest, start, complete, rawResponse, resultContent, usage;
1665
+ var _this = this;
1561
1666
  return __generator(this, function (_a) {
1562
1667
  switch (_a.label) {
1563
1668
  case 0:
@@ -1582,7 +1687,12 @@ var OpenAiExecutionTools = /** @class */ (function () {
1582
1687
  if (this.options.isVerbose) {
1583
1688
  console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
1584
1689
  }
1585
- 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
+ })];
1586
1696
  case 2:
1587
1697
  rawResponse = _a.sent();
1588
1698
  if (this.options.isVerbose) {
@@ -1594,7 +1704,9 @@ var OpenAiExecutionTools = /** @class */ (function () {
1594
1704
  resultContent = rawResponse.data[0].embedding;
1595
1705
  // eslint-disable-next-line prefer-const
1596
1706
  complete = getCurrentIsoDate();
1597
- usage = computeOpenAiUsage(content, '', rawResponse);
1707
+ usage = computeOpenAiUsage(content || '', '',
1708
+ // <- Note: Embedding does not have result content
1709
+ rawResponse);
1598
1710
  return [2 /*return*/, $asDeeplyFrozenSerializableJson('OpenAiExecutionTools EmbeddingPromptResult', {
1599
1711
  content: resultContent,
1600
1712
  modelName: rawResponse.model || modelName,
@@ -1659,95 +1771,6 @@ var OpenAiExecutionTools = /** @class */ (function () {
1659
1771
  * TODO: [🧠][🌰] Allow to pass `title` for tracking purposes
1660
1772
  */
1661
1773
 
1662
- /**
1663
- * Execution Tools for calling OpenAI API
1664
- *
1665
- * @public exported from `@promptbook/openai`
1666
- */
1667
- var createOpenAiExecutionTools = Object.assign(function (options) {
1668
- // TODO: [🧠][main] !!!! If browser, auto add `dangerouslyAllowBrowser`
1669
- if (($isRunningInBrowser() || $isRunningInWebWorker()) && !options.dangerouslyAllowBrowser) {
1670
- options = __assign(__assign({}, options), { dangerouslyAllowBrowser: true });
1671
- }
1672
- return new OpenAiExecutionTools(options);
1673
- }, {
1674
- packageName: '@promptbook/openai',
1675
- className: 'OpenAiExecutionTools',
1676
- });
1677
- /**
1678
- * TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
1679
- * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
1680
- */
1681
-
1682
- /**
1683
- * This error type indicates that some part of the code is not implemented yet
1684
- *
1685
- * @public exported from `@promptbook/core`
1686
- */
1687
- var NotYetImplementedError = /** @class */ (function (_super) {
1688
- __extends(NotYetImplementedError, _super);
1689
- function NotYetImplementedError(message) {
1690
- var _this = _super.call(this, spaceTrim(function (block) { return "\n ".concat(block(message), "\n\n Note: This feature is not implemented yet but it will be soon.\n\n If you want speed up the implementation or just read more, look here:\n https://github.com/webgptorg/promptbook\n\n Or contact us on me@pavolhejny.com\n\n "); })) || this;
1691
- _this.name = 'NotYetImplementedError';
1692
- Object.setPrototypeOf(_this, NotYetImplementedError.prototype);
1693
- return _this;
1694
- }
1695
- return NotYetImplementedError;
1696
- }(Error));
1697
-
1698
- /**
1699
- * Represents the usage with no resources consumed
1700
- *
1701
- * @public exported from `@promptbook/core`
1702
- */
1703
- $deepFreeze({
1704
- price: { value: 0 },
1705
- input: {
1706
- tokensCount: { value: 0 },
1707
- charactersCount: { value: 0 },
1708
- wordsCount: { value: 0 },
1709
- sentencesCount: { value: 0 },
1710
- linesCount: { value: 0 },
1711
- paragraphsCount: { value: 0 },
1712
- pagesCount: { value: 0 },
1713
- },
1714
- output: {
1715
- tokensCount: { value: 0 },
1716
- charactersCount: { value: 0 },
1717
- wordsCount: { value: 0 },
1718
- sentencesCount: { value: 0 },
1719
- linesCount: { value: 0 },
1720
- paragraphsCount: { value: 0 },
1721
- pagesCount: { value: 0 },
1722
- },
1723
- });
1724
- /**
1725
- * Represents the usage with unknown resources consumed
1726
- *
1727
- * @public exported from `@promptbook/core`
1728
- */
1729
- var UNCERTAIN_USAGE = $deepFreeze({
1730
- price: { value: 0, isUncertain: true },
1731
- input: {
1732
- tokensCount: { value: 0, isUncertain: true },
1733
- charactersCount: { value: 0, isUncertain: true },
1734
- wordsCount: { value: 0, isUncertain: true },
1735
- sentencesCount: { value: 0, isUncertain: true },
1736
- linesCount: { value: 0, isUncertain: true },
1737
- paragraphsCount: { value: 0, isUncertain: true },
1738
- pagesCount: { value: 0, isUncertain: true },
1739
- },
1740
- output: {
1741
- tokensCount: { value: 0, isUncertain: true },
1742
- charactersCount: { value: 0, isUncertain: true },
1743
- wordsCount: { value: 0, isUncertain: true },
1744
- sentencesCount: { value: 0, isUncertain: true },
1745
- linesCount: { value: 0, isUncertain: true },
1746
- paragraphsCount: { value: 0, isUncertain: true },
1747
- pagesCount: { value: 0, isUncertain: true },
1748
- },
1749
- });
1750
-
1751
1774
  /**
1752
1775
  * Execution Tools for calling OpenAI API Assistants
1753
1776
  *
@@ -1763,8 +1786,9 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1763
1786
  * @param options which are relevant are directly passed to the OpenAI client
1764
1787
  */
1765
1788
  function OpenAiAssistantExecutionTools(options) {
1766
- if (options === void 0) { options = {}; }
1767
- return _super.call(this, options) || this;
1789
+ var _this = _super.call(this, options) || this;
1790
+ _this.assistantId = options.assistantId;
1791
+ return _this;
1768
1792
  }
1769
1793
  Object.defineProperty(OpenAiAssistantExecutionTools.prototype, "title", {
1770
1794
  get: function () {
@@ -1821,14 +1845,13 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1821
1845
  }
1822
1846
  rawPromptContent = replaceParameters(content, __assign(__assign({}, parameters), { modelName: 'assistant' }));
1823
1847
  rawRequest = {
1824
- // [👨‍👨‍👧‍👧] ...modelSettings,
1825
- assistant_id: 'asst_CJCZzFCbBL0f2D4OWMXVTdBB',
1826
- // <- 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,
1827
1851
  thread: {
1828
1852
  messages: [
1829
- // TODO: !!!!!! Unhardcode
1830
1853
  // TODO: !!!!!! Allow threads to be passed
1831
- { role: 'user', content: 'What is the meaning of life? I want breathtaking speech.' },
1854
+ { role: 'user', content: rawPromptContent },
1832
1855
  ],
1833
1856
  },
1834
1857
  // !!!!!! user: this.options.user,
@@ -1837,6 +1860,7 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1837
1860
  if (this.options.isVerbose) {
1838
1861
  console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
1839
1862
  }
1863
+ console.log('!!!!!! OpenAI client', client);
1840
1864
  return [4 /*yield*/, client.beta.threads.createAndRunStream(rawRequest)];
1841
1865
  case 2:
1842
1866
  stream = _g.sent();
@@ -1918,6 +1942,46 @@ var OpenAiAssistantExecutionTools = /** @class */ (function (_super) {
1918
1942
  * TODO: [🧠][🌰] Allow to pass `title` for tracking purposes
1919
1943
  */
1920
1944
 
1945
+ /**
1946
+ * Execution Tools for calling OpenAI API
1947
+ *
1948
+ * @public exported from `@promptbook/openai`
1949
+ */
1950
+ var createOpenAiAssistantExecutionTools = Object.assign(function (options) {
1951
+ // TODO: [🧠][main] !!!! If browser, auto add `dangerouslyAllowBrowser`
1952
+ if (($isRunningInBrowser() || $isRunningInWebWorker()) && !options.dangerouslyAllowBrowser) {
1953
+ options = __assign(__assign({}, options), { dangerouslyAllowBrowser: true });
1954
+ }
1955
+ return new OpenAiAssistantExecutionTools(options);
1956
+ }, {
1957
+ packageName: '@promptbook/openai',
1958
+ className: 'OpenAiAssistantExecutionTools',
1959
+ });
1960
+ /**
1961
+ * TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
1962
+ * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
1963
+ */
1964
+
1965
+ /**
1966
+ * Execution Tools for calling OpenAI API
1967
+ *
1968
+ * @public exported from `@promptbook/openai`
1969
+ */
1970
+ var createOpenAiExecutionTools = Object.assign(function (options) {
1971
+ // TODO: [🧠][main] !!!! If browser, auto add `dangerouslyAllowBrowser`
1972
+ if (($isRunningInBrowser() || $isRunningInWebWorker()) && !options.dangerouslyAllowBrowser) {
1973
+ options = __assign(__assign({}, options), { dangerouslyAllowBrowser: true });
1974
+ }
1975
+ return new OpenAiExecutionTools(options);
1976
+ }, {
1977
+ packageName: '@promptbook/openai',
1978
+ className: 'OpenAiExecutionTools',
1979
+ });
1980
+ /**
1981
+ * TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
1982
+ * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
1983
+ */
1984
+
1921
1985
  /**
1922
1986
  * @@@
1923
1987
  *
@@ -1929,6 +1993,85 @@ function $getGlobalScope() {
1929
1993
  return Function('return this')();
1930
1994
  }
1931
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
+
1932
2075
  /**
1933
2076
  * Register is @@@
1934
2077
  *
@@ -1937,9 +2080,9 @@ function $getGlobalScope() {
1937
2080
  * @private internal utility, exported are only signleton instances of this class
1938
2081
  */
1939
2082
  var $Register = /** @class */ (function () {
1940
- function $Register(storageName) {
1941
- this.storageName = storageName;
1942
- storageName = "_promptbook_".concat(storageName);
2083
+ function $Register(registerName) {
2084
+ this.registerName = registerName;
2085
+ var storageName = "_promptbook_".concat(normalizeTo_snake_case(registerName));
1943
2086
  var globalScope = $getGlobalScope();
1944
2087
  if (globalScope[storageName] === undefined) {
1945
2088
  globalScope[storageName] = [];
@@ -1954,7 +2097,6 @@ var $Register = /** @class */ (function () {
1954
2097
  return this.storage;
1955
2098
  };
1956
2099
  $Register.prototype.register = function (registered) {
1957
- // <- TODO: What to return here
1958
2100
  var packageName = registered.packageName, className = registered.className;
1959
2101
  var existingRegistrationIndex = this.storage.findIndex(function (item) { return item.packageName === packageName && item.className === className; });
1960
2102
  var existingRegistration = this.storage[existingRegistrationIndex];
@@ -1964,6 +2106,17 @@ var $Register = /** @class */ (function () {
1964
2106
  else {
1965
2107
  this.storage[existingRegistrationIndex] = registered;
1966
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
+ };
1967
2120
  };
1968
2121
  return $Register;
1969
2122
  }());
@@ -1976,7 +2129,19 @@ var $Register = /** @class */ (function () {
1976
2129
  * @public exported from `@promptbook/core`
1977
2130
  */
1978
2131
  var $llmToolsRegister = new $Register('llm_execution_tools_constructors');
2132
+ /**
2133
+ * TODO: [®] DRY Register logic
2134
+ */
1979
2135
 
2136
+ /**
2137
+ * Registration of LLM provider
2138
+ *
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
2140
+ *
2141
+ * @public exported from `@promptbook/openai`
2142
+ * @public exported from `@promptbook/cli`
2143
+ */
2144
+ var _OpenAiRegistration = $llmToolsRegister.register(createOpenAiExecutionTools);
1980
2145
  /**
1981
2146
  * @@@ registration2
1982
2147
  *
@@ -1985,10 +2150,10 @@ var $llmToolsRegister = new $Register('llm_execution_tools_constructors');
1985
2150
  * @public exported from `@promptbook/openai`
1986
2151
  * @public exported from `@promptbook/cli`
1987
2152
  */
1988
- var _OpenAiRegistration = $llmToolsRegister.register(createOpenAiExecutionTools);
2153
+ var _OpenAiAssistantRegistration = $llmToolsRegister.register(createOpenAiAssistantExecutionTools);
1989
2154
  /**
1990
2155
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
1991
2156
  */
1992
2157
 
1993
- export { OPENAI_MODELS, OpenAiAssistantExecutionTools, OpenAiExecutionTools, PROMPTBOOK_VERSION, _OpenAiRegistration, createOpenAiExecutionTools };
2158
+ export { OPENAI_MODELS, OpenAiAssistantExecutionTools, OpenAiExecutionTools, PROMPTBOOK_VERSION, _OpenAiAssistantRegistration, _OpenAiRegistration, createOpenAiAssistantExecutionTools, createOpenAiExecutionTools };
1994
2159
  //# sourceMappingURL=index.es.js.map