@promptbook/fake-llm 0.103.0-1 → 0.103.0-100

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 (258) hide show
  1. package/README.md +153 -89
  2. package/esm/index.es.js +120 -121
  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 +20 -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 +58 -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 +19 -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 +10 -0
  26. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileTooltip.d.ts +15 -0
  27. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +83 -8
  28. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
  29. package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  30. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +14 -0
  31. package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
  32. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +10 -0
  33. package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
  34. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
  35. package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
  36. package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
  37. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
  38. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
  39. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +5 -0
  40. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +29 -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 +13 -0
  48. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  49. package/esm/typings/src/book-components/_common/react-utils/classNames.d.ts +1 -1
  50. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -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/cli/cli-commands/_boilerplate.d.ts +2 -1
  58. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  59. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  60. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  61. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  62. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  63. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  64. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  65. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  66. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  67. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  68. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  69. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  70. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
  71. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
  72. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
  73. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
  74. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  75. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  76. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  77. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  78. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  79. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
  80. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  81. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  82. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  83. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  84. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
  85. package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +35 -0
  86. package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
  87. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
  88. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
  89. package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
  90. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
  91. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
  92. package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
  93. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
  94. package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
  95. package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
  96. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
  97. package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
  98. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
  99. package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
  100. package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
  101. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
  102. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
  103. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
  104. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
  105. package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
  106. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
  107. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
  108. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
  109. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
  110. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
  111. package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
  112. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +38 -0
  113. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
  114. package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
  115. package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
  116. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +8 -2
  117. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
  118. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
  119. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  120. package/esm/typings/src/commitments/index.d.ts +93 -0
  121. package/esm/typings/src/config.d.ts +24 -3
  122. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
  123. package/esm/typings/src/errors/0-index.d.ts +6 -0
  124. package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
  125. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  126. package/esm/typings/src/errors/WrappedError.d.ts +2 -2
  127. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  128. package/esm/typings/src/execution/Executables.d.ts +3 -0
  129. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  130. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  131. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  132. package/esm/typings/src/execution/LlmExecutionTools.d.ts +21 -1
  133. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  134. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  135. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  136. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  137. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  138. package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
  139. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  140. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
  141. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  142. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  143. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  144. package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
  145. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
  146. package/esm/typings/src/llm-providers/agent/Agent.d.ts +70 -0
  147. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
  148. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
  149. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
  150. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
  151. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  152. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  153. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  154. package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
  155. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
  156. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  157. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  158. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  159. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  160. package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
  161. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  162. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  163. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
  164. package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
  165. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  166. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
  167. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  168. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  169. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  170. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  171. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  172. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  173. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  174. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  175. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  176. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  177. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  178. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  179. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  180. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  181. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  182. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  183. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
  184. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  185. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  186. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
  187. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  188. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
  189. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  190. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  191. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  192. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  193. package/esm/typings/src/types/Updatable.d.ts +19 -0
  194. package/esm/typings/src/types/typeAliases.d.ts +32 -2
  195. package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
  196. package/esm/typings/src/utils/color/Color.d.ts +15 -0
  197. package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
  198. package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
  199. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  200. package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
  201. package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
  202. package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
  203. package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
  204. package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
  205. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  206. package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
  207. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  208. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  209. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  210. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  211. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  212. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  213. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
  214. package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
  215. package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
  216. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  217. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  218. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  219. package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
  220. package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
  221. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  222. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  223. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  224. package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
  225. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  226. package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
  227. package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
  228. package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
  229. package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
  230. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +25 -0
  231. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
  232. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
  233. package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
  234. package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
  235. package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
  236. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  237. package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
  238. package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
  239. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
  240. package/esm/typings/src/version.d.ts +1 -1
  241. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  242. package/package.json +5 -5
  243. package/umd/index.umd.js +120 -123
  244. package/umd/index.umd.js.map +1 -1
  245. package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
  246. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
  247. package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
  248. package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
  249. package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
  250. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
  251. /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
  252. /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
  253. /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
  254. /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
  255. /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
  256. /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
  257. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
  258. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
@@ -0,0 +1,25 @@
1
+ import type { PartialDeep } from 'type-fest';
2
+ import type { AgentBasicInformation } from '../../book-2.0/agent-source/AgentBasicInformation';
3
+ import type { string_book } from '../../book-2.0/agent-source/string_book';
4
+ import type { string_agent_name_in_book } from '../../types/typeAliases';
5
+ type GenerateBookBoilerplateOptions = PartialDeep<Omit<AgentBasicInformation, 'parameters'>> & {
6
+ /**
7
+ * Name of the parent agent to inherit from
8
+ *
9
+ * @default 'Adam'
10
+ */
11
+ parentAgentName?: string_agent_name_in_book;
12
+ };
13
+ /**
14
+ * Generates boilerplate for a new agent book
15
+ *
16
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
17
+ * Note: This function is using cryptographically secure components internally
18
+ *
19
+ * @public exported from `@promptbook/core`
20
+ */
21
+ export declare function $generateBookBoilerplate(options?: GenerateBookBoilerplateOptions): string_book;
22
+ export {};
23
+ /**
24
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
25
+ */
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @@@@
3
+ *
4
+ * @private internal helper function
5
+ */
6
+ export declare function $randomAgentPersona(): string;
7
+ /**
8
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
9
+ */
@@ -0,0 +1,13 @@
1
+ import type { string_color, string_person_fullname } from '../../types/typeAliases';
2
+ export type RandomFullnameWithColorResult = {
3
+ fullname: string_person_fullname;
4
+ color: string_color;
5
+ };
6
+ /**
7
+ *
8
+ * @private internal helper function
9
+ */
10
+ export declare function $randomFullnameWithColor(): RandomFullnameWithColorResult;
11
+ /**
12
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
13
+ */
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Pick random item from the received array
3
+ *
4
+ * @private internal helper function
5
+ */
6
+ export declare function $randomItem<TItem>(...items: Array<TItem>): TItem;
7
+ /**
8
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
9
+ */
@@ -8,3 +8,6 @@ import type { number_seed } from '../../types/typeAliases';
8
8
  * @private internal helper function
9
9
  */
10
10
  export declare function $randomSeed(): number_seed;
11
+ /**
12
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
13
+ */
@@ -2,6 +2,7 @@ import type { string_token } from '../../types/typeAliases';
2
2
  /**
3
3
  * Generates random token
4
4
  *
5
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
5
6
  * Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
6
7
  *
7
8
  * @private internal helper function
@@ -9,5 +10,6 @@ import type { string_token } from '../../types/typeAliases';
9
10
  */
10
11
  export declare function $randomToken(randomness: number): string_token;
11
12
  /**
13
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
12
14
  * TODO: Maybe use nanoid instead https://github.com/ai/nanoid
13
15
  */
@@ -1,4 +1,5 @@
1
1
  import type { ReadonlyDeep } from 'type-fest';
2
+ import type { $side_effect } from '../organization/$side_effect';
2
3
  /**
3
4
  * Freezes the given object and all its nested objects recursively
4
5
  *
@@ -8,7 +9,7 @@ import type { ReadonlyDeep } from 'type-fest';
8
9
  * @returns The same object as the input, but deeply frozen
9
10
  * @public exported from `@promptbook/utils`
10
11
  */
11
- export declare function $deepFreeze<TObject>(objectValue: TObject): ReadonlyDeep<TObject>;
12
+ export declare function $deepFreeze<TObject>(objectValue: TObject): ReadonlyDeep<$side_effect & TObject>;
12
13
  /**
13
14
  * TODO: [🧠] Is there a way how to meaningfully test this utility
14
15
  */
@@ -1,4 +1,4 @@
1
- import type { really_any } from '../organization/really_any';
1
+ import type { chococake } from '../organization/really_any';
2
2
  /**
3
3
  * Function `asSerializable` will convert values which are not serializable to serializable values
4
4
  * It walks deeply through the object and converts all values
@@ -12,4 +12,4 @@ import type { really_any } from '../organization/really_any';
12
12
  *
13
13
  * @private Internal helper function
14
14
  */
15
- export declare function asSerializable(value: really_any): really_any;
15
+ export declare function asSerializable(value: chococake): chococake;
@@ -1,5 +1,5 @@
1
- import { string_javascript } from '../../types/typeAliases';
2
- import { TODO_any } from '../organization/TODO_any';
1
+ import type { string_javascript } from '../../types/typeAliases';
2
+ import type { TODO_any } from '../organization/TODO_any';
3
3
  type SerializeToPromptbookJavascriptReturn = {
4
4
  /**
5
5
  * Array of import statements required for the `value` to work
@@ -3,6 +3,8 @@ import type { string_parameter_name } from '../../../types/typeAliases';
3
3
  * Function `validateParameterName` will normalize and validate a parameter name for use in pipelines.
4
4
  * It removes diacritics, emojis, and quotes, normalizes to camelCase, and checks for reserved names and invalid characters.
5
5
  *
6
+ * Note: [🔂] This function is idempotent.
7
+ *
6
8
  * @param parameterName The parameter name to validate and normalize.
7
9
  * @returns The validated and normalized parameter name.
8
10
  * @throws {ParseError} If the parameter name is empty, reserved, or contains invalid characters.
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.103.0-0`).
18
+ * It follows semantic versioning (e.g., `0.103.0-55`).
19
19
  *
20
20
  * @generated
21
21
  */
@@ -2,8 +2,7 @@ import type { ExecutionTools } from '../execution/ExecutionTools';
2
2
  import type { PipelineJson } from '../pipeline/PipelineJson/PipelineJson';
3
3
  import type { PipelineString } from '../pipeline/PipelineString';
4
4
  import type { PrepareAndScrapeOptions } from '../prepare/PrepareAndScrapeOptions';
5
- import type { string_filename } from '../types/typeAliases';
6
- import type { string_pipeline_url } from '../types/typeAliases';
5
+ import type { string_filename, string_pipeline_url } from '../types/typeAliases';
7
6
  /**
8
7
  * @see ./wizard.ts `getPipeline` method
9
8
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/fake-llm",
3
- "version": "0.103.0-1",
3
+ "version": "0.103.0-100",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -89,19 +89,19 @@
89
89
  },
90
90
  "homepage": "https://ptbk.io/",
91
91
  "engines": {
92
- "node": ">=16.0.0",
92
+ "node": ">=18.18.0",
93
93
  "npm": ">=8.0.0"
94
94
  },
95
95
  "main": "./umd/index.umd.js",
96
96
  "module": "./esm/index.es.js",
97
97
  "typings": "./esm/typings/src/_packages/fake-llm.index.d.ts",
98
98
  "peerDependencies": {
99
- "@promptbook/core": "0.103.0-1"
99
+ "@promptbook/core": "0.103.0-100"
100
100
  },
101
101
  "dependencies": {
102
102
  "crypto": "1.0.1",
103
103
  "lorem-ipsum": "2.0.8",
104
- "spacetrim": "0.11.59",
105
- "waitasecond": "1.11.83"
104
+ "spacetrim": "0.11.60",
105
+ "waitasecond": "1.11.160"
106
106
  }
107
107
  }
package/umd/index.umd.js CHANGED
@@ -1,12 +1,12 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('waitasecond'), require('crypto'), require('lorem-ipsum'), require('path')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'waitasecond', 'crypto', 'lorem-ipsum', 'path'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-fake-llm"] = {}, global.spaceTrim, global.waitasecond, global.crypto, global.loremIpsum));
5
- })(this, (function (exports, spaceTrim, waitasecond, crypto, loremIpsum) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('waitasecond'), require('crypto'), require('lorem-ipsum'), require('path'), require('crypto-js'), require('crypto-js/enc-hex')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'waitasecond', 'crypto', 'lorem-ipsum', 'path', 'crypto-js', 'crypto-js/enc-hex'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-fake-llm"] = {}, global.spaceTrim$1, global.waitasecond, global.crypto, global.loremIpsum));
5
+ })(this, (function (exports, spaceTrim$1, waitasecond, crypto, loremIpsum) { '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
 
11
11
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
12
12
  /**
@@ -15,14 +15,14 @@
15
15
  * @generated
16
16
  * @see https://github.com/webgptorg/book
17
17
  */
18
- const BOOK_LANGUAGE_VERSION = '1.0.0';
18
+ const BOOK_LANGUAGE_VERSION = '2.0.0';
19
19
  /**
20
20
  * The version of the Promptbook engine
21
21
  *
22
22
  * @generated
23
23
  * @see https://github.com/webgptorg/promptbook
24
24
  */
25
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-1';
25
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-100';
26
26
  /**
27
27
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
28
28
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -135,6 +135,17 @@
135
135
  return new Date().toISOString();
136
136
  }
137
137
 
138
+ /**
139
+ * Trims string from all 4 sides
140
+ *
141
+ * Note: This is a re-exported function from the `spacetrim` package which is
142
+ * Developed by same author @hejny as this package
143
+ *
144
+ * @public exported from `@promptbook/utils`
145
+ * @see https://github.com/hejny/spacetrim#usage
146
+ */
147
+ const spaceTrim = spaceTrim$1.spaceTrim;
148
+
138
149
  /**
139
150
  * @private util of `@promptbook/color`
140
151
  * @de
@@ -183,6 +194,7 @@
183
194
  * @public exported from `@promptbook/color`
184
195
  */
185
196
  const CSS_COLORS = {
197
+ promptbook: '#79EAFD',
186
198
  transparent: 'rgba(0,0,0,0)',
187
199
  aliceblue: '#f0f8ff',
188
200
  antiquewhite: '#faebd7',
@@ -364,9 +376,6 @@
364
376
  throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
365
377
  }
366
378
  }
367
- /**
368
- * TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
369
- */
370
379
 
371
380
  /**
372
381
  * Color object represents an RGB color with alpha channel
@@ -401,6 +410,28 @@
401
410
  throw new Error(`Can not create color from given object`);
402
411
  }
403
412
  }
413
+ /**
414
+ * Creates a new Color instance from miscellaneous formats
415
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
416
+ *
417
+ * @param color
418
+ * @returns Color object
419
+ */
420
+ static fromSafe(color) {
421
+ try {
422
+ return Color.from(color);
423
+ }
424
+ catch (error) {
425
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
426
+ console.warn(spaceTrim((block) => `
427
+ Color.fromSafe error:
428
+ ${block(error.message)}
429
+
430
+ Returning default PROMPTBOOK_COLOR.
431
+ `));
432
+ return Color.fromString('promptbook');
433
+ }
434
+ }
404
435
  /**
405
436
  * Creates a new Color instance from miscellaneous string formats
406
437
  *
@@ -468,6 +499,9 @@
468
499
  if (hex.length === 3) {
469
500
  return Color.fromHex3(hex);
470
501
  }
502
+ if (hex.length === 4) {
503
+ return Color.fromHex4(hex);
504
+ }
471
505
  if (hex.length === 6) {
472
506
  return Color.fromHex6(hex);
473
507
  }
@@ -488,6 +522,19 @@
488
522
  const b = parseInt(hex.substr(2, 1), 16) * 16;
489
523
  return take(new Color(r, g, b));
490
524
  }
525
+ /**
526
+ * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
527
+ *
528
+ * @param color in hex for example `09df`
529
+ * @returns Color object
530
+ */
531
+ static fromHex4(hex) {
532
+ const r = parseInt(hex.substr(0, 1), 16) * 16;
533
+ const g = parseInt(hex.substr(1, 1), 16) * 16;
534
+ const b = parseInt(hex.substr(2, 1), 16) * 16;
535
+ const a = parseInt(hex.substr(3, 1), 16) * 16;
536
+ return take(new Color(r, g, b, a));
537
+ }
491
538
  /**
492
539
  * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
493
540
  *
@@ -678,7 +725,8 @@
678
725
  * @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
679
726
  */
680
727
  static isHexColorString(value) {
681
- return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
728
+ return (typeof value === 'string' &&
729
+ /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
682
730
  }
683
731
  /**
684
732
  * Creates new Color object
@@ -793,6 +841,23 @@
793
841
  * TODO: Maybe connect with textures
794
842
  */
795
843
 
844
+ /**
845
+ * Makes color transformer which returns a grayscale version of the color
846
+ *
847
+ * @param amount from 0 to 1
848
+ *
849
+ * @public exported from `@promptbook/color`
850
+ */
851
+ function grayscale(amount) {
852
+ return ({ red, green, blue, alpha }) => {
853
+ const average = (red + green + blue) / 3;
854
+ red = Math.round(average * amount + red * (1 - amount));
855
+ green = Math.round(average * amount + green * (1 - amount));
856
+ blue = Math.round(average * amount + blue * (1 - amount));
857
+ return Color.fromValues(red, green, blue, alpha);
858
+ };
859
+ }
860
+
796
861
  /**
797
862
  * Converts HSL values to RGB values
798
863
  *
@@ -908,102 +973,6 @@
908
973
  * TODO: Maybe implement by mix+hsl
909
974
  */
910
975
 
911
- /**
912
- * Calculates distance between two colors
913
- *
914
- * @param color1 first color
915
- * @param color2 second color
916
- *
917
- * Note: This function is inefficient. Use colorDistanceSquared instead if possible.
918
- *
919
- * @public exported from `@promptbook/color`
920
- */
921
- /**
922
- * Calculates distance between two colors without square root
923
- *
924
- * @param color1 first color
925
- * @param color2 second color
926
- *
927
- * @public exported from `@promptbook/color`
928
- */
929
- function colorDistanceSquared(color1, color2) {
930
- const rmean = (color1.red + color2.red) / 2;
931
- const r = color1.red - color2.red;
932
- const g = color1.green - color2.green;
933
- const b = color1.blue - color2.blue;
934
- const weightR = 2 + rmean / 256;
935
- const weightG = 4.0;
936
- const weightB = 2 + (255 - rmean) / 256;
937
- const distance = weightR * r * r + weightG * g * g + weightB * b * b;
938
- return distance;
939
- }
940
-
941
- /**
942
- * Makes color transformer which finds the nearest color from the given list
943
- *
944
- * @param colors array of colors to choose from
945
- *
946
- * @public exported from `@promptbook/color`
947
- */
948
- function nearest(...colors) {
949
- return (color) => {
950
- const distances = colors.map((c) => colorDistanceSquared(c, color));
951
- const minDistance = Math.min(...distances);
952
- const minIndex = distances.indexOf(minDistance);
953
- const nearestColor = colors[minIndex];
954
- return nearestColor;
955
- };
956
- }
957
-
958
- /**
959
- * Color transformer which returns the negative color
960
- *
961
- * @public exported from `@promptbook/color`
962
- */
963
- function negative(color) {
964
- const r = 255 - color.red;
965
- const g = 255 - color.green;
966
- const b = 255 - color.blue;
967
- return Color.fromValues(r, g, b, color.alpha);
968
- }
969
-
970
- /**
971
- * Makes color transformer which finds the furthest color from the given list
972
- *
973
- * @param colors array of colors to choose from
974
- *
975
- * @public exported from `@promptbook/color`
976
- */
977
- function furthest(...colors) {
978
- return (color) => {
979
- const furthestColor = negative(nearest(...colors.map(negative))(color));
980
- return furthestColor;
981
- };
982
- }
983
- /**
984
- * Makes color transformer which finds the best text color (black or white) for the given background color
985
- *
986
- * @public exported from `@promptbook/color`
987
- */
988
- furthest(Color.get('white'), Color.from('black'));
989
-
990
- /**
991
- * Makes color transformer which returns a grayscale version of the color
992
- *
993
- * @param amount from 0 to 1
994
- *
995
- * @public exported from `@promptbook/color`
996
- */
997
- function grayscale(amount) {
998
- return ({ red, green, blue, alpha }) => {
999
- const average = (red + green + blue) / 3;
1000
- red = Math.round(average * amount + red * (1 - amount));
1001
- green = Math.round(average * amount + green * (1 - amount));
1002
- blue = Math.round(average * amount + blue * (1 - amount));
1003
- return Color.fromValues(red, green, blue, alpha);
1004
- };
1005
- }
1006
-
1007
976
  /**
1008
977
  * Makes color transformer which saturate the given color
1009
978
  *
@@ -1052,16 +1021,32 @@
1052
1021
  *
1053
1022
  * @public exported from `@promptbook/core`
1054
1023
  */
1055
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
1056
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
1024
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
1025
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1026
+ /**
1027
+ * Colors for syntax highlighting in the `<BookEditor/>`
1028
+ *
1029
+ * TODO: [🗽] Unite branding and make single place for it
1030
+ *
1031
+ * @public exported from `@promptbook/core`
1032
+ */
1033
+ ({
1034
+ TITLE: Color.fromHex('#244EA8'),
1035
+ LINE: Color.fromHex('#eeeeee'),
1036
+ SEPARATOR: Color.fromHex('#cccccc'),
1037
+ COMMITMENT: Color.fromHex('#DA0F78'),
1038
+ PARAMETER: Color.fromHex('#8e44ad'),
1039
+ });
1040
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1057
1041
  /**
1058
- * Dark color of the Promptbook
1042
+ * Chat color of the Promptbook (in chat)
1059
1043
  *
1060
1044
  * TODO: [🗽] Unite branding and make single place for it
1061
1045
  *
1062
1046
  * @public exported from `@promptbook/core`
1063
1047
  */
1064
1048
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
1049
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
1065
1050
  /**
1066
1051
  * Color of the user (in chat)
1067
1052
  *
@@ -1194,7 +1179,7 @@
1194
1179
  */
1195
1180
  class UnexpectedError extends Error {
1196
1181
  constructor(message) {
1197
- super(spaceTrim.spaceTrim((block) => `
1182
+ super(spaceTrim$1.spaceTrim((block) => `
1198
1183
  ${block(message)}
1199
1184
 
1200
1185
  Note: This error should not happen.
@@ -1220,7 +1205,7 @@
1220
1205
  constructor(whatWasThrown) {
1221
1206
  const tag = `[🤮]`;
1222
1207
  console.error(tag, whatWasThrown);
1223
- super(spaceTrim.spaceTrim(`
1208
+ super(spaceTrim$1.spaceTrim(`
1224
1209
  Non-Error object was thrown
1225
1210
 
1226
1211
  Note: Look for ${tag} in the console for more details
@@ -1413,7 +1398,7 @@
1413
1398
  TODO: [🧠] Is there a better implementation?
1414
1399
  > const propertyNames = Object.getOwnPropertyNames(objectValue);
1415
1400
  > for (const propertyName of propertyNames) {
1416
- > const value = (objectValue as really_any)[propertyName];
1401
+ > const value = (objectValue as chococake)[propertyName];
1417
1402
  > if (value && typeof value === 'object') {
1418
1403
  > deepClone(value);
1419
1404
  > }
@@ -1517,6 +1502,7 @@
1517
1502
  /**
1518
1503
  * Generates random token
1519
1504
  *
1505
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
1520
1506
  * Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
1521
1507
  *
1522
1508
  * @private internal helper function
@@ -1526,6 +1512,7 @@
1526
1512
  return crypto.randomBytes(randomness).toString('hex');
1527
1513
  }
1528
1514
  /**
1515
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
1529
1516
  * TODO: Maybe use nanoid instead https://github.com/ai/nanoid
1530
1517
  */
1531
1518
 
@@ -1769,7 +1756,7 @@
1769
1756
  order: [],
1770
1757
  value: {
1771
1758
  // Note: The „quotes“ are intentional to test AI humanization and Promptbookification
1772
- content: spaceTrim.spaceTrim((block) => `
1759
+ content: spaceTrim$1.spaceTrim((block) => `
1773
1760
  You said:
1774
1761
  „${block(rawPromptContent)}“${thread ? ` +${thread.length} other messages` : ''}
1775
1762
 
@@ -1808,7 +1795,7 @@
1808
1795
  message: `Result of \`MockedEchoLlmExecutionTools.callCompletionModel\``,
1809
1796
  order: [],
1810
1797
  value: {
1811
- content: spaceTrim.spaceTrim((block) => `
1798
+ content: spaceTrim$1.spaceTrim((block) => `
1812
1799
  ${block(rawPromptContent)}
1813
1800
  And so on...
1814
1801
  `),
@@ -1893,10 +1880,13 @@
1893
1880
  * @public exported from `@promptbook/utils`
1894
1881
  */
1895
1882
  function countLines(text) {
1883
+ if (text === '') {
1884
+ return 0;
1885
+ }
1896
1886
  text = text.replace('\r\n', '\n');
1897
1887
  text = text.replace('\r', '\n');
1898
1888
  const lines = text.split('\n');
1899
- return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
1889
+ return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
1900
1890
  }
1901
1891
  /**
1902
1892
  * TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
@@ -2304,6 +2294,8 @@
2304
2294
  /**
2305
2295
  * Normalizes a given text to camelCase format.
2306
2296
  *
2297
+ * Note: [🔂] This function is idempotent.
2298
+ *
2307
2299
  * @param text The text to be normalized.
2308
2300
  * @param _isFirstLetterCapital Whether the first letter should be capitalized.
2309
2301
  * @returns The camelCase formatted string.
@@ -2356,6 +2348,8 @@
2356
2348
  /**
2357
2349
  * Converts a given text to kebab-case format.
2358
2350
  *
2351
+ * Note: [🔂] This function is idempotent.
2352
+ *
2359
2353
  * @param text The text to be converted.
2360
2354
  * @returns The kebab-case formatted string.
2361
2355
  * @example 'hello-world'
@@ -2668,6 +2662,9 @@
2668
2662
  }
2669
2663
 
2670
2664
  /**
2665
+ * Normalizes a given text to PascalCase format.
2666
+ *
2667
+ * Note: [🔂] This function is idempotent.
2671
2668
  *
2672
2669
  * @param text @public exported from `@promptbook/utils`
2673
2670
  * @returns
@@ -2747,7 +2744,7 @@
2747
2744
  let trimmedText = text;
2748
2745
  // Remove leading and trailing spaces and newlines
2749
2746
  if (isTrimmed) {
2750
- trimmedText = spaceTrim.spaceTrim(trimmedText);
2747
+ trimmedText = spaceTrim$1.spaceTrim(trimmedText);
2751
2748
  }
2752
2749
  let processedText = trimmedText;
2753
2750
  if (isIntroduceSentenceRemoved) {
@@ -2756,7 +2753,7 @@
2756
2753
  // Remove the introduce sentence and quotes by replacing it with an empty string
2757
2754
  processedText = processedText.replace(introduceSentenceRegex, '');
2758
2755
  }
2759
- processedText = spaceTrim.spaceTrim(processedText);
2756
+ processedText = spaceTrim$1.spaceTrim(processedText);
2760
2757
  }
2761
2758
  if (processedText.length < 3) {
2762
2759
  return trimmedText;
@@ -2938,13 +2935,13 @@
2938
2935
  * @public exported from `@promptbook/markdown-utils`
2939
2936
  */
2940
2937
  function trimCodeBlock(value) {
2941
- value = spaceTrim.spaceTrim(value);
2938
+ value = spaceTrim$1.spaceTrim(value);
2942
2939
  if (!/^```[a-z]*(.*)```$/is.test(value)) {
2943
2940
  return value;
2944
2941
  }
2945
2942
  value = value.replace(/^```[a-z]*/i, '');
2946
2943
  value = value.replace(/```$/i, '');
2947
- value = spaceTrim.spaceTrim(value);
2944
+ value = spaceTrim$1.spaceTrim(value);
2948
2945
  return value;
2949
2946
  }
2950
2947
 
@@ -2957,9 +2954,9 @@
2957
2954
  * @public exported from `@promptbook/markdown-utils`
2958
2955
  */
2959
2956
  function trimEndOfCodeBlock(value) {
2960
- value = spaceTrim.spaceTrim(value);
2957
+ value = spaceTrim$1.spaceTrim(value);
2961
2958
  value = value.replace(/```$/g, '');
2962
- value = spaceTrim.spaceTrim(value);
2959
+ value = spaceTrim$1.spaceTrim(value);
2963
2960
  return value;
2964
2961
  }
2965
2962
 
@@ -3243,7 +3240,7 @@
3243
3240
  text += (text ? ' ' : '') + nextWord;
3244
3241
  }
3245
3242
  }
3246
- throw new LimitReachedError(spaceTrim.spaceTrim((block) => `
3243
+ throw new LimitReachedError(spaceTrim$1.spaceTrim((block) => `
3247
3244
  Can not generate fake text to met the expectations
3248
3245
 
3249
3246
  Loop limit reached