@promptbook/vercel 0.103.0-8 → 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 +126 -118
  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 +5 -5
  257. package/umd/index.umd.js +124 -116
  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/README.md CHANGED
@@ -9,8 +9,8 @@ Turn your company's scattered knowledge into AI ready Books
9
9
 
10
10
 
11
11
 
12
- [![NPM Version of ![Promptbook logo - cube with letters P and B](./design/logo-h1.png) Promptbook](https://badge.fury.io/js/promptbook.svg)](https://www.npmjs.com/package/promptbook)
13
- [![Quality of package ![Promptbook logo - cube with letters P and B](./design/logo-h1.png) Promptbook](https://packagequality.com/shield/promptbook.svg)](https://packagequality.com/#?package=promptbook)
12
+ [![NPM Version of ![Promptbook logo](./design/logo-h1.png) Promptbook](https://badge.fury.io/js/promptbook.svg)](https://www.npmjs.com/package/promptbook)
13
+ [![Quality of package ![Promptbook logo](./design/logo-h1.png) Promptbook](https://packagequality.com/shield/promptbook.svg)](https://packagequality.com/#?package=promptbook)
14
14
  [![Known Vulnerabilities](https://snyk.io/test/github/webgptorg/promptbook/badge.svg)](https://snyk.io/test/github/webgptorg/promptbook)
15
15
  [![🧪 Test Books](https://github.com/webgptorg/promptbook/actions/workflows/test-books.yml/badge.svg)](https://github.com/webgptorg/promptbook/actions/workflows/test-books.yml)
16
16
  [![🧪 Test build](https://github.com/webgptorg/promptbook/actions/workflows/test-build.yml/badge.svg)](https://github.com/webgptorg/promptbook/actions/workflows/test-build.yml)
@@ -23,18 +23,10 @@ Turn your company's scattered knowledge into AI ready Books
23
23
 
24
24
  ## 🌟 New Features
25
25
 
26
- - 🚀 **GPT-5 Support** - Now includes OpenAI's most advanced language model with unprecedented reasoning capabilities and 200K context window
27
- - 💡 VS Code support for `.book` files with syntax highlighting and IntelliSense
28
- - 🐳 Official Docker image (`hejny/promptbook`) for seamless containerized usage
29
- - 🔥 Native support for OpenAI `o3-mini`, GPT-4 and other leading LLMs
30
- - 🔍 DeepSeek integration for advanced knowledge search
26
+ - **Gemini 3 Support**
31
27
 
32
28
 
33
29
 
34
- <blockquote style="color: #ff8811">
35
- <b>⚠ Warning:</b> This is a pre-release version of the library. It is not yet ready for production use. Please look at <a href="https://www.npmjs.com/package/@promptbook/core?activeTab=versions">latest stable release</a>.
36
- </blockquote>
37
-
38
30
  ## 📦 Package `@promptbook/vercel`
39
31
 
40
32
  - Promptbooks are [divided into several](#-packages) packages, all are published from [single monorepo](https://github.com/webgptorg/promptbook).
@@ -128,11 +120,15 @@ The main challenge is to narrow it down, constrain it, set the proper **context,
128
120
 
129
121
  Promptbook takes the best from both worlds. You are defining your AI behavior by simple **books**, which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable.
130
122
 
123
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
124
+
125
+ **<ins>Paul Smith & Associés</ins>**<br/>
126
+ <br/>
127
+ **PERSONA** You are a company lawyer.<br/>
128
+ Your job is to provide legal advice and support to the company and its employees.<br/>
129
+ You are knowledgeable, professional, and detail-oriented.<br/>
131
130
 
132
- <img
133
- alt="Paul Smith & Associés Book"
134
- src="https://promptbook.studio/embed/book-preview.png?book=Paul%20Smith%20%26%20Associ%C3%A9s%0A%20%20%20%20%20%20%7C%20PERSONA%20You%20are%20a%20company%20lawyer.%0A%20%20%20%20%20%20%7C%20Your%20job%20is%20to%20provide%20legal%20advice%20and%20support%20to%20the%20company%20and%20its%20employees.%0A%20%20%20%20%20%20%7C%20You%20are%20knowledgeable%2C%20professional%2C%20and%20detail-oriented.&width=800&height=450&nonce=0"
135
- />
131
+ </td></tr></table>
136
132
 
137
133
  <div style="page-break-after: always;"></div>
138
134
 
@@ -146,11 +142,15 @@ You can look at it as prompting (or writing a system message), but decorated by
146
142
 
147
143
  Personas define the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication.
148
144
 
145
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
149
146
 
150
- <img
151
- alt="Paul Smith & Associés Book"
152
- src="https://promptbook.studio/embed/book-preview.png?book=Paul%20Smith%20%26%20Associ%C3%A9s%0A%20%20%20%20%20%20%7C%20PERSONA%20You%20are%20a%20company%20lawyer.%0A%20%20%20%20%20%20%7C%20Your%20job%20is%20to%20provide%20legal%20advice%20and%20support%20to%20the%20company%20and%20its%20employees.%0A%20%20%20%20%20%20%7C%20You%20are%20knowledgeable%2C%20professional%2C%20and%20detail-oriented.&width=800&height=450&nonce=0"
153
- />
147
+ **<ins>Paul Smith & Associés</ins>**<br/>
148
+ <br/>
149
+ **PERSONA** You are a company lawyer.<br/>
150
+ Your job is to provide legal advice and support to the company and its employees.<br/>
151
+ You are knowledgeable, professional, and detail-oriented.<br/>
152
+
153
+ </td></tr></table>
154
154
 
155
155
  #### `Knowledge` commitment
156
156
 
@@ -160,11 +160,18 @@ This can include domain-specific knowledge, company policies, or any other relev
160
160
 
161
161
  Promptbook Engine will automatically enforce this knowledge during interactions. When the knowledge is short enough, it will be included in the prompt. When it is too long, it will be stored in vector databases and RAG retrieved when needed. But you don't need to care about it.
162
162
 
163
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
164
+
165
+ **<ins>Paul Smith & Associés</ins>**<br/>
166
+ <br/>
167
+ **PERSONA** You are a company lawyer.<br/>
168
+ Your job is to provide legal advice and support to the company and its employees.<br/>
169
+ You are knowledgeable, professional, and detail-oriented.<br/>
170
+ <br/>
171
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
172
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
163
173
 
164
- <img
165
- alt="Paul Smith & Associés Book"
166
- src="https://promptbook.studio/embed/book-preview.png?book=Paul%20Smith%20%26%20Associ%C3%A9s%0A%20%20%20%20%20%20%7C%20PERSONA%20You%20are%20a%20company%20lawyer.%0A%20%20%20%20%20%20%7C%20Your%20job%20is%20to%20provide%20legal%20advice%20and%20support%20to%20the%20company%20and%20its%20employees.%0A%20%20%20%20%20%20%7C%20You%20are%20knowledgeable%2C%20professional%2C%20and%20detail-oriented.%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20%20https%3A%2F%2Fcompany.com%2Fcompany-policies.pdf%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20https%3A%2F%2Fcompany.com%2Finternal-documents%2Femployee-handbook.docx&width=800&height=450&nonce=0"
167
- />
174
+ </td></tr></table>
168
175
 
169
176
  #### `Rule` commitment
170
177
 
@@ -172,21 +179,42 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This
172
179
 
173
180
  Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
174
181
 
182
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
175
183
 
176
- <img
177
- alt="Paul Smith & Associés Book"
178
- src="https://promptbook.studio/embed/book-preview.png?book=Paul%20Smith%20%26%20Associ%C3%A9s%0A%20%20%20%20%20%20%7C%20PERSONA%20You%20are%20a%20company%20lawyer.%0A%20%20%20%20%20%20%7C%20Your%20job%20is%20to%20provide%20legal%20advice%20and%20support%20to%20the%20company%20and%20its%20employees.%0A%20%20%20%20%20%20%7C%20You%20are%20knowledgeable%2C%20professional%2C%20and%20detail-oriented.%0A%20%20%20%20%20%20%7C%20RULE%20Always%20ensure%20compliance%20with%20laws%20and%20regulations.%0A%20%20%20%20%20%20%7C%20RULE%20Never%20provide%20legal%20advice%20outside%20your%20area%20of%20expertise.%0A%20%20%20%20%20%20%7C%20RULE%20Never%20provide%20legal%20advice%20about%20criminal%20law.%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20%20https%3A%2F%2Fcompany.com%2Fcompany-policies.pdf%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20https%3A%2F%2Fcompany.com%2Finternal-documents%2Femployee-handbook.docx&width=800&height=450&nonce=0"
179
- />
184
+ **<ins>Paul Smith & Associés</ins>**<br/>
185
+ <br/>
186
+ **PERSONA** You are a company lawyer.<br/>
187
+ Your job is to provide legal advice and support to the company and its employees.<br/>
188
+ You are knowledgeable, professional, and detail-oriented.<br/>
189
+ <br/>
190
+ **RULE** Always ensure compliance with laws and regulations.<br/>
191
+ **RULE** Never provide legal advice outside your area of expertise.<br/>
192
+ **RULE** Never provide legal advice about criminal law.<br/>
193
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
194
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
195
+
196
+ </td></tr></table>
180
197
 
181
198
  #### `Action` commitment
182
199
 
183
200
  Action Commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events, or interacting with your internal systems.
184
201
 
202
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
203
+
204
+ **<ins>Paul Smith & Associés</ins>**<br/>
205
+ <br/>
206
+ **PERSONA** You are a company lawyer.<br/>
207
+ Your job is to provide legal advice and support to the company and its employees.<br/>
208
+ You are knowledgeable, professional, and detail-oriented.<br/>
209
+ <br/>
210
+ **RULE** Always ensure compliance with laws and regulations.<br/>
211
+ **RULE** Never provide legal advice outside your area of expertise.<br/>
212
+ **RULE** Never provide legal advice about criminal law.<br/>
213
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
214
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
215
+ **ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
185
216
 
186
- <img
187
- alt="Paul Smith & Associés Book"
188
- src="https://promptbook.studio/embed/book-preview.png?book=Paul%20Smith%20%26%20Associ%C3%A9s%0A%20%20%20%20%20%20%7C%20PERSONA%20You%20are%20a%20company%20lawyer.%0A%20%20%20%20%20%20%7C%20Your%20job%20is%20to%20provide%20legal%20advice%20and%20support%20to%20the%20company%20and%20its%20employees.%0A%20%20%20%20%20%20%7C%20You%20are%20knowledgeable%2C%20professional%2C%20and%20detail-oriented.%0A%20%20%20%20%20%20%7C%20RULE%20Always%20ensure%20compliance%20with%20laws%20and%20regulations.%0A%20%20%20%20%20%20%7C%20RULE%20Never%20provide%20legal%20advice%20outside%20your%20area%20of%20expertise.%0A%20%20%20%20%20%20%7C%20RULE%20Never%20provide%20legal%20advice%20about%20criminal%20law.%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20%20https%3A%2F%2Fcompany.com%2Fcompany-policies.pdf%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20https%3A%2F%2Fcompany.com%2Finternal-documents%2Femployee-handbook.docx%0A%20%20%20%20%20%20%7C%20ACTION%20When%20a%20user%20asks%20about%20an%20issue%20that%20could%20be%20treated%20as%20a%20crime%2C%20notify%20legal%40company.com.&width=800&height=450&nonce=0"
189
- />
217
+ </td></tr></table>
190
218
 
191
219
  [Read more about the language](./BLUEPRINT.md)
192
220
 
@@ -233,14 +261,10 @@ Now you want to use it. There are several ways how to write your first book:
233
261
 
234
262
  We have written ai asistant in book who can help you with writing your first book.
235
263
 
236
-
237
-
238
264
  #### Your AI twin
239
265
 
240
266
  Copy your own behavior, personality, and knowledge into book and create your AI twin. It can help you with your work, personal life, or any other task.
241
267
 
242
-
243
-
244
268
  #### AI persona workpool
245
269
 
246
270
  Or you can pick from our library of pre-written books for various roles and tasks. You can find books for customer support, coding, marketing, sales, HR, legal, and many other roles.
@@ -360,8 +384,6 @@ Join our growing community of developers and users:
360
384
 
361
385
 
362
386
 
363
-
364
-
365
387
  ## 📚 Documentation
366
388
 
367
389
  See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
@@ -438,8 +460,6 @@ The following glossary is used to clarify certain concepts:
438
460
 
439
461
  _Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
440
462
 
441
-
442
-
443
463
  ### 💯 Core concepts
444
464
 
445
465
  - [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
package/esm/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import colors from 'colors';
2
- import spaceTrim, { spaceTrim as spaceTrim$1 } from 'spacetrim';
2
+ import spaceTrim$2, { spaceTrim as spaceTrim$1 } from 'spacetrim';
3
3
  import { randomBytes } from 'crypto';
4
4
 
5
5
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
@@ -9,14 +9,14 @@ import { randomBytes } from 'crypto';
9
9
  * @generated
10
10
  * @see https://github.com/webgptorg/book
11
11
  */
12
- const BOOK_LANGUAGE_VERSION = '1.0.0';
12
+ const BOOK_LANGUAGE_VERSION = '2.0.0';
13
13
  /**
14
14
  * The version of the Promptbook engine
15
15
  *
16
16
  * @generated
17
17
  * @see https://github.com/webgptorg/promptbook
18
18
  */
19
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-8';
19
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0';
20
20
  /**
21
21
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
22
22
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -25,6 +25,7 @@ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-8';
25
25
  /**
26
26
  * Generates random token
27
27
  *
28
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
28
29
  * Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
29
30
  *
30
31
  * @private internal helper function
@@ -34,6 +35,7 @@ function $randomToken(randomness) {
34
35
  return randomBytes(randomness).toString('hex');
35
36
  }
36
37
  /**
38
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
37
39
  * TODO: Maybe use nanoid instead https://github.com/ai/nanoid
38
40
  */
39
41
 
@@ -100,10 +102,13 @@ const LINES_PER_STANDARD_PAGE = 44;
100
102
  * @public exported from `@promptbook/utils`
101
103
  */
102
104
  function countLines(text) {
105
+ if (text === '') {
106
+ return 0;
107
+ }
103
108
  text = text.replace('\r\n', '\n');
104
109
  text = text.replace('\r', '\n');
105
110
  const lines = text.split('\n');
106
- return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
111
+ return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
107
112
  }
108
113
  /**
109
114
  * TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
@@ -584,6 +589,17 @@ function $getCurrentDate() {
584
589
  return new Date().toISOString();
585
590
  }
586
591
 
592
+ /**
593
+ * Trims string from all 4 sides
594
+ *
595
+ * Note: This is a re-exported function from the `spacetrim` package which is
596
+ * Developed by same author @hejny as this package
597
+ *
598
+ * @public exported from `@promptbook/utils`
599
+ * @see https://github.com/hejny/spacetrim#usage
600
+ */
601
+ const spaceTrim = spaceTrim$1;
602
+
587
603
  /**
588
604
  * @private util of `@promptbook/color`
589
605
  * @de
@@ -632,6 +648,7 @@ function take(initialValue) {
632
648
  * @public exported from `@promptbook/color`
633
649
  */
634
650
  const CSS_COLORS = {
651
+ promptbook: '#79EAFD',
635
652
  transparent: 'rgba(0,0,0,0)',
636
653
  aliceblue: '#f0f8ff',
637
654
  antiquewhite: '#faebd7',
@@ -813,9 +830,6 @@ function checkChannelValue(channelName, value) {
813
830
  throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
814
831
  }
815
832
  }
816
- /**
817
- * TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
818
- */
819
833
 
820
834
  /**
821
835
  * Color object represents an RGB color with alpha channel
@@ -835,21 +849,61 @@ class Color {
835
849
  * @param color
836
850
  * @returns Color object
837
851
  */
838
- static from(color) {
839
- if (color instanceof Color) {
852
+ static from(color, _isSingleValue = false) {
853
+ if (color === '') {
854
+ throw new Error(`Can not create color from empty string`);
855
+ }
856
+ else if (color instanceof Color) {
840
857
  return take(color);
841
858
  }
842
859
  else if (Color.isColor(color)) {
843
860
  return take(color);
844
861
  }
845
862
  else if (typeof color === 'string') {
846
- return Color.fromString(color);
863
+ try {
864
+ return Color.fromString(color);
865
+ }
866
+ catch (error) {
867
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
868
+ if (_isSingleValue) {
869
+ throw error;
870
+ }
871
+ const parts = color.split(/[\s+,;|]/);
872
+ if (parts.length > 0) {
873
+ return Color.from(parts[0].trim(), true);
874
+ }
875
+ else {
876
+ throw new Error(`Can not create color from given string "${color}"`);
877
+ }
878
+ }
847
879
  }
848
880
  else {
849
881
  console.error({ color });
850
882
  throw new Error(`Can not create color from given object`);
851
883
  }
852
884
  }
885
+ /**
886
+ * Creates a new Color instance from miscellaneous formats
887
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
888
+ *
889
+ * @param color
890
+ * @returns Color object
891
+ */
892
+ static fromSafe(color) {
893
+ try {
894
+ return Color.from(color);
895
+ }
896
+ catch (error) {
897
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
898
+ console.warn(spaceTrim((block) => `
899
+ Color.fromSafe error:
900
+ ${block(error.message)}
901
+
902
+ Returning default PROMPTBOOK_COLOR.
903
+ `));
904
+ return Color.fromString('promptbook');
905
+ }
906
+ }
853
907
  /**
854
908
  * Creates a new Color instance from miscellaneous string formats
855
909
  *
@@ -917,6 +971,9 @@ class Color {
917
971
  if (hex.length === 3) {
918
972
  return Color.fromHex3(hex);
919
973
  }
974
+ if (hex.length === 4) {
975
+ return Color.fromHex4(hex);
976
+ }
920
977
  if (hex.length === 6) {
921
978
  return Color.fromHex6(hex);
922
979
  }
@@ -937,6 +994,19 @@ class Color {
937
994
  const b = parseInt(hex.substr(2, 1), 16) * 16;
938
995
  return take(new Color(r, g, b));
939
996
  }
997
+ /**
998
+ * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
999
+ *
1000
+ * @param color in hex for example `09df`
1001
+ * @returns Color object
1002
+ */
1003
+ static fromHex4(hex) {
1004
+ const r = parseInt(hex.substr(0, 1), 16) * 16;
1005
+ const g = parseInt(hex.substr(1, 1), 16) * 16;
1006
+ const b = parseInt(hex.substr(2, 1), 16) * 16;
1007
+ const a = parseInt(hex.substr(3, 1), 16) * 16;
1008
+ return take(new Color(r, g, b, a));
1009
+ }
940
1010
  /**
941
1011
  * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
942
1012
  *
@@ -1127,7 +1197,8 @@ class Color {
1127
1197
  * @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
1128
1198
  */
1129
1199
  static isHexColorString(value) {
1130
- return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
1200
+ return (typeof value === 'string' &&
1201
+ /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
1131
1202
  }
1132
1203
  /**
1133
1204
  * Creates new Color object
@@ -1242,6 +1313,23 @@ class Color {
1242
1313
  * TODO: Maybe connect with textures
1243
1314
  */
1244
1315
 
1316
+ /**
1317
+ * Makes color transformer which returns a grayscale version of the color
1318
+ *
1319
+ * @param amount from 0 to 1
1320
+ *
1321
+ * @public exported from `@promptbook/color`
1322
+ */
1323
+ function grayscale(amount) {
1324
+ return ({ red, green, blue, alpha }) => {
1325
+ const average = (red + green + blue) / 3;
1326
+ red = Math.round(average * amount + red * (1 - amount));
1327
+ green = Math.round(average * amount + green * (1 - amount));
1328
+ blue = Math.round(average * amount + blue * (1 - amount));
1329
+ return Color.fromValues(red, green, blue, alpha);
1330
+ };
1331
+ }
1332
+
1245
1333
  /**
1246
1334
  * Converts HSL values to RGB values
1247
1335
  *
@@ -1357,102 +1445,6 @@ function lighten(amount) {
1357
1445
  * TODO: Maybe implement by mix+hsl
1358
1446
  */
1359
1447
 
1360
- /**
1361
- * Calculates distance between two colors
1362
- *
1363
- * @param color1 first color
1364
- * @param color2 second color
1365
- *
1366
- * Note: This function is inefficient. Use colorDistanceSquared instead if possible.
1367
- *
1368
- * @public exported from `@promptbook/color`
1369
- */
1370
- /**
1371
- * Calculates distance between two colors without square root
1372
- *
1373
- * @param color1 first color
1374
- * @param color2 second color
1375
- *
1376
- * @public exported from `@promptbook/color`
1377
- */
1378
- function colorDistanceSquared(color1, color2) {
1379
- const rmean = (color1.red + color2.red) / 2;
1380
- const r = color1.red - color2.red;
1381
- const g = color1.green - color2.green;
1382
- const b = color1.blue - color2.blue;
1383
- const weightR = 2 + rmean / 256;
1384
- const weightG = 4.0;
1385
- const weightB = 2 + (255 - rmean) / 256;
1386
- const distance = weightR * r * r + weightG * g * g + weightB * b * b;
1387
- return distance;
1388
- }
1389
-
1390
- /**
1391
- * Makes color transformer which finds the nearest color from the given list
1392
- *
1393
- * @param colors array of colors to choose from
1394
- *
1395
- * @public exported from `@promptbook/color`
1396
- */
1397
- function nearest(...colors) {
1398
- return (color) => {
1399
- const distances = colors.map((c) => colorDistanceSquared(c, color));
1400
- const minDistance = Math.min(...distances);
1401
- const minIndex = distances.indexOf(minDistance);
1402
- const nearestColor = colors[minIndex];
1403
- return nearestColor;
1404
- };
1405
- }
1406
-
1407
- /**
1408
- * Color transformer which returns the negative color
1409
- *
1410
- * @public exported from `@promptbook/color`
1411
- */
1412
- function negative(color) {
1413
- const r = 255 - color.red;
1414
- const g = 255 - color.green;
1415
- const b = 255 - color.blue;
1416
- return Color.fromValues(r, g, b, color.alpha);
1417
- }
1418
-
1419
- /**
1420
- * Makes color transformer which finds the furthest color from the given list
1421
- *
1422
- * @param colors array of colors to choose from
1423
- *
1424
- * @public exported from `@promptbook/color`
1425
- */
1426
- function furthest(...colors) {
1427
- return (color) => {
1428
- const furthestColor = negative(nearest(...colors.map(negative))(color));
1429
- return furthestColor;
1430
- };
1431
- }
1432
- /**
1433
- * Makes color transformer which finds the best text color (black or white) for the given background color
1434
- *
1435
- * @public exported from `@promptbook/color`
1436
- */
1437
- furthest(Color.get('white'), Color.from('black'));
1438
-
1439
- /**
1440
- * Makes color transformer which returns a grayscale version of the color
1441
- *
1442
- * @param amount from 0 to 1
1443
- *
1444
- * @public exported from `@promptbook/color`
1445
- */
1446
- function grayscale(amount) {
1447
- return ({ red, green, blue, alpha }) => {
1448
- const average = (red + green + blue) / 3;
1449
- red = Math.round(average * amount + red * (1 - amount));
1450
- green = Math.round(average * amount + green * (1 - amount));
1451
- blue = Math.round(average * amount + blue * (1 - amount));
1452
- return Color.fromValues(red, green, blue, alpha);
1453
- };
1454
- }
1455
-
1456
1448
  /**
1457
1449
  * Makes color transformer which saturate the given color
1458
1450
  *
@@ -1501,16 +1493,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
1501
1493
  *
1502
1494
  * @public exported from `@promptbook/core`
1503
1495
  */
1504
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
1505
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
1496
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
1497
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1498
+ /**
1499
+ * Colors for syntax highlighting in the `<BookEditor/>`
1500
+ *
1501
+ * TODO: [🗽] Unite branding and make single place for it
1502
+ *
1503
+ * @public exported from `@promptbook/core`
1504
+ */
1505
+ ({
1506
+ TITLE: Color.fromHex('#244EA8'),
1507
+ LINE: Color.fromHex('#eeeeee'),
1508
+ SEPARATOR: Color.fromHex('#cccccc'),
1509
+ COMMITMENT: Color.fromHex('#DA0F78'),
1510
+ PARAMETER: Color.fromHex('#8e44ad'),
1511
+ });
1512
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1506
1513
  /**
1507
- * Dark color of the Promptbook
1514
+ * Chat color of the Promptbook (in chat)
1508
1515
  *
1509
1516
  * TODO: [🗽] Unite branding and make single place for it
1510
1517
  *
1511
1518
  * @public exported from `@promptbook/core`
1512
1519
  */
1513
1520
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
1521
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
1514
1522
  /**
1515
1523
  * Color of the user (in chat)
1516
1524
  *
@@ -1594,7 +1602,7 @@ function orderJson(options) {
1594
1602
  function getErrorReportUrl(error) {
1595
1603
  const report = {
1596
1604
  title: `🐜 Error report from ${NAME}`,
1597
- body: spaceTrim((block) => `
1605
+ body: spaceTrim$2((block) => `
1598
1606
 
1599
1607
 
1600
1608
  \`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
@@ -1752,7 +1760,7 @@ function checkSerializableAsJson(options) {
1752
1760
  }
1753
1761
  else if (typeof value === 'object') {
1754
1762
  if (value instanceof Date) {
1755
- throw new UnexpectedError(spaceTrim((block) => `
1763
+ throw new UnexpectedError(spaceTrim$2((block) => `
1756
1764
  \`${name}\` is Date
1757
1765
 
1758
1766
  Use \`string_date_iso8601\` instead
@@ -1771,7 +1779,7 @@ function checkSerializableAsJson(options) {
1771
1779
  throw new UnexpectedError(`${name} is RegExp`);
1772
1780
  }
1773
1781
  else if (value instanceof Error) {
1774
- throw new UnexpectedError(spaceTrim((block) => `
1782
+ throw new UnexpectedError(spaceTrim$2((block) => `
1775
1783
  \`${name}\` is unserialized Error
1776
1784
 
1777
1785
  Use function \`serializeError\`
@@ -1794,7 +1802,7 @@ function checkSerializableAsJson(options) {
1794
1802
  }
1795
1803
  catch (error) {
1796
1804
  assertsError(error);
1797
- throw new UnexpectedError(spaceTrim((block) => `
1805
+ throw new UnexpectedError(spaceTrim$2((block) => `
1798
1806
  \`${name}\` is not serializable
1799
1807
 
1800
1808
  ${block(error.stack || error.message)}
@@ -1826,7 +1834,7 @@ function checkSerializableAsJson(options) {
1826
1834
  }
1827
1835
  }
1828
1836
  else {
1829
- throw new UnexpectedError(spaceTrim((block) => `
1837
+ throw new UnexpectedError(spaceTrim$2((block) => `
1830
1838
  \`${name}\` is unknown type
1831
1839
 
1832
1840
  Additional message for \`${name}\`:
@@ -1856,7 +1864,7 @@ function deepClone(objectValue) {
1856
1864
  TODO: [🧠] Is there a better implementation?
1857
1865
  > const propertyNames = Object.getOwnPropertyNames(objectValue);
1858
1866
  > for (const propertyName of propertyNames) {
1859
- > const value = (objectValue as really_any)[propertyName];
1867
+ > const value = (objectValue as chococake)[propertyName];
1860
1868
  > if (value && typeof value === 'object') {
1861
1869
  > deepClone(value);
1862
1870
  > }
@@ -2190,7 +2198,7 @@ function createExecutionToolsFromVercelProvider(options) {
2190
2198
  const modelName = modelRequirements.modelName ||
2191
2199
  ((_a = availableModels.find(({ modelVariant }) => modelVariant === 'CHAT')) === null || _a === void 0 ? void 0 : _a.modelName);
2192
2200
  if (!modelName) {
2193
- throw new PipelineExecutionError(spaceTrim(`
2201
+ throw new PipelineExecutionError(spaceTrim$2(`
2194
2202
  Can not determine which model to use.
2195
2203
 
2196
2204
  You need to provide at least one of:
@@ -2208,7 +2216,7 @@ function createExecutionToolsFromVercelProvider(options) {
2208
2216
  let promptMessages;
2209
2217
  if ('thread' in prompt && Array.isArray(prompt.thread)) {
2210
2218
  promptMessages = prompt.thread.map((msg) => ({
2211
- role: msg.role === 'assistant' ? 'assistant' : (msg.role === 'system' ? 'system' : 'user'),
2219
+ role: msg.role === 'assistant' ? 'assistant' : msg.role === 'system' ? 'system' : 'user',
2212
2220
  content: [
2213
2221
  {
2214
2222
  type: 'text',