@promptbook/ollama 0.103.0-9 → 0.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +59 -39
  2. package/esm/index.es.js +324 -142
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/books/index.d.ts +0 -81
  5. package/esm/typings/servers.d.ts +9 -7
  6. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  7. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  8. package/esm/typings/src/_packages/components.index.d.ts +22 -8
  9. package/esm/typings/src/_packages/core.index.d.ts +58 -18
  10. package/esm/typings/src/_packages/node.index.d.ts +2 -2
  11. package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
  12. package/esm/typings/src/_packages/types.index.d.ts +70 -8
  13. package/esm/typings/src/_packages/utils.index.d.ts +6 -0
  14. package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
  15. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +20 -5
  16. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +17 -1
  17. package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
  18. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
  19. package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +3 -3
  20. package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
  21. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
  22. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +18 -0
  23. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
  24. package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +3 -0
  25. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +6 -1
  26. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +85 -14
  27. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +18 -0
  28. package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  29. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +17 -0
  30. package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
  31. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +16 -0
  32. package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
  33. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
  34. package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
  35. package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
  36. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
  37. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
  38. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
  39. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +52 -0
  40. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +14 -0
  41. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  42. package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  43. package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  44. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
  45. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  46. package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
  47. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
  48. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  49. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  50. package/esm/typings/src/book-components/icons/CameraIcon.d.ts +11 -0
  51. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
  52. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  53. package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  54. package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  55. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  56. package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
  57. package/esm/typings/src/book-components/icons/SendIcon.d.ts +3 -0
  58. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  59. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  60. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  61. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  62. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  63. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  64. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  65. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  66. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  67. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  68. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  69. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  70. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  71. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
  72. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
  73. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
  74. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
  75. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  76. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  77. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  78. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  79. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  80. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
  81. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  82. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  83. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  84. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  85. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
  86. package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +39 -0
  87. package/esm/typings/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
  88. package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
  89. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
  90. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
  91. package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
  92. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
  93. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
  94. package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
  95. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
  96. package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
  97. package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
  98. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
  99. package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
  100. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
  101. package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
  102. package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
  103. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
  104. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
  105. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
  106. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
  107. package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
  108. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
  109. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
  110. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
  111. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
  112. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
  113. package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
  114. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +42 -0
  115. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
  116. package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
  117. package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
  118. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +14 -2
  119. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
  120. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
  121. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  122. package/esm/typings/src/commitments/index.d.ts +93 -0
  123. package/esm/typings/src/config.d.ts +24 -3
  124. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
  125. package/esm/typings/src/errors/0-index.d.ts +6 -0
  126. package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
  127. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  128. package/esm/typings/src/errors/WrappedError.d.ts +2 -2
  129. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  130. package/esm/typings/src/execution/Executables.d.ts +3 -0
  131. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  132. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  133. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  134. package/esm/typings/src/execution/LlmExecutionTools.d.ts +26 -2
  135. package/esm/typings/src/execution/PromptResult.d.ts +7 -1
  136. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  137. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  138. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  139. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  140. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  141. package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
  142. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  143. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
  144. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  145. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  146. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  147. package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
  148. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
  149. package/esm/typings/src/llm-providers/agent/Agent.d.ts +72 -0
  150. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
  151. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
  152. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
  153. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
  154. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  155. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  156. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  157. package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
  158. package/esm/typings/src/llm-providers/ollama/OllamaExecutionTools.d.ts +4 -0
  159. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
  160. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  161. package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +13 -1
  162. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +4 -0
  163. package/esm/typings/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +6 -6
  164. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  165. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  166. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  167. package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
  168. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  169. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  170. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
  171. package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
  172. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  173. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
  174. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  175. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  176. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  177. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  178. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  179. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  180. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  181. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  182. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  183. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  184. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  185. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  186. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  187. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  188. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  189. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  190. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
  191. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  192. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  193. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
  194. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  195. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
  196. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  197. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  198. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  199. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  200. package/esm/typings/src/types/ModelRequirements.d.ts +13 -1
  201. package/esm/typings/src/types/ModelVariant.d.ts +1 -1
  202. package/esm/typings/src/types/Prompt.d.ts +13 -1
  203. package/esm/typings/src/types/Updatable.d.ts +19 -0
  204. package/esm/typings/src/types/typeAliases.d.ts +38 -2
  205. package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
  206. package/esm/typings/src/utils/color/Color.d.ts +16 -1
  207. package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
  208. package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
  209. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  210. package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
  211. package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
  212. package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
  213. package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
  214. package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
  215. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  216. package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
  217. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  218. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  219. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  220. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  221. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  222. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  223. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
  224. package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
  225. package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
  226. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  227. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  228. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  229. package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
  230. package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
  231. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  232. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  233. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  234. package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
  235. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  236. package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
  237. package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
  238. package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
  239. package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
  240. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +31 -0
  241. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
  242. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
  243. package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
  244. package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
  245. package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
  246. package/esm/typings/src/utils/random/CzechNamePool.d.ts +7 -0
  247. package/esm/typings/src/utils/random/EnglishNamePool.d.ts +7 -0
  248. package/esm/typings/src/utils/random/NamePool.d.ts +17 -0
  249. package/esm/typings/src/utils/random/getNamePool.d.ts +10 -0
  250. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  251. package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
  252. package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
  253. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
  254. package/esm/typings/src/version.d.ts +1 -1
  255. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  256. package/package.json +6 -6
  257. package/umd/index.umd.js +323 -141
  258. package/umd/index.umd.js.map +1 -1
  259. package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
  260. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
  261. package/esm/typings/src/book-components/BookEditor/BookEditorWrapper.d.ts +0 -9
  262. package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
  263. package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
  264. package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
  265. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
  266. /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
  267. /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
  268. /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
  269. /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
  270. /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
  271. /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
  272. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
  273. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
package/umd/index.umd.js CHANGED
@@ -1,12 +1,12 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('crypto'), require('bottleneck'), require('colors'), require('openai')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'crypto', 'bottleneck', 'colors', 'openai'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-ollama"] = {}, global.spaceTrim, global.crypto, global.Bottleneck, global.colors, global.OpenAI));
5
- })(this, (function (exports, spaceTrim, crypto, Bottleneck, colors, OpenAI) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-ollama"] = {}, global.spaceTrim$1, global.crypto, global.Bottleneck, global.colors, global.OpenAI));
5
+ })(this, (function (exports, spaceTrim$1, crypto, Bottleneck, colors, OpenAI) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
9
- var spaceTrim__default = /*#__PURE__*/_interopDefaultLegacy(spaceTrim);
9
+ var spaceTrim__default = /*#__PURE__*/_interopDefaultLegacy(spaceTrim$1);
10
10
  var Bottleneck__default = /*#__PURE__*/_interopDefaultLegacy(Bottleneck);
11
11
  var colors__default = /*#__PURE__*/_interopDefaultLegacy(colors);
12
12
  var OpenAI__default = /*#__PURE__*/_interopDefaultLegacy(OpenAI);
@@ -18,14 +18,14 @@
18
18
  * @generated
19
19
  * @see https://github.com/webgptorg/book
20
20
  */
21
- const BOOK_LANGUAGE_VERSION = '1.0.0';
21
+ const BOOK_LANGUAGE_VERSION = '2.0.0';
22
22
  /**
23
23
  * The version of the Promptbook engine
24
24
  *
25
25
  * @generated
26
26
  * @see https://github.com/webgptorg/promptbook
27
27
  */
28
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-9';
28
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0';
29
29
  /**
30
30
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
31
31
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -181,6 +181,17 @@
181
181
  return orderedValue;
182
182
  }
183
183
 
184
+ /**
185
+ * Trims string from all 4 sides
186
+ *
187
+ * Note: This is a re-exported function from the `spacetrim` package which is
188
+ * Developed by same author @hejny as this package
189
+ *
190
+ * @public exported from `@promptbook/utils`
191
+ * @see https://github.com/hejny/spacetrim#usage
192
+ */
193
+ const spaceTrim = spaceTrim$1.spaceTrim;
194
+
184
195
  /**
185
196
  * @private util of `@promptbook/color`
186
197
  * @de
@@ -229,6 +240,7 @@
229
240
  * @public exported from `@promptbook/color`
230
241
  */
231
242
  const CSS_COLORS = {
243
+ promptbook: '#79EAFD',
232
244
  transparent: 'rgba(0,0,0,0)',
233
245
  aliceblue: '#f0f8ff',
234
246
  antiquewhite: '#faebd7',
@@ -410,9 +422,6 @@
410
422
  throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
411
423
  }
412
424
  }
413
- /**
414
- * TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
415
- */
416
425
 
417
426
  /**
418
427
  * Color object represents an RGB color with alpha channel
@@ -432,21 +441,61 @@
432
441
  * @param color
433
442
  * @returns Color object
434
443
  */
435
- static from(color) {
436
- if (color instanceof Color) {
444
+ static from(color, _isSingleValue = false) {
445
+ if (color === '') {
446
+ throw new Error(`Can not create color from empty string`);
447
+ }
448
+ else if (color instanceof Color) {
437
449
  return take(color);
438
450
  }
439
451
  else if (Color.isColor(color)) {
440
452
  return take(color);
441
453
  }
442
454
  else if (typeof color === 'string') {
443
- return Color.fromString(color);
455
+ try {
456
+ return Color.fromString(color);
457
+ }
458
+ catch (error) {
459
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
460
+ if (_isSingleValue) {
461
+ throw error;
462
+ }
463
+ const parts = color.split(/[\s+,;|]/);
464
+ if (parts.length > 0) {
465
+ return Color.from(parts[0].trim(), true);
466
+ }
467
+ else {
468
+ throw new Error(`Can not create color from given string "${color}"`);
469
+ }
470
+ }
444
471
  }
445
472
  else {
446
473
  console.error({ color });
447
474
  throw new Error(`Can not create color from given object`);
448
475
  }
449
476
  }
477
+ /**
478
+ * Creates a new Color instance from miscellaneous formats
479
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
480
+ *
481
+ * @param color
482
+ * @returns Color object
483
+ */
484
+ static fromSafe(color) {
485
+ try {
486
+ return Color.from(color);
487
+ }
488
+ catch (error) {
489
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
490
+ console.warn(spaceTrim((block) => `
491
+ Color.fromSafe error:
492
+ ${block(error.message)}
493
+
494
+ Returning default PROMPTBOOK_COLOR.
495
+ `));
496
+ return Color.fromString('promptbook');
497
+ }
498
+ }
450
499
  /**
451
500
  * Creates a new Color instance from miscellaneous string formats
452
501
  *
@@ -514,6 +563,9 @@
514
563
  if (hex.length === 3) {
515
564
  return Color.fromHex3(hex);
516
565
  }
566
+ if (hex.length === 4) {
567
+ return Color.fromHex4(hex);
568
+ }
517
569
  if (hex.length === 6) {
518
570
  return Color.fromHex6(hex);
519
571
  }
@@ -534,6 +586,19 @@
534
586
  const b = parseInt(hex.substr(2, 1), 16) * 16;
535
587
  return take(new Color(r, g, b));
536
588
  }
589
+ /**
590
+ * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
591
+ *
592
+ * @param color in hex for example `09df`
593
+ * @returns Color object
594
+ */
595
+ static fromHex4(hex) {
596
+ const r = parseInt(hex.substr(0, 1), 16) * 16;
597
+ const g = parseInt(hex.substr(1, 1), 16) * 16;
598
+ const b = parseInt(hex.substr(2, 1), 16) * 16;
599
+ const a = parseInt(hex.substr(3, 1), 16) * 16;
600
+ return take(new Color(r, g, b, a));
601
+ }
537
602
  /**
538
603
  * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
539
604
  *
@@ -724,7 +789,8 @@
724
789
  * @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
725
790
  */
726
791
  static isHexColorString(value) {
727
- return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
792
+ return (typeof value === 'string' &&
793
+ /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
728
794
  }
729
795
  /**
730
796
  * Creates new Color object
@@ -839,6 +905,23 @@
839
905
  * TODO: Maybe connect with textures
840
906
  */
841
907
 
908
+ /**
909
+ * Makes color transformer which returns a grayscale version of the color
910
+ *
911
+ * @param amount from 0 to 1
912
+ *
913
+ * @public exported from `@promptbook/color`
914
+ */
915
+ function grayscale(amount) {
916
+ return ({ red, green, blue, alpha }) => {
917
+ const average = (red + green + blue) / 3;
918
+ red = Math.round(average * amount + red * (1 - amount));
919
+ green = Math.round(average * amount + green * (1 - amount));
920
+ blue = Math.round(average * amount + blue * (1 - amount));
921
+ return Color.fromValues(red, green, blue, alpha);
922
+ };
923
+ }
924
+
842
925
  /**
843
926
  * Converts HSL values to RGB values
844
927
  *
@@ -954,102 +1037,6 @@
954
1037
  * TODO: Maybe implement by mix+hsl
955
1038
  */
956
1039
 
957
- /**
958
- * Calculates distance between two colors
959
- *
960
- * @param color1 first color
961
- * @param color2 second color
962
- *
963
- * Note: This function is inefficient. Use colorDistanceSquared instead if possible.
964
- *
965
- * @public exported from `@promptbook/color`
966
- */
967
- /**
968
- * Calculates distance between two colors without square root
969
- *
970
- * @param color1 first color
971
- * @param color2 second color
972
- *
973
- * @public exported from `@promptbook/color`
974
- */
975
- function colorDistanceSquared(color1, color2) {
976
- const rmean = (color1.red + color2.red) / 2;
977
- const r = color1.red - color2.red;
978
- const g = color1.green - color2.green;
979
- const b = color1.blue - color2.blue;
980
- const weightR = 2 + rmean / 256;
981
- const weightG = 4.0;
982
- const weightB = 2 + (255 - rmean) / 256;
983
- const distance = weightR * r * r + weightG * g * g + weightB * b * b;
984
- return distance;
985
- }
986
-
987
- /**
988
- * Makes color transformer which finds the nearest color from the given list
989
- *
990
- * @param colors array of colors to choose from
991
- *
992
- * @public exported from `@promptbook/color`
993
- */
994
- function nearest(...colors) {
995
- return (color) => {
996
- const distances = colors.map((c) => colorDistanceSquared(c, color));
997
- const minDistance = Math.min(...distances);
998
- const minIndex = distances.indexOf(minDistance);
999
- const nearestColor = colors[minIndex];
1000
- return nearestColor;
1001
- };
1002
- }
1003
-
1004
- /**
1005
- * Color transformer which returns the negative color
1006
- *
1007
- * @public exported from `@promptbook/color`
1008
- */
1009
- function negative(color) {
1010
- const r = 255 - color.red;
1011
- const g = 255 - color.green;
1012
- const b = 255 - color.blue;
1013
- return Color.fromValues(r, g, b, color.alpha);
1014
- }
1015
-
1016
- /**
1017
- * Makes color transformer which finds the furthest color from the given list
1018
- *
1019
- * @param colors array of colors to choose from
1020
- *
1021
- * @public exported from `@promptbook/color`
1022
- */
1023
- function furthest(...colors) {
1024
- return (color) => {
1025
- const furthestColor = negative(nearest(...colors.map(negative))(color));
1026
- return furthestColor;
1027
- };
1028
- }
1029
- /**
1030
- * Makes color transformer which finds the best text color (black or white) for the given background color
1031
- *
1032
- * @public exported from `@promptbook/color`
1033
- */
1034
- furthest(Color.get('white'), Color.from('black'));
1035
-
1036
- /**
1037
- * Makes color transformer which returns a grayscale version of the color
1038
- *
1039
- * @param amount from 0 to 1
1040
- *
1041
- * @public exported from `@promptbook/color`
1042
- */
1043
- function grayscale(amount) {
1044
- return ({ red, green, blue, alpha }) => {
1045
- const average = (red + green + blue) / 3;
1046
- red = Math.round(average * amount + red * (1 - amount));
1047
- green = Math.round(average * amount + green * (1 - amount));
1048
- blue = Math.round(average * amount + blue * (1 - amount));
1049
- return Color.fromValues(red, green, blue, alpha);
1050
- };
1051
- }
1052
-
1053
1040
  /**
1054
1041
  * Makes color transformer which saturate the given color
1055
1042
  *
@@ -1098,16 +1085,32 @@
1098
1085
  *
1099
1086
  * @public exported from `@promptbook/core`
1100
1087
  */
1101
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
1102
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
1088
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
1089
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1090
+ /**
1091
+ * Colors for syntax highlighting in the `<BookEditor/>`
1092
+ *
1093
+ * TODO: [🗽] Unite branding and make single place for it
1094
+ *
1095
+ * @public exported from `@promptbook/core`
1096
+ */
1097
+ ({
1098
+ TITLE: Color.fromHex('#244EA8'),
1099
+ LINE: Color.fromHex('#eeeeee'),
1100
+ SEPARATOR: Color.fromHex('#cccccc'),
1101
+ COMMITMENT: Color.fromHex('#DA0F78'),
1102
+ PARAMETER: Color.fromHex('#8e44ad'),
1103
+ });
1104
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1103
1105
  /**
1104
- * Dark color of the Promptbook
1106
+ * Chat color of the Promptbook (in chat)
1105
1107
  *
1106
1108
  * TODO: [🗽] Unite branding and make single place for it
1107
1109
  *
1108
1110
  * @public exported from `@promptbook/core`
1109
1111
  */
1110
1112
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
1113
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
1111
1114
  /**
1112
1115
  * Color of the user (in chat)
1113
1116
  *
@@ -1234,7 +1237,7 @@
1234
1237
  */
1235
1238
  class UnexpectedError extends Error {
1236
1239
  constructor(message) {
1237
- super(spaceTrim.spaceTrim((block) => `
1240
+ super(spaceTrim$1.spaceTrim((block) => `
1238
1241
  ${block(message)}
1239
1242
 
1240
1243
  Note: This error should not happen.
@@ -1260,7 +1263,7 @@
1260
1263
  constructor(whatWasThrown) {
1261
1264
  const tag = `[🤮]`;
1262
1265
  console.error(tag, whatWasThrown);
1263
- super(spaceTrim.spaceTrim(`
1266
+ super(spaceTrim$1.spaceTrim(`
1264
1267
  Non-Error object was thrown
1265
1268
 
1266
1269
  Note: Look for ${tag} in the console for more details
@@ -1453,7 +1456,7 @@
1453
1456
  TODO: [🧠] Is there a better implementation?
1454
1457
  > const propertyNames = Object.getOwnPropertyNames(objectValue);
1455
1458
  > for (const propertyName of propertyNames) {
1456
- > const value = (objectValue as really_any)[propertyName];
1459
+ > const value = (objectValue as chococake)[propertyName];
1457
1460
  > if (value && typeof value === 'object') {
1458
1461
  > deepClone(value);
1459
1462
  > }
@@ -1550,6 +1553,7 @@
1550
1553
  /**
1551
1554
  * Generates random token
1552
1555
  *
1556
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
1553
1557
  * Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
1554
1558
  *
1555
1559
  * @private internal helper function
@@ -1559,6 +1563,7 @@
1559
1563
  return crypto.randomBytes(randomness).toString('hex');
1560
1564
  }
1561
1565
  /**
1566
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
1562
1567
  * TODO: Maybe use nanoid instead https://github.com/ai/nanoid
1563
1568
  */
1564
1569
 
@@ -1625,10 +1630,13 @@
1625
1630
  * @public exported from `@promptbook/utils`
1626
1631
  */
1627
1632
  function countLines(text) {
1633
+ if (text === '') {
1634
+ return 0;
1635
+ }
1628
1636
  text = text.replace('\r\n', '\n');
1629
1637
  text = text.replace('\r', '\n');
1630
1638
  const lines = text.split('\n');
1631
- return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
1639
+ return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
1632
1640
  }
1633
1641
  /**
1634
1642
  * TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
@@ -2015,7 +2023,7 @@
2015
2023
  /**
2016
2024
  * List of available OpenAI models with pricing
2017
2025
  *
2018
- * Note: Synced with official API docs at 2025-08-20
2026
+ * Note: Synced with official API docs at 2025-11-19
2019
2027
  *
2020
2028
  * @see https://platform.openai.com/docs/models/
2021
2029
  * @see https://openai.com/api/pricing/
@@ -2025,11 +2033,21 @@
2025
2033
  name: 'OPENAI_MODELS',
2026
2034
  value: [
2027
2035
  /**/
2036
+ {
2037
+ modelVariant: 'CHAT',
2038
+ modelTitle: 'gpt-5.1',
2039
+ modelName: 'gpt-5.1',
2040
+ modelDescription: 'The best model for coding and agentic tasks with configurable reasoning effort.',
2041
+ pricing: {
2042
+ prompt: pricing(`$1.25 / 1M tokens`),
2043
+ output: pricing(`$10.00 / 1M tokens`),
2044
+ },
2045
+ },
2028
2046
  {
2029
2047
  modelVariant: 'CHAT',
2030
2048
  modelTitle: 'gpt-5',
2031
2049
  modelName: 'gpt-5',
2032
- modelDescription: "OpenAI's most advanced language model with unprecedented reasoning capabilities and 200K context window. Features revolutionary improvements in complex problem-solving, scientific reasoning, and creative tasks. Demonstrates human-level performance across diverse domains with enhanced safety measures and alignment. Represents the next generation of AI with superior understanding, nuanced responses, and advanced multimodal capabilities.",
2050
+ modelDescription: "OpenAI's most advanced language model with unprecedented reasoning capabilities and 200K context window. Features revolutionary improvements in complex problem-solving, scientific reasoning, and creative tasks. Demonstrates human-level performance across diverse domains with enhanced safety measures and alignment. Represents the next generation of AI with superior understanding, nuanced responses, and advanced multimodal capabilities. DEPRECATED: Use gpt-5.1 instead.",
2033
2051
  pricing: {
2034
2052
  prompt: pricing(`$1.25 / 1M tokens`),
2035
2053
  output: pricing(`$10.00 / 1M tokens`),
@@ -2156,12 +2174,18 @@
2156
2174
  },
2157
2175
  },
2158
2176
  /**/
2159
- /*/
2160
- {
2161
- modelTitle: 'dall-e-3',
2162
- modelName: 'dall-e-3',
2163
- },
2164
- /**/
2177
+ /**/
2178
+ {
2179
+ modelVariant: 'IMAGE_GENERATION',
2180
+ modelTitle: 'dall-e-3',
2181
+ modelName: 'dall-e-3',
2182
+ modelDescription: 'DALL·E 3 is the latest version of the DALL·E art generation model. It understands significantly more nuance and detail than our previous systems, allowing you to easily translate your ideas into exceptionally accurate images.',
2183
+ pricing: {
2184
+ prompt: 0,
2185
+ output: 0.04,
2186
+ },
2187
+ },
2188
+ /**/
2165
2189
  /*/
2166
2190
  {
2167
2191
  modelTitle: 'whisper-1',
@@ -2180,12 +2204,18 @@
2180
2204
  },
2181
2205
  },
2182
2206
  /**/
2183
- /*/
2184
- {
2185
- modelTitle: 'dall-e-2',
2186
- modelName: 'dall-e-2',
2187
- },
2188
- /**/
2207
+ /**/
2208
+ {
2209
+ modelVariant: 'IMAGE_GENERATION',
2210
+ modelTitle: 'dall-e-2',
2211
+ modelName: 'dall-e-2',
2212
+ modelDescription: 'DALL·E 2 is an AI system that can create realistic images and art from a description in natural language.',
2213
+ pricing: {
2214
+ prompt: 0,
2215
+ output: 0.02,
2216
+ },
2217
+ },
2218
+ /**/
2189
2219
  /**/
2190
2220
  {
2191
2221
  modelVariant: 'CHAT',
@@ -2199,17 +2229,17 @@
2199
2229
  },
2200
2230
  /**/
2201
2231
  /*/
2202
- {
2203
- modelTitle: 'tts-1-hd-1106',
2204
- modelName: 'tts-1-hd-1106',
2205
- },
2206
- /**/
2232
+ {
2233
+ modelTitle: 'tts-1-hd-1106',
2234
+ modelName: 'tts-1-hd-1106',
2235
+ },
2236
+ /**/
2207
2237
  /*/
2208
- {
2209
- modelTitle: 'tts-1-hd',
2210
- modelName: 'tts-1-hd',
2211
- },
2212
- /**/
2238
+ {
2239
+ modelTitle: 'tts-1-hd',
2240
+ modelName: 'tts-1-hd',
2241
+ },
2242
+ /**/
2213
2243
  /**/
2214
2244
  {
2215
2245
  modelVariant: 'CHAT',
@@ -3396,6 +3426,151 @@
3396
3426
  return this.callEmbeddingModelWithRetry(prompt, modifiedModelRequirements, attemptStack, retriedUnsupportedParameters);
3397
3427
  }
3398
3428
  }
3429
+ /**
3430
+ * Calls OpenAI compatible API to use a image generation model
3431
+ */
3432
+ async callImageGenerationModel(prompt) {
3433
+ // Deep clone prompt and modelRequirements to avoid mutation across calls
3434
+ const clonedPrompt = JSON.parse(JSON.stringify(prompt));
3435
+ const retriedUnsupportedParameters = new Set();
3436
+ return this.callImageGenerationModelWithRetry(clonedPrompt, clonedPrompt.modelRequirements, [], retriedUnsupportedParameters);
3437
+ }
3438
+ /**
3439
+ * Internal method that handles parameter retry for image generation model calls
3440
+ */
3441
+ async callImageGenerationModelWithRetry(prompt, currentModelRequirements, attemptStack = [], retriedUnsupportedParameters = new Set()) {
3442
+ var _a, _b;
3443
+ if (this.options.isVerbose) {
3444
+ console.info(`🎨 ${this.title} callImageGenerationModel call`, { prompt, currentModelRequirements });
3445
+ }
3446
+ const { content, parameters } = prompt;
3447
+ const client = await this.getClient();
3448
+ // TODO: [☂] Use here more modelRequirements
3449
+ if (currentModelRequirements.modelVariant !== 'IMAGE_GENERATION') {
3450
+ throw new PipelineExecutionError('Use callImageGenerationModel only for IMAGE_GENERATION variant');
3451
+ }
3452
+ const modelName = currentModelRequirements.modelName || this.getDefaultImageGenerationModel().modelName;
3453
+ const modelSettings = {
3454
+ model: modelName,
3455
+ // size: currentModelRequirements.size,
3456
+ // quality: currentModelRequirements.quality,
3457
+ // style: currentModelRequirements.style,
3458
+ };
3459
+ const rawPromptContent = templateParameters(content, { ...parameters, modelName });
3460
+ const rawRequest = {
3461
+ ...modelSettings,
3462
+ prompt: rawPromptContent,
3463
+ user: (_a = this.options.userId) === null || _a === void 0 ? void 0 : _a.toString(),
3464
+ response_format: 'url', // TODO: [🧠] Maybe allow b64_json
3465
+ };
3466
+ const start = $getCurrentDate();
3467
+ if (this.options.isVerbose) {
3468
+ console.info(colors__default["default"].bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
3469
+ }
3470
+ try {
3471
+ const rawResponse = await this.limiter
3472
+ .schedule(() => this.makeRequestWithNetworkRetry(() => client.images.generate(rawRequest)))
3473
+ .catch((error) => {
3474
+ assertsError(error);
3475
+ if (this.options.isVerbose) {
3476
+ console.info(colors__default["default"].bgRed('error'), error);
3477
+ }
3478
+ throw error;
3479
+ });
3480
+ if (this.options.isVerbose) {
3481
+ console.info(colors__default["default"].bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
3482
+ }
3483
+ const complete = $getCurrentDate();
3484
+ if (!rawResponse.data[0]) {
3485
+ throw new PipelineExecutionError(`No choises from ${this.title}`);
3486
+ }
3487
+ if (rawResponse.data.length > 1) {
3488
+ throw new PipelineExecutionError(`More than one choise from ${this.title}`);
3489
+ }
3490
+ const resultContent = rawResponse.data[0].url;
3491
+ const modelInfo = this.HARDCODED_MODELS.find((model) => model.modelName === modelName);
3492
+ const price = ((_b = modelInfo === null || modelInfo === void 0 ? void 0 : modelInfo.pricing) === null || _b === void 0 ? void 0 : _b.output) ? uncertainNumber(modelInfo.pricing.output) : uncertainNumber();
3493
+ return exportJson({
3494
+ name: 'promptResult',
3495
+ message: `Result of \`OpenAiCompatibleExecutionTools.callImageGenerationModel\``,
3496
+ order: [],
3497
+ value: {
3498
+ content: resultContent,
3499
+ modelName: modelName,
3500
+ timing: {
3501
+ start,
3502
+ complete,
3503
+ },
3504
+ usage: {
3505
+ price,
3506
+ input: {
3507
+ tokensCount: uncertainNumber(0),
3508
+ ...computeUsageCounts(rawPromptContent),
3509
+ },
3510
+ output: {
3511
+ tokensCount: uncertainNumber(0),
3512
+ ...computeUsageCounts(''),
3513
+ },
3514
+ },
3515
+ rawPromptContent,
3516
+ rawRequest,
3517
+ rawResponse,
3518
+ },
3519
+ });
3520
+ }
3521
+ catch (error) {
3522
+ assertsError(error);
3523
+ if (!isUnsupportedParameterError(error)) {
3524
+ if (attemptStack.length > 0) {
3525
+ throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
3526
+ attemptStack
3527
+ .map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
3528
+ (a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
3529
+ `, Error: ${a.errorMessage}` +
3530
+ (a.stripped ? ' (stripped and retried)' : ''))
3531
+ .join('\n') +
3532
+ `\nFinal error: ${error.message}`);
3533
+ }
3534
+ throw error;
3535
+ }
3536
+ const unsupportedParameter = parseUnsupportedParameterError(error.message);
3537
+ if (!unsupportedParameter) {
3538
+ if (this.options.isVerbose) {
3539
+ console.warn(colors__default["default"].bgYellow('Warning'), 'Could not parse unsupported parameter from error:', error.message);
3540
+ }
3541
+ throw error;
3542
+ }
3543
+ const retryKey = `${modelName}-${unsupportedParameter}`;
3544
+ if (retriedUnsupportedParameters.has(retryKey)) {
3545
+ attemptStack.push({
3546
+ modelName,
3547
+ unsupportedParameter,
3548
+ errorMessage: error.message,
3549
+ stripped: true,
3550
+ });
3551
+ throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
3552
+ attemptStack
3553
+ .map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
3554
+ (a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
3555
+ `, Error: ${a.errorMessage}` +
3556
+ (a.stripped ? ' (stripped and retried)' : ''))
3557
+ .join('\n') +
3558
+ `\nFinal error: ${error.message}`);
3559
+ }
3560
+ retriedUnsupportedParameters.add(retryKey);
3561
+ if (this.options.isVerbose) {
3562
+ console.warn(colors__default["default"].bgYellow('Warning'), `Removing unsupported parameter '${unsupportedParameter}' for model '${modelName}' and retrying request`);
3563
+ }
3564
+ attemptStack.push({
3565
+ modelName,
3566
+ unsupportedParameter,
3567
+ errorMessage: error.message,
3568
+ stripped: true,
3569
+ });
3570
+ const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
3571
+ return this.callImageGenerationModelWithRetry(prompt, modifiedModelRequirements, attemptStack, retriedUnsupportedParameters);
3572
+ }
3573
+ }
3399
3574
  // <- Note: [🤖] callXxxModel
3400
3575
  /**
3401
3576
  * Get the model that should be used as default
@@ -3776,7 +3951,7 @@
3776
3951
  ...ollamaOptions,
3777
3952
  apiKey: 'ollama',
3778
3953
  isProxied: false, // <- Note: Ollama is always local
3779
- };
3954
+ }; /* <- Note: [🤛] */
3780
3955
  super(openAiCompatibleOptions);
3781
3956
  }
3782
3957
  get title() {
@@ -3826,6 +4001,13 @@
3826
4001
  return this.getDefaultModel('text-embedding-3-large'); // <- TODO: [🧠] Pick the best default model
3827
4002
  // <- TODO: [🛄]
3828
4003
  }
4004
+ /**
4005
+ * Default model for image generation variant.
4006
+ */
4007
+ getDefaultImageGenerationModel() {
4008
+ return this.getDefaultModel('!!!'); // <- TODO: [🧠] Pick the best default model
4009
+ // <- TODO: [🛄]
4010
+ }
3829
4011
  }
3830
4012
  /**
3831
4013
  * TODO: [🛄] Some way how to re-wrap the errors from `OpenAiCompatibleExecutionTools`
@@ -3853,7 +4035,7 @@
3853
4035
  */
3854
4036
  class NotYetImplementedError extends Error {
3855
4037
  constructor(message) {
3856
- super(spaceTrim.spaceTrim((block) => `
4038
+ super(spaceTrim$1.spaceTrim((block) => `
3857
4039
  ${block(message)}
3858
4040
 
3859
4041
  Note: This feature is not implemented yet but it will be soon.