@promptbook/editable 0.103.0-9 → 0.104.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +59 -35
  2. package/esm/index.es.js +203 -148
  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 +67 -0
  40. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +23 -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 +5 -5
  257. package/umd/index.umd.js +177 -122
  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('papaparse'), require('crypto-js'), require('crypto-js/enc-hex')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'papaparse', 'crypto-js', 'crypto-js/enc-hex'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-editable"] = {}, global.spaceTrim, global.papaparse, global.cryptoJs, global.hexEncoder));
5
- })(this, (function (exports, spaceTrim, papaparse, cryptoJs, hexEncoder) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-editable"] = {}, global.spaceTrim$1, global.papaparse, global.cryptoJs, global.hexEncoder));
5
+ })(this, (function (exports, spaceTrim$1, papaparse, cryptoJs, hexEncoder) { '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 hexEncoder__default = /*#__PURE__*/_interopDefaultLegacy(hexEncoder);
11
11
 
12
12
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
@@ -16,19 +16,30 @@
16
16
  * @generated
17
17
  * @see https://github.com/webgptorg/book
18
18
  */
19
- const BOOK_LANGUAGE_VERSION = '1.0.0';
19
+ const BOOK_LANGUAGE_VERSION = '2.0.0';
20
20
  /**
21
21
  * The version of the Promptbook engine
22
22
  *
23
23
  * @generated
24
24
  * @see https://github.com/webgptorg/promptbook
25
25
  */
26
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-9';
26
+ const PROMPTBOOK_ENGINE_VERSION = '0.104.0-0';
27
27
  /**
28
28
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
29
29
  * Note: [💞] Ignore a discrepancy between file name and entity name
30
30
  */
31
31
 
32
+ /**
33
+ * Trims string from all 4 sides
34
+ *
35
+ * Note: This is a re-exported function from the `spacetrim` package which is
36
+ * Developed by same author @hejny as this package
37
+ *
38
+ * @public exported from `@promptbook/utils`
39
+ * @see https://github.com/hejny/spacetrim#usage
40
+ */
41
+ const spaceTrim = spaceTrim$1.spaceTrim;
42
+
32
43
  /**
33
44
  * @private util of `@promptbook/color`
34
45
  * @de
@@ -77,6 +88,7 @@
77
88
  * @public exported from `@promptbook/color`
78
89
  */
79
90
  const CSS_COLORS = {
91
+ promptbook: '#79EAFD',
80
92
  transparent: 'rgba(0,0,0,0)',
81
93
  aliceblue: '#f0f8ff',
82
94
  antiquewhite: '#faebd7',
@@ -258,9 +270,6 @@
258
270
  throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
259
271
  }
260
272
  }
261
- /**
262
- * TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
263
- */
264
273
 
265
274
  /**
266
275
  * Color object represents an RGB color with alpha channel
@@ -280,21 +289,61 @@
280
289
  * @param color
281
290
  * @returns Color object
282
291
  */
283
- static from(color) {
284
- if (color instanceof Color) {
292
+ static from(color, _isSingleValue = false) {
293
+ if (color === '') {
294
+ throw new Error(`Can not create color from empty string`);
295
+ }
296
+ else if (color instanceof Color) {
285
297
  return take(color);
286
298
  }
287
299
  else if (Color.isColor(color)) {
288
300
  return take(color);
289
301
  }
290
302
  else if (typeof color === 'string') {
291
- return Color.fromString(color);
303
+ try {
304
+ return Color.fromString(color);
305
+ }
306
+ catch (error) {
307
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
308
+ if (_isSingleValue) {
309
+ throw error;
310
+ }
311
+ const parts = color.split(/[\s+,;|]/);
312
+ if (parts.length > 0) {
313
+ return Color.from(parts[0].trim(), true);
314
+ }
315
+ else {
316
+ throw new Error(`Can not create color from given string "${color}"`);
317
+ }
318
+ }
292
319
  }
293
320
  else {
294
321
  console.error({ color });
295
322
  throw new Error(`Can not create color from given object`);
296
323
  }
297
324
  }
325
+ /**
326
+ * Creates a new Color instance from miscellaneous formats
327
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
328
+ *
329
+ * @param color
330
+ * @returns Color object
331
+ */
332
+ static fromSafe(color) {
333
+ try {
334
+ return Color.from(color);
335
+ }
336
+ catch (error) {
337
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
338
+ console.warn(spaceTrim((block) => `
339
+ Color.fromSafe error:
340
+ ${block(error.message)}
341
+
342
+ Returning default PROMPTBOOK_COLOR.
343
+ `));
344
+ return Color.fromString('promptbook');
345
+ }
346
+ }
298
347
  /**
299
348
  * Creates a new Color instance from miscellaneous string formats
300
349
  *
@@ -362,6 +411,9 @@
362
411
  if (hex.length === 3) {
363
412
  return Color.fromHex3(hex);
364
413
  }
414
+ if (hex.length === 4) {
415
+ return Color.fromHex4(hex);
416
+ }
365
417
  if (hex.length === 6) {
366
418
  return Color.fromHex6(hex);
367
419
  }
@@ -382,6 +434,19 @@
382
434
  const b = parseInt(hex.substr(2, 1), 16) * 16;
383
435
  return take(new Color(r, g, b));
384
436
  }
437
+ /**
438
+ * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
439
+ *
440
+ * @param color in hex for example `09df`
441
+ * @returns Color object
442
+ */
443
+ static fromHex4(hex) {
444
+ const r = parseInt(hex.substr(0, 1), 16) * 16;
445
+ const g = parseInt(hex.substr(1, 1), 16) * 16;
446
+ const b = parseInt(hex.substr(2, 1), 16) * 16;
447
+ const a = parseInt(hex.substr(3, 1), 16) * 16;
448
+ return take(new Color(r, g, b, a));
449
+ }
385
450
  /**
386
451
  * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
387
452
  *
@@ -572,7 +637,8 @@
572
637
  * @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
573
638
  */
574
639
  static isHexColorString(value) {
575
- return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
640
+ return (typeof value === 'string' &&
641
+ /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
576
642
  }
577
643
  /**
578
644
  * Creates new Color object
@@ -687,6 +753,23 @@
687
753
  * TODO: Maybe connect with textures
688
754
  */
689
755
 
756
+ /**
757
+ * Makes color transformer which returns a grayscale version of the color
758
+ *
759
+ * @param amount from 0 to 1
760
+ *
761
+ * @public exported from `@promptbook/color`
762
+ */
763
+ function grayscale(amount) {
764
+ return ({ red, green, blue, alpha }) => {
765
+ const average = (red + green + blue) / 3;
766
+ red = Math.round(average * amount + red * (1 - amount));
767
+ green = Math.round(average * amount + green * (1 - amount));
768
+ blue = Math.round(average * amount + blue * (1 - amount));
769
+ return Color.fromValues(red, green, blue, alpha);
770
+ };
771
+ }
772
+
690
773
  /**
691
774
  * Converts HSL values to RGB values
692
775
  *
@@ -802,102 +885,6 @@
802
885
  * TODO: Maybe implement by mix+hsl
803
886
  */
804
887
 
805
- /**
806
- * Calculates distance between two colors
807
- *
808
- * @param color1 first color
809
- * @param color2 second color
810
- *
811
- * Note: This function is inefficient. Use colorDistanceSquared instead if possible.
812
- *
813
- * @public exported from `@promptbook/color`
814
- */
815
- /**
816
- * Calculates distance between two colors without square root
817
- *
818
- * @param color1 first color
819
- * @param color2 second color
820
- *
821
- * @public exported from `@promptbook/color`
822
- */
823
- function colorDistanceSquared(color1, color2) {
824
- const rmean = (color1.red + color2.red) / 2;
825
- const r = color1.red - color2.red;
826
- const g = color1.green - color2.green;
827
- const b = color1.blue - color2.blue;
828
- const weightR = 2 + rmean / 256;
829
- const weightG = 4.0;
830
- const weightB = 2 + (255 - rmean) / 256;
831
- const distance = weightR * r * r + weightG * g * g + weightB * b * b;
832
- return distance;
833
- }
834
-
835
- /**
836
- * Makes color transformer which finds the nearest color from the given list
837
- *
838
- * @param colors array of colors to choose from
839
- *
840
- * @public exported from `@promptbook/color`
841
- */
842
- function nearest(...colors) {
843
- return (color) => {
844
- const distances = colors.map((c) => colorDistanceSquared(c, color));
845
- const minDistance = Math.min(...distances);
846
- const minIndex = distances.indexOf(minDistance);
847
- const nearestColor = colors[minIndex];
848
- return nearestColor;
849
- };
850
- }
851
-
852
- /**
853
- * Color transformer which returns the negative color
854
- *
855
- * @public exported from `@promptbook/color`
856
- */
857
- function negative(color) {
858
- const r = 255 - color.red;
859
- const g = 255 - color.green;
860
- const b = 255 - color.blue;
861
- return Color.fromValues(r, g, b, color.alpha);
862
- }
863
-
864
- /**
865
- * Makes color transformer which finds the furthest color from the given list
866
- *
867
- * @param colors array of colors to choose from
868
- *
869
- * @public exported from `@promptbook/color`
870
- */
871
- function furthest(...colors) {
872
- return (color) => {
873
- const furthestColor = negative(nearest(...colors.map(negative))(color));
874
- return furthestColor;
875
- };
876
- }
877
- /**
878
- * Makes color transformer which finds the best text color (black or white) for the given background color
879
- *
880
- * @public exported from `@promptbook/color`
881
- */
882
- furthest(Color.get('white'), Color.from('black'));
883
-
884
- /**
885
- * Makes color transformer which returns a grayscale version of the color
886
- *
887
- * @param amount from 0 to 1
888
- *
889
- * @public exported from `@promptbook/color`
890
- */
891
- function grayscale(amount) {
892
- return ({ red, green, blue, alpha }) => {
893
- const average = (red + green + blue) / 3;
894
- red = Math.round(average * amount + red * (1 - amount));
895
- green = Math.round(average * amount + green * (1 - amount));
896
- blue = Math.round(average * amount + blue * (1 - amount));
897
- return Color.fromValues(red, green, blue, alpha);
898
- };
899
- }
900
-
901
888
  /**
902
889
  * Makes color transformer which saturate the given color
903
890
  *
@@ -966,16 +953,32 @@
966
953
  *
967
954
  * @public exported from `@promptbook/core`
968
955
  */
969
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
970
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
956
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
957
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
958
+ /**
959
+ * Colors for syntax highlighting in the `<BookEditor/>`
960
+ *
961
+ * TODO: [🗽] Unite branding and make single place for it
962
+ *
963
+ * @public exported from `@promptbook/core`
964
+ */
965
+ ({
966
+ TITLE: Color.fromHex('#244EA8'),
967
+ LINE: Color.fromHex('#eeeeee'),
968
+ SEPARATOR: Color.fromHex('#cccccc'),
969
+ COMMITMENT: Color.fromHex('#DA0F78'),
970
+ PARAMETER: Color.fromHex('#8e44ad'),
971
+ });
972
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
971
973
  /**
972
- * Dark color of the Promptbook
974
+ * Chat color of the Promptbook (in chat)
973
975
  *
974
976
  * TODO: [🗽] Unite branding and make single place for it
975
977
  *
976
978
  * @public exported from `@promptbook/core`
977
979
  */
978
980
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
981
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
979
982
  /**
980
983
  * Color of the user (in chat)
981
984
  *
@@ -984,6 +987,7 @@
984
987
  * @public exported from `@promptbook/core`
985
988
  */
986
989
  Color.fromHex('#1D4ED8');
990
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
987
991
  /**
988
992
  * When the title is not provided, the default title is used
989
993
  *
@@ -1078,7 +1082,7 @@
1078
1082
  */
1079
1083
  class UnexpectedError extends Error {
1080
1084
  constructor(message) {
1081
- super(spaceTrim.spaceTrim((block) => `
1085
+ super(spaceTrim$1.spaceTrim((block) => `
1082
1086
  ${block(message)}
1083
1087
 
1084
1088
  Note: This error should not happen.
@@ -1211,7 +1215,7 @@
1211
1215
  */
1212
1216
  class NotYetImplementedError extends Error {
1213
1217
  constructor(message) {
1214
- super(spaceTrim.spaceTrim((block) => `
1218
+ super(spaceTrim$1.spaceTrim((block) => `
1215
1219
  ${block(message)}
1216
1220
 
1217
1221
  Note: This feature is not implemented yet but it will be soon.
@@ -1354,7 +1358,7 @@
1354
1358
  constructor(whatWasThrown) {
1355
1359
  const tag = `[🤮]`;
1356
1360
  console.error(tag, whatWasThrown);
1357
- super(spaceTrim.spaceTrim(`
1361
+ super(spaceTrim$1.spaceTrim(`
1358
1362
  Non-Error object was thrown
1359
1363
 
1360
1364
  Note: Look for ${tag} in the console for more details
@@ -2214,7 +2218,7 @@
2214
2218
  TODO: [🧠] Is there a better implementation?
2215
2219
  > const propertyNames = Object.getOwnPropertyNames(objectValue);
2216
2220
  > for (const propertyName of propertyNames) {
2217
- > const value = (objectValue as really_any)[propertyName];
2221
+ > const value = (objectValue as chococake)[propertyName];
2218
2222
  > if (value && typeof value === 'object') {
2219
2223
  > deepClone(value);
2220
2224
  > }
@@ -2293,6 +2297,8 @@
2293
2297
  /**
2294
2298
  * Normalizes a given text to camelCase format.
2295
2299
  *
2300
+ * Note: [🔂] This function is idempotent.
2301
+ *
2296
2302
  * @param text The text to be normalized.
2297
2303
  * @param _isFirstLetterCapital Whether the first letter should be capitalized.
2298
2304
  * @returns The camelCase formatted string.
@@ -2651,6 +2657,8 @@
2651
2657
  * Function `validateParameterName` will normalize and validate a parameter name for use in pipelines.
2652
2658
  * It removes diacritics, emojis, and quotes, normalizes to camelCase, and checks for reserved names and invalid characters.
2653
2659
  *
2660
+ * Note: [🔂] This function is idempotent.
2661
+ *
2654
2662
  * @param parameterName The parameter name to validate and normalize.
2655
2663
  * @returns The validated and normalized parameter name.
2656
2664
  * @throws {ParseError} If the parameter name is empty, reserved, or contains invalid characters.
@@ -3488,6 +3496,8 @@
3488
3496
  /**
3489
3497
  * Converts a given text to kebab-case format.
3490
3498
  *
3499
+ * Note: [🔂] This function is idempotent.
3500
+ *
3491
3501
  * @param text The text to be converted.
3492
3502
  * @returns The kebab-case formatted string.
3493
3503
  * @example 'hello-world'
@@ -3655,7 +3665,7 @@
3655
3665
  * @see {@link ModelVariant}
3656
3666
  * @public exported from `@promptbook/core`
3657
3667
  */
3658
- const MODEL_VARIANTS = ['COMPLETION', 'CHAT', 'EMBEDDING' /* <- TODO [🏳] */ /* <- [🤖] */];
3668
+ const MODEL_VARIANTS = ['COMPLETION', 'CHAT', 'IMAGE_GENERATION', 'EMBEDDING' /* <- TODO [🏳] */ /* <- [🤖] */];
3659
3669
 
3660
3670
  /**
3661
3671
  * Parses the model command
@@ -4703,7 +4713,7 @@
4703
4713
  function getParserForCommand(command) {
4704
4714
  const commandParser = COMMANDS.find((commandParser) => commandParser.name === command.type);
4705
4715
  if (commandParser === undefined) {
4706
- throw new UnexpectedError(spaceTrim.spaceTrim((block) => `
4716
+ throw new UnexpectedError(spaceTrim$1.spaceTrim((block) => `
4707
4717
  Command ${command.type} parser is not found
4708
4718
 
4709
4719
  ${block(JSON.stringify(command, null, 4)
@@ -4779,7 +4789,7 @@
4779
4789
  .map(removeMarkdownFormatting)
4780
4790
  .map((item) => item.trim());
4781
4791
  if (items.length === 0 || items[0] === '') {
4782
- throw new ParseError(spaceTrim.spaceTrim((block) => `
4792
+ throw new ParseError(spaceTrim$1.spaceTrim((block) => `
4783
4793
  Malformed command:
4784
4794
  - ${raw}
4785
4795
 
@@ -4815,7 +4825,7 @@
4815
4825
  return command;
4816
4826
  }
4817
4827
  }
4818
- throw new ParseError(spaceTrim.spaceTrim((block) => `
4828
+ throw new ParseError(spaceTrim$1.spaceTrim((block) => `
4819
4829
  Malformed or unknown command:
4820
4830
  - ${raw}
4821
4831
 
@@ -4866,7 +4876,7 @@
4866
4876
  if (!(error instanceof ParseError)) {
4867
4877
  throw error;
4868
4878
  }
4869
- throw new ParseError(spaceTrim.spaceTrim((block) => `
4879
+ throw new ParseError(spaceTrim$1.spaceTrim((block) => `
4870
4880
  Invalid ${commandName} command:
4871
4881
 
4872
4882
  Your command:
@@ -4888,6 +4898,48 @@
4888
4898
  return null;
4889
4899
  }
4890
4900
 
4901
+ /**
4902
+ * Number of padding lines to add at the end of the book content
4903
+ *
4904
+ * @public exported from `@promptbook/core`
4905
+ */
4906
+ const PADDING_LINES = 11;
4907
+ /**
4908
+ * A function that adds padding to the book content
4909
+ *
4910
+ * Note: [🔂] This function is idempotent.
4911
+ *
4912
+ * @public exported from `@promptbook/core`
4913
+ */
4914
+ function padBook(content) {
4915
+ if (!content) {
4916
+ return '\n'.repeat(PADDING_LINES);
4917
+ }
4918
+ const lines = content.split('\n');
4919
+ let trailingEmptyLines = 0;
4920
+ for (let i = lines.length - 1; i >= 0; i--) {
4921
+ const line = lines[i];
4922
+ if (line === undefined) {
4923
+ // Note: This should not happen in reality, but it's here to satisfy TypeScript's noUncheckedIndexedAccess option
4924
+ continue;
4925
+ }
4926
+ if (line.trim() === '') {
4927
+ trailingEmptyLines++;
4928
+ }
4929
+ else {
4930
+ break;
4931
+ }
4932
+ }
4933
+ if (trailingEmptyLines >= PADDING_LINES) {
4934
+ return content;
4935
+ }
4936
+ const linesToAdd = PADDING_LINES - trailingEmptyLines;
4937
+ return (content + '\n'.repeat(linesToAdd));
4938
+ }
4939
+ /**
4940
+ * TODO: [🧠] Maybe export
4941
+ */
4942
+
4891
4943
  /**
4892
4944
  * Checks if value is valid email
4893
4945
  *
@@ -4907,6 +4959,8 @@
4907
4959
  * Function `validatePipelineString` will validate the if the string is a valid pipeline string
4908
4960
  * It does not check if the string is fully logically correct, but if it is a string that can be a pipeline string or the string looks completely different.
4909
4961
  *
4962
+ * Note: [🔂] This function is idempotent.
4963
+ *
4910
4964
  * @param {string} pipelineString the candidate for a pipeline string
4911
4965
  * @returns {PipelineString} the same string as input, but validated as valid
4912
4966
  * @throws {ParseError} if the string is not a valid pipeline string
@@ -4940,7 +4994,7 @@
4940
4994
  * @public exported from `@promptbook/markdown-utils`
4941
4995
  */
4942
4996
  function removeMarkdownComments(content) {
4943
- return spaceTrim.spaceTrim(content.replace(/<!--(.*?)-->/gs, ''));
4997
+ return spaceTrim$1.spaceTrim(content.replace(/<!--(.*?)-->/gs, ''));
4944
4998
  }
4945
4999
 
4946
5000
  /**
@@ -4977,6 +5031,7 @@
4977
5031
  if (!isFlatPipeline(pipelineString)) {
4978
5032
  return pipelineString;
4979
5033
  }
5034
+ pipelineString = spaceTrim__default["default"](pipelineString);
4980
5035
  const pipelineStringLines = pipelineString.split('\n');
4981
5036
  const potentialReturnStatement = pipelineStringLines.pop();
4982
5037
  let returnStatement;
@@ -5011,7 +5066,7 @@
5011
5066
  ${returnStatement}
5012
5067
  `));
5013
5068
  // <- TODO: Maybe use book` notation
5014
- return pipelineString;
5069
+ return padBook(pipelineString);
5015
5070
  }
5016
5071
  /**
5017
5072
  * TODO: Unit test