@promptbook/openai 0.70.0-1 → 0.71.0-12

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 (237) hide show
  1. package/README.md +87 -121
  2. package/esm/index.es.js +203 -16
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/promptbook-collection/index.d.ts +0 -3
  5. package/esm/typings/src/_packages/browser.index.d.ts +3 -1
  6. package/esm/typings/src/_packages/cli.index.d.ts +20 -0
  7. package/esm/typings/src/_packages/core.index.d.ts +45 -15
  8. package/esm/typings/src/_packages/documents.index.d.ts +8 -0
  9. package/esm/typings/src/_packages/legacy-documents.index.d.ts +8 -0
  10. package/esm/typings/src/_packages/markdown-utils.index.d.ts +6 -0
  11. package/esm/typings/src/_packages/node.index.d.ts +14 -6
  12. package/esm/typings/src/_packages/pdf.index.d.ts +8 -0
  13. package/esm/typings/src/_packages/types.index.d.ts +53 -25
  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 +2 -2
  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 -7
  27. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +27 -0
  28. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -3
  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 +4 -4
  45. package/esm/typings/src/config.d.ts +32 -3
  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 +5 -5
  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 +20 -8
  60. package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
  61. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +9 -8
  62. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +45 -0
  63. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +23 -0
  64. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +29 -0
  65. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +13 -0
  66. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +58 -0
  67. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +60 -0
  68. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +15 -0
  69. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +69 -0
  70. package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
  71. package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
  72. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
  73. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
  74. package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
  75. package/esm/typings/src/execution/embeddingVectorToString.d.ts +1 -1
  76. package/esm/typings/src/execution/translation/automatic-translate/translateMessages.d.ts +3 -0
  77. package/esm/typings/src/execution/utils/$provideExecutionToolsForNode.d.ts +13 -0
  78. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  79. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -0
  80. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  81. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +14 -15
  82. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +31 -0
  83. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
  84. package/esm/typings/src/formats/csv/CsvFormatError.d.ts +10 -0
  85. package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
  86. package/esm/typings/src/formats/index.d.ts +1 -1
  87. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
  88. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
  89. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
  90. package/esm/typings/src/llm-providers/_common/{$llmToolsMetadataRegister.d.ts → register/$llmToolsMetadataRegister.d.ts} +4 -1
  91. package/esm/typings/src/llm-providers/_common/{$llmToolsRegister.d.ts → register/$llmToolsRegister.d.ts} +5 -2
  92. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfigurationFromEnv.d.ts → register/$provideLlmToolsConfigurationFromEnv.d.ts} +3 -3
  93. package/esm/typings/src/llm-providers/_common/{getLlmToolsForCli.d.ts → register/$provideLlmToolsForCli.d.ts} +4 -3
  94. package/esm/typings/src/llm-providers/_common/{getLlmToolsForTestingAndScriptsAndPlayground.d.ts → register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts} +4 -3
  95. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +27 -0
  96. package/esm/typings/src/llm-providers/_common/{$registeredLlmToolsMessage.d.ts → register/$registeredLlmToolsMessage.d.ts} +5 -2
  97. package/esm/typings/src/llm-providers/_common/{LlmToolsConfiguration.d.ts → register/LlmToolsConfiguration.d.ts} +5 -4
  98. package/esm/typings/src/llm-providers/_common/{LlmToolsMetadata.d.ts → register/LlmToolsMetadata.d.ts} +5 -4
  99. package/esm/typings/src/llm-providers/_common/{LlmToolsOptions.d.ts → register/LlmToolsOptions.d.ts} +4 -1
  100. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfiguration.d.ts → register/createLlmToolsFromConfiguration.d.ts} +5 -4
  101. package/esm/typings/src/llm-providers/_common/utils/cache/CacheItem.d.ts +1 -1
  102. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +2 -1
  103. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +3 -3
  104. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  105. package/esm/typings/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +2 -2
  106. package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -2
  107. package/esm/typings/src/llm-providers/anthropic-claude/register-configuration.d.ts +4 -3
  108. package/esm/typings/src/llm-providers/anthropic-claude/register-constructor.d.ts +4 -3
  109. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +8 -1
  110. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +2 -2
  111. package/esm/typings/src/llm-providers/azure-openai/playground/playground.d.ts +1 -0
  112. package/esm/typings/src/llm-providers/azure-openai/register-configuration.d.ts +4 -3
  113. package/esm/typings/src/llm-providers/azure-openai/register-constructor.d.ts +4 -3
  114. package/esm/typings/src/llm-providers/langtail/playground/playground.d.ts +3 -0
  115. package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +2 -2
  116. package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +2 -2
  117. package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +1 -0
  118. package/esm/typings/src/llm-providers/multiple/playground/playground.d.ts +3 -0
  119. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -1
  120. package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +2 -2
  121. package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +2 -1
  122. package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +4 -3
  123. package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +4 -3
  124. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Request.d.ts +1 -1
  125. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Request.d.ts +1 -1
  126. package/esm/typings/src/llm-providers/remote/interfaces/RemoteLlmExecutionToolsOptions.d.ts +3 -3
  127. package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +2 -2
  128. package/esm/typings/src/llm-providers/remote/playground/playground.d.ts +3 -0
  129. package/esm/typings/src/personas/preparePersona.d.ts +4 -3
  130. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +68 -0
  131. package/esm/typings/src/prepare/isPipelinePrepared.d.ts +1 -1
  132. package/esm/typings/src/prepare/preparePipeline.d.ts +3 -2
  133. package/esm/typings/src/prepare/prepareTemplates.d.ts +4 -3
  134. package/esm/typings/src/scrapers/_common/Converter.d.ts +22 -0
  135. package/esm/typings/src/scrapers/_common/Scraper.d.ts +66 -0
  136. package/esm/typings/src/scrapers/_common/ScraperIntermediateSource.d.ts +11 -0
  137. package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.d.ts +5 -4
  138. package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +12 -0
  139. package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +15 -0
  140. package/esm/typings/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +12 -0
  141. package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +13 -0
  142. package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +13 -0
  143. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +41 -0
  144. package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +12 -0
  145. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +33 -0
  146. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
  147. package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +13 -0
  148. package/esm/typings/src/scrapers/document/DocumentScraper.d.ts +43 -0
  149. package/esm/typings/src/scrapers/document/DocumentScraper.test.d.ts +4 -0
  150. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +20 -0
  151. package/esm/typings/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
  152. package/esm/typings/src/scrapers/document/register-constructor.d.ts +13 -0
  153. package/esm/typings/src/scrapers/document/register-metadata.d.ts +24 -0
  154. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +43 -0
  155. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +4 -0
  156. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +20 -0
  157. package/esm/typings/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
  158. package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +13 -0
  159. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +24 -0
  160. package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +29 -0
  161. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +20 -0
  162. package/esm/typings/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
  163. package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +13 -0
  164. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +24 -0
  165. package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +40 -0
  166. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +20 -0
  167. package/esm/typings/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
  168. package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +13 -0
  169. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +24 -0
  170. package/esm/typings/src/scrapers/website/WebsiteScraper.d.ts +47 -0
  171. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +20 -0
  172. package/esm/typings/src/scrapers/website/playground/website-scraper-playground.d.ts +5 -0
  173. package/esm/typings/src/scrapers/website/register-constructor.d.ts +13 -0
  174. package/esm/typings/src/scrapers/website/register-metadata.d.ts +24 -0
  175. package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +12 -0
  176. package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +2 -2
  177. package/esm/typings/src/scripting/python/PythonExecutionTools.d.ts +2 -2
  178. package/esm/typings/src/scripting/typescript/TypescriptExecutionTools.d.ts +2 -2
  179. package/esm/typings/src/storage/{files-storage/FilesStorage.d.ts → file-cache-storage/FileCacheStorage.d.ts} +4 -4
  180. package/esm/typings/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +10 -0
  181. package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.d.ts +1 -1
  182. package/esm/typings/src/storage/local-storage/getLocalStorage.d.ts +1 -1
  183. package/esm/typings/src/storage/local-storage/getSessionStorage.d.ts +1 -1
  184. package/esm/typings/src/storage/{utils → memory/utils}/PrefixStorage.d.ts +1 -1
  185. package/esm/typings/src/storage/{utils → memory/utils}/makePromptbookStorageFromWebStorage.d.ts +1 -1
  186. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +9 -2
  187. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
  188. package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +3 -3
  189. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
  190. package/esm/typings/src/types/execution-report/executionReportJsonToString.d.ts +2 -1
  191. package/esm/typings/src/types/typeAliases.d.ts +16 -12
  192. package/esm/typings/src/utils/$Register.d.ts +19 -6
  193. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +14 -0
  194. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +17 -0
  195. package/esm/typings/src/utils/execCommand/IExecCommandOptions.d.ts +23 -0
  196. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +10 -0
  197. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  198. package/esm/typings/src/utils/files/$isDirectoryExisting.d.ts +3 -3
  199. package/esm/typings/src/utils/files/$isFileExisting.d.ts +3 -3
  200. package/esm/typings/src/utils/files/$listAllFiles.d.ts +5 -4
  201. package/esm/typings/src/utils/files/extensionToMimeType.d.ts +8 -0
  202. package/esm/typings/src/utils/files/getFileExtension.d.ts +8 -0
  203. package/esm/typings/src/utils/files/getFileExtension.test.d.ts +1 -0
  204. package/esm/typings/src/utils/organization/{f.d.ts → empty_object.d.ts} +5 -1
  205. package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -0
  206. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  207. package/esm/typings/src/utils/parameters/extractParameterNames.test.d.ts +1 -0
  208. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  209. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts +1 -0
  210. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  211. package/esm/typings/src/utils/parameters/replaceParameters.test.d.ts +1 -0
  212. package/esm/typings/src/utils/serialization/checkSerializableAsJson.d.ts +1 -1
  213. package/esm/typings/src/utils/serialization/isSerializableAsJson.d.ts +1 -1
  214. package/esm/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -2
  215. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  216. package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
  217. package/package.json +17 -13
  218. package/umd/index.umd.js +203 -16
  219. package/umd/index.umd.js.map +1 -1
  220. package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
  221. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  222. package/esm/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +0 -37
  223. package/esm/typings/src/knowledge/prepare-knowledge/markdown/playground/markdown-knowledge-playground.d.ts +0 -2
  224. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +0 -14
  225. package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +0 -15
  226. package/esm/typings/src/llm-providers/_common/createLlmToolsFromEnv.d.ts +0 -25
  227. package/esm/typings/src/prepare/PrepareOptions.d.ts +0 -22
  228. package/esm/typings/src/storage/files-storage/FilesStorageOptions.d.ts +0 -10
  229. /package/esm/typings/src/{knowledge/dialogs → dialogs}/user-interface-execution-tools.test.d.ts +0 -0
  230. /package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.test.d.ts +0 -0
  231. /package/esm/typings/src/{knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts → scrapers/markdown/MarkdownScraper.test.d.ts} +0 -0
  232. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → scrapers/website/WebsiteScraper.test.d.ts} +0 -0
  233. /package/esm/typings/src/{knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.test.d.ts → scrapers/website/utils/markdownConverter.test.d.ts} +0 -0
  234. /package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.test.d.ts +0 -0
  235. /package/esm/typings/src/{personas/preparePersona.test.d.ts → utils/execCommand/execCommand.test.d.ts} +0 -0
  236. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → execCommand/execCommandNormalizeOptions.test.d.ts} +0 -0
  237. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → files/extensionToMimeType.test.d.ts} +0 -0
@@ -1,7 +1,8 @@
1
+ import { ReadonlyDeep } from 'type-fest';
2
+ import type { ErrorJson } from '../errors/utils/ErrorJson';
1
3
  import type { ExecutionReportJson } from '../types/execution-report/ExecutionReportJson';
2
- import type { Parameters } from '../types/typeAliases';
3
4
  import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
4
- import type { ErrorJson } from '../errors/utils/ErrorJson';
5
+ import type { Parameters } from '../types/typeAliases';
5
6
  import type { PromptResultUsage } from './PromptResultUsage';
6
7
  /**
7
8
  * @@@
@@ -14,7 +15,7 @@ export type PipelineExecutorResult = {
14
15
  *
15
16
  * Note: If the execution was not successful, there are only some of the result parameters
16
17
  */
17
- readonly outputParameters: Parameters;
18
+ readonly outputParameters: Readonly<Parameters>;
18
19
  /**
19
20
  * Whether the execution was successful, details are aviable in `executionReport`
20
21
  */
@@ -22,26 +23,26 @@ export type PipelineExecutorResult = {
22
23
  /**
23
24
  * Added usage of whole execution, detailed usage is aviable in `executionReport`
24
25
  */
25
- readonly usage: PromptResultUsage;
26
+ readonly usage: ReadonlyDeep<PromptResultUsage>;
26
27
  /**
27
28
  * Errors that occured during the execution, details are aviable in `executionReport`
28
29
  */
29
- readonly errors: Array<ErrorJson>;
30
+ readonly errors: ReadonlyDeep<Array<ErrorJson>>;
30
31
  /**
31
32
  * Warnings that occured during the execution, details are aviable in `executionReport`
32
33
  */
33
- readonly warnings: Array<ErrorJson>;
34
+ readonly warnings: ReadonlyDeep<Array<ErrorJson>>;
34
35
  /**
35
36
  * The report of the execution with all details
36
37
  */
37
- readonly executionReport: ExecutionReportJson;
38
+ readonly executionReport: ReadonlyDeep<ExecutionReportJson>;
38
39
  /**
39
40
  * The prepared pipeline that was used for the execution
40
41
  *
41
42
  * Note: If you called `createPipelineExecutor` with fully prepared pipeline, this is the same object as this pipeline
42
43
  * If you passed not fully prepared pipeline, this is same pipeline but fully prepared
43
44
  */
44
- readonly preparedPipeline: PipelineJson;
45
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
45
46
  };
46
47
  /**
47
48
  * TODO: [🧠] Should this file be in /execution or /types folder?
@@ -0,0 +1,45 @@
1
+ import { ExpectError } from '../../errors/ExpectError';
2
+ import type { Prompt } from '../../types/Prompt';
3
+ import type { ChatPromptResult } from '../PromptResult';
4
+ import type { CompletionPromptResult } from '../PromptResult';
5
+ import type { EmbeddingPromptResult } from '../PromptResult';
6
+ import type { PromptResult } from '../PromptResult';
7
+ /**
8
+ * @@@
9
+ *
10
+ * @private internal utility of `createPipelineExecutor`
11
+ */
12
+ export type $OngoingTemplateResult = {
13
+ /**
14
+ * @@@
15
+ */
16
+ $prompt?: Prompt;
17
+ /**
18
+ * @@@
19
+ */
20
+ $chatResult?: ChatPromptResult;
21
+ /**
22
+ * @@@
23
+ */
24
+ $completionResult?: CompletionPromptResult;
25
+ /**
26
+ * @@@
27
+ */
28
+ $embeddingResult?: EmbeddingPromptResult;
29
+ /**
30
+ * @@@
31
+ */
32
+ $result: PromptResult | null;
33
+ /**
34
+ * @@@
35
+ */
36
+ $resultString: string | null;
37
+ /**
38
+ * @@@
39
+ */
40
+ $expectError: ExpectError | null;
41
+ /**
42
+ * @@@
43
+ */
44
+ $scriptPipelineExecutionErrors: Array<Error>;
45
+ };
@@ -0,0 +1,23 @@
1
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
2
+ import type { ExecutionTools } from '../ExecutionTools';
3
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
4
+ /**
5
+ * Options for `createPipelineExecutor`
6
+ */
7
+ export type CreatePipelineExecutorOptions = {
8
+ /**
9
+ * The pipeline to be executed
10
+ */
11
+ readonly pipeline: PipelineJson;
12
+ /**
13
+ * The execution tools to be used during the execution of the pipeline
14
+ */
15
+ readonly tools: ExecutionTools;
16
+ /**
17
+ * Optional settings for the pipeline executor
18
+ */
19
+ readonly settings?: Partial<CreatePipelineExecutorSettings>;
20
+ };
21
+ /**
22
+ * TODO: !!!!!! Unite `CreatePipelineExecutorOptions` and `CreatePipelineExecutorSettings` OR describe the difference
23
+ */
@@ -0,0 +1,29 @@
1
+ import type { CsvSettings } from '../../formats/csv/CsvSettings';
2
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
+ export type CreatePipelineExecutorSettings = Omit<PrepareAndScrapeOptions, 'llmTools'> & {
4
+ /**
5
+ * When executor does not satisfy expectations it will be retried this amount of times
6
+ *
7
+ * @default MAX_EXECUTION_ATTEMPTS
8
+ */
9
+ readonly maxExecutionAttempts: number;
10
+ /**
11
+ * Settings for CSV format
12
+ *
13
+ * @default DEFAULT_CSV_SETTINGS
14
+ */
15
+ readonly csvSettings: CsvSettings;
16
+ /**
17
+ * If you pass fully prepared pipeline, this does not matter
18
+ *
19
+ * Otherwise:
20
+ * If false or not set, warning is shown when pipeline is not prepared
21
+ * If true, warning is suppressed
22
+ *
23
+ * @default false
24
+ */
25
+ readonly isNotPreparedWarningSupressed: boolean;
26
+ };
27
+ /**
28
+ * TODO: [🤹‍♂️] More granular setting for limits of execution + better waiting for queue
29
+ */
@@ -0,0 +1,13 @@
1
+ import type { PipelineExecutor } from '../PipelineExecutor';
2
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
3
+ /**
4
+ * Creates executor function from pipeline and execution tools.
5
+ *
6
+ * @returns The executor function
7
+ * @throws {PipelineLogicError} on logical error in the pipeline
8
+ * @public exported from `@promptbook/core`
9
+ */
10
+ export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
11
+ /**
12
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
13
+ */
@@ -0,0 +1,58 @@
1
+ import type { Promisable, ReadonlyDeep } from 'type-fest';
2
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
+ import type { TaskProgress } from '../../types/TaskProgress';
4
+ import type { Parameters } from '../../types/typeAliases';
5
+ import type { ExecutionTools } from '../ExecutionTools';
6
+ import type { PipelineExecutorResult } from '../PipelineExecutorResult';
7
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
8
+ /**
9
+ * @@@
10
+ *
11
+ * @private internal type of `executePipeline`
12
+ */
13
+ type ExecutePipelineOptions = {
14
+ /**
15
+ * @@@
16
+ */
17
+ readonly inputParameters: Readonly<Parameters>;
18
+ /**
19
+ * @@@
20
+ */
21
+ readonly tools: ExecutionTools;
22
+ /**
23
+ * @@@
24
+ */
25
+ onProgress?(taskProgress: TaskProgress): Promisable<void>;
26
+ /**
27
+ * @@@
28
+ */
29
+ readonly pipeline: PipelineJson;
30
+ /**
31
+ * @@@
32
+ */
33
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
34
+ /**
35
+ * @@@
36
+ */
37
+ readonly setPreparedPipeline: (preparedPipeline: ReadonlyDeep<PipelineJson>) => void;
38
+ /**
39
+ * @@@
40
+ */
41
+ readonly pipelineIdentification: string;
42
+ /**
43
+ * Settings for the pipeline executor
44
+ */
45
+ readonly settings: CreatePipelineExecutorSettings;
46
+ };
47
+ /**
48
+ * @@@
49
+ *
50
+ * Note: This is not a `PipelineExecutor` (which is binded with one exact pipeline), but a utility function of `createPipelineExecutor` which creates `PipelineExecutor`
51
+ *
52
+ * @private internal utility of `createPipelineExecutor`
53
+ */
54
+ export declare function executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecutorResult>;
55
+ export {};
56
+ /**
57
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
58
+ */
@@ -0,0 +1,60 @@
1
+ import { Promisable, ReadonlyDeep } from 'type-fest';
2
+ import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
3
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
4
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
5
+ import type { TaskProgress } from '../../types/TaskProgress';
6
+ import type { Parameters } from '../../types/typeAliases';
7
+ import type { ExecutionTools } from '../ExecutionTools';
8
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
9
+ /**
10
+ * @@@
11
+ *
12
+ * @private internal type of `executeTemplate`
13
+ */
14
+ type executeSingleTemplateOptions = {
15
+ /**
16
+ * @@@
17
+ */
18
+ readonly currentTemplate: ReadonlyDeep<TemplateJson>;
19
+ /**
20
+ * @@@
21
+ */
22
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
23
+ /**
24
+ * @@@
25
+ */
26
+ readonly parametersToPass: Readonly<Parameters>;
27
+ /**
28
+ * @@@
29
+ */
30
+ readonly tools: ExecutionTools;
31
+ /**
32
+ * @@@
33
+ */
34
+ readonly onProgress: (taskProgress: TaskProgress) => Promisable<void>;
35
+ /**
36
+ * Settings for the pipeline executor
37
+ */
38
+ readonly settings: CreatePipelineExecutorSettings;
39
+ /**
40
+ * @@@
41
+ */
42
+ readonly $executionReport: ExecutionReportJson;
43
+ /**
44
+ * @@@
45
+ */
46
+ readonly pipelineIdentification: string;
47
+ };
48
+ /**
49
+ * @@@
50
+ *
51
+ * @private internal utility of `createPipelineExecutor`
52
+ */
53
+ export declare function executeTemplate(options: executeSingleTemplateOptions): Promise<Readonly<Parameters>>;
54
+ export {};
55
+ /**
56
+ * TODO: [🤹‍♂️]
57
+ */
58
+ /**
59
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
60
+ */
@@ -0,0 +1,15 @@
1
+ import type { TODO_any } from '../../utils/organization/TODO_any';
2
+ import type { ExecuteAttemptsOptions } from './40-executeAttempts';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private internal type of `executeFormatSubvalues`
7
+ */
8
+ type ExecuteFormatCellsOptions = ExecuteAttemptsOptions;
9
+ /**
10
+ * @@@
11
+ *
12
+ * @private internal utility of `createPipelineExecutor`
13
+ */
14
+ export declare function executeFormatSubvalues(options: ExecuteFormatCellsOptions): Promise<TODO_any>;
15
+ export {};
@@ -0,0 +1,69 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
3
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
4
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
5
+ import type { Parameters } from '../../types/typeAliases';
6
+ import type { string_parameter_name } from '../../types/typeAliases';
7
+ import type { TODO_string } from '../../utils/organization/TODO_string';
8
+ import type { ExecutionTools } from '../ExecutionTools';
9
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
10
+ /**
11
+ * @@@
12
+ *
13
+ * @private internal type of `executeAttempts`
14
+ */
15
+ export type ExecuteAttemptsOptions = {
16
+ /**
17
+ * @@@
18
+ */
19
+ readonly jokerParameterNames: Readonly<Array<string_parameter_name>>;
20
+ /**
21
+ * @@@
22
+ */
23
+ readonly priority: number;
24
+ /**
25
+ * @@@
26
+ */
27
+ readonly maxAttempts: number;
28
+ /**
29
+ * @@@
30
+ */
31
+ readonly preparedContent: TODO_string;
32
+ /**
33
+ * @@@
34
+ */
35
+ readonly parameters: Readonly<Parameters>;
36
+ /**
37
+ * @@@
38
+ */
39
+ readonly template: ReadonlyDeep<TemplateJson>;
40
+ /**
41
+ * @@@
42
+ */
43
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
44
+ /**
45
+ * @@@
46
+ */
47
+ readonly tools: ExecutionTools;
48
+ /**
49
+ * Settings for the pipeline executor
50
+ */
51
+ readonly settings: CreatePipelineExecutorSettings;
52
+ /**
53
+ * @@@
54
+ */
55
+ readonly $executionReport: ExecutionReportJson;
56
+ /**
57
+ * @@@
58
+ */
59
+ readonly pipelineIdentification: string;
60
+ };
61
+ /**
62
+ * @@@
63
+ *
64
+ * @private internal utility of `createPipelineExecutor`
65
+ */
66
+ export declare function executeAttempts(options: ExecuteAttemptsOptions): Promise<TODO_string>;
67
+ /**
68
+ * TODO: Break into smaller functions
69
+ */
@@ -0,0 +1,34 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import { PipelineExecutionError } from '../../errors/PipelineExecutionError';
3
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
4
+ import type { Parameters } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal type of `createPipelineExecutor`
9
+ */
10
+ type FilterJustOutputParametersOptions = {
11
+ /**
12
+ * @@@
13
+ */
14
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
15
+ /**
16
+ * @@@
17
+ */
18
+ readonly parametersToPass: Readonly<Parameters>;
19
+ /**
20
+ * @@@
21
+ */
22
+ readonly $warnings: PipelineExecutionError[];
23
+ /**
24
+ * @@@
25
+ */
26
+ readonly pipelineIdentification: string;
27
+ };
28
+ /**
29
+ * @@@
30
+ *
31
+ * @private internal utility of `createPipelineExecutor`
32
+ */
33
+ export declare function filterJustOutputParameters(options: FilterJustOutputParametersOptions): Parameters;
34
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
3
+ import type { string_markdown } from '../../types/typeAliases';
4
+ import type { string_parameter_value } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal utility of `createPipelineExecutor`
9
+ */
10
+ export declare function getContextForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;
@@ -0,0 +1,27 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
4
+ import type { string_markdown } from '../../types/typeAliases';
5
+ import type { string_parameter_value } from '../../types/typeAliases';
6
+ /**
7
+ * @@@
8
+ *
9
+ * @private internal type of `getKnowledgeForTemplate`
10
+ */
11
+ type GetKnowledgeForTemplateOptions = {
12
+ /**
13
+ * @@@
14
+ */
15
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
16
+ /**
17
+ * @@@
18
+ */
19
+ readonly template: ReadonlyDeep<TemplateJson>;
20
+ };
21
+ /**
22
+ * @@@
23
+ *
24
+ * @private internal utility of `createPipelineExecutor`
25
+ */
26
+ export declare function getKnowledgeForTemplate(options: GetKnowledgeForTemplateOptions): Promise<string_parameter_value & string_markdown>;
27
+ export {};
@@ -0,0 +1,30 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
4
+ import type { ReservedParameters } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal type of `getReservedParametersForTemplate`
9
+ */
10
+ type GetReservedParametersForTemplateOptions = {
11
+ /**
12
+ * @@@
13
+ */
14
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
15
+ /**
16
+ * @@@
17
+ */
18
+ readonly template: ReadonlyDeep<TemplateJson>;
19
+ /**
20
+ * @@@
21
+ */
22
+ readonly pipelineIdentification: string;
23
+ };
24
+ /**
25
+ * @@@
26
+ *
27
+ * @private internal utility of `createPipelineExecutor`
28
+ */
29
+ export declare function getReservedParametersForTemplate(options: GetReservedParametersForTemplateOptions): Promise<Readonly<ReservedParameters>>;
30
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
3
+ import type { string_markdown } from '../../types/typeAliases';
4
+ import type { string_parameter_value } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal utility of `createPipelineExecutor`
9
+ */
10
+ export declare function getSamplesForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;
@@ -4,4 +4,4 @@ import type { EmbeddingVector } from './EmbeddingVector';
4
4
  *
5
5
  * @public exported from `@promptbook/core`
6
6
  */
7
- export declare function embeddingVectorToString(embeddingVector: EmbeddingVector): string;
7
+ export declare function embeddingVectorToString(embeddingVector: Readonly<EmbeddingVector>): string;
@@ -6,3 +6,6 @@ import type { TranslatorOptions } from './automatic-translators/TranslatorOption
6
6
  export declare function translateMessages({ automaticTranslator, from, to, }: {
7
7
  automaticTranslator: AutomaticTranslator;
8
8
  } & TranslatorOptions): Promise<void>;
9
+ /**
10
+ * TODO: [😶] Unite floder listing
11
+ */
@@ -0,0 +1,13 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { ExecutionTools } from '../ExecutionTools';
3
+ /**
4
+ * Note: There is unfortunately no equivalent for this function in the browser environment
5
+ * because it is not possible automatically detect configured LLM providers
6
+ * you need to provide them manually BUT you can help by utilities like `$provideScrapersForBrowser`
7
+ *
8
+ * @public exported from `@promptbook/node`
9
+ */
10
+ export declare function $provideExecutionToolsForNode(options?: PrepareAndScrapeOptions): Promise<ExecutionTools>;
11
+ /**
12
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
13
+ */
@@ -24,4 +24,6 @@ export declare function checkExpectations(expectations: Expectations, value: str
24
24
  export declare function isPassingExpectations(expectations: Expectations, value: string): boolean;
25
25
  /**
26
26
  * TODO: [💝] Unite object for expecting amount and format
27
+ * TODO: [🧠][🤠] This should be part of `TextFormatDefinition`
28
+ * Note: [💝] and [🤠] are interconnected together
27
29
  */
@@ -14,6 +14,7 @@ type ForEachAsyncOptions = {
14
14
  * @param options - Options for the function
15
15
  * @param callbackfunction - Function to call for each item
16
16
  * @public exported from `@promptbook/utils`
17
+ * @deprecated [🪂] Use queues instead
17
18
  */
18
19
  export declare function forEachAsync<TItem>(array: Array<TItem>, options: ForEachAsyncOptions, callbackfunction: (value: TItem, index: number, array: Array<TItem>) => Promisable<void>): Promise<void>;
19
20
  export {};
@@ -7,11 +7,10 @@ import type { PromptResultUsage } from '../PromptResultUsage';
7
7
  */
8
8
  export declare function usageToHuman(usage: PromptResultUsage): string_markdown;
9
9
  /**
10
- * TODO: Use "$1" not "1 USD"
11
- * TODO: Use markdown formatting like "Cost approximately **$1**"
12
- * TODO: Report in minutes, seconds, days NOT 0.1 hours
10
+ * TODO: [🍓][🧞‍♂️] Use "$1" not "1 USD"
11
+ * TODO: [🍓][🧞‍♂️] Use markdown formatting like "Cost approximately **$1**"
12
+ * TODO: [🍓][🧞‍♂️] Report in minutes, seconds, days NOT 0.1 hours
13
13
  * TODO: [🧠] Maybe make from `uncertainNumberToHuman` separate exported utility
14
- * TODO: When negligible usage, report "Negligible" or just don't report it
15
14
  * TODO: [🧠] Maybe use "~" instead of "approximately"
16
15
  * TODO: [🏛] Maybe make some markdown builder
17
16
  */
@@ -1,22 +1,27 @@
1
1
  import type { string_mime_type } from '../../types/typeAliases';
2
2
  import type { string_name } from '../../types/typeAliases';
3
+ import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
4
+ import type { empty_object } from '../../utils/organization/empty_object';
5
+ import type { FormatSubvalueDefinition } from './FormatSubvalueDefinition';
3
6
  /**
4
7
  * A format definition is a set of functions that define how to validate, heal and convert response from LLM
5
8
  *
9
+ * @@@ Describe setting vs schema
10
+ *
6
11
  * @see https://github.com/webgptorg/promptbook/discussions/36
7
12
  * @private still in development [🏢]
8
13
  */
9
- export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSchema extends object> = {
14
+ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSettings extends empty_object, TSchema extends empty_object> = {
10
15
  /**
11
16
  * The name of the format used in .ptbk.md files
12
17
  *
13
18
  * @sample "JSON"
14
19
  */
15
- readonly name: string_name;
20
+ readonly formatName: string_name & string_SCREAMING_CASE;
16
21
  /**
17
- * Aliases for the name
22
+ * Aliases for the `formatName`
18
23
  */
19
- readonly aliases?: Array<string_name>;
24
+ readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
20
25
  /**
21
26
  * The mime type of the format (if any)
22
27
  *
@@ -29,7 +34,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
29
34
  * @param value The value to check, for example "{\"foo\": true}"
30
35
  * @param schema Optional schema to do extra validation
31
36
  */
32
- isValid(value: string, schema?: TSchema): value is TValue;
37
+ isValid(value: string, settings?: TSettings, schema?: TSchema): value is TValue;
33
38
  /**
34
39
  * Check if a first part of a value is valid
35
40
  *
@@ -38,7 +43,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
38
43
  * @param partialValue Partial value to check, for example "{\"foo\": t"
39
44
  * @param schema Optional schema to do extra validation
40
45
  */
41
- canBeValid(partialValue: string, schema?: TSchema): partialValue is TPartialValue;
46
+ canBeValid(partialValue: string, settings?: TSettings, schema?: TSchema): partialValue is TPartialValue;
42
47
  /**
43
48
  * Heal a value to make it valid if possible
44
49
  *
@@ -49,17 +54,11 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
49
54
  * @param scheme
50
55
  * @throws {Error} If the value cannot be healed
51
56
  */
52
- heal(value: string, scheme?: TSchema): TValue;
57
+ heal(value: string, settings?: TSettings, scheme?: TSchema): TValue;
53
58
  /**
54
- * Parses just the values and removes structural information
55
- *
56
- * Note: This is useful when you want to combine format expectations with counting words, characters,...
57
- *
58
- * @param value The value to check, for example "{\"name\": "John Smith"}"
59
- * @param schema Optional schema
60
- * @example "{\"name\": "John Smith"}" -> ["John Smith"]
59
+ * @@@
61
60
  */
62
- extractValues(value: string, schema?: TSchema): Array<string>;
61
+ readonly subvalueDefinitions: Array<FormatSubvalueDefinition<TValue, TSettings>>;
63
62
  };
64
63
  /**
65
64
  * TODO: [♏] Add some prepare hook to modify prompt according to the format
@@ -0,0 +1,31 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { Parameters } from '../../types/typeAliases';
3
+ import type { string_parameter_name } from '../../types/typeAliases';
4
+ import type { string_name } from '../../types/typeAliases';
5
+ import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
6
+ import type { empty_object } from '../../utils/organization/empty_object';
7
+ /**
8
+ * @@@
9
+ */
10
+ export type FormatSubvalueDefinition<TValue extends string, TSettings extends empty_object> = {
11
+ /**
12
+ * The name of the format used in .ptbk.md files
13
+ *
14
+ * @sample "CELL"
15
+ */
16
+ readonly subvalueName: string_name & string_SCREAMING_CASE;
17
+ /**
18
+ * Aliases for the `subvalueName`
19
+ */
20
+ readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
21
+ /**
22
+ * Maps values
23
+ *
24
+ * For example, if you have a JSON object and you want to map all values to uppercase
25
+ * Or iterate over all CSV cells @@@
26
+ */
27
+ mapValues(value: TValue, outputParameterName: string_parameter_name, settings: TSettings, mapCallback: (subvalues: Parameters, index: number) => Promisable<string>): Promise<string>;
28
+ };
29
+ /**
30
+ * Note: [👩🏾‍🤝‍🧑🏽]
31
+ */