@promptbook/vercel 0.103.0-9 → 0.104.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +59 -35
  2. package/esm/index.es.js +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 +67 -0
  40. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +23 -0
  41. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  42. package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  43. package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  44. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
  45. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  46. package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
  47. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
  48. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  49. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  50. package/esm/typings/src/book-components/icons/CameraIcon.d.ts +11 -0
  51. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
  52. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  53. package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  54. package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  55. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  56. package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
  57. package/esm/typings/src/book-components/icons/SendIcon.d.ts +3 -0
  58. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  59. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  60. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  61. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  62. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  63. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  64. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  65. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  66. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  67. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  68. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  69. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  70. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  71. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
  72. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
  73. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
  74. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
  75. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  76. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  77. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  78. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  79. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  80. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
  81. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  82. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  83. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  84. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  85. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
  86. package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +39 -0
  87. package/esm/typings/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
  88. package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
  89. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
  90. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
  91. package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
  92. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
  93. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
  94. package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
  95. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
  96. package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
  97. package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
  98. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
  99. package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
  100. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
  101. package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
  102. package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
  103. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
  104. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
  105. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
  106. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
  107. package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
  108. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
  109. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
  110. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
  111. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
  112. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
  113. package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
  114. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +42 -0
  115. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
  116. package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
  117. package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
  118. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +14 -2
  119. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
  120. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
  121. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  122. package/esm/typings/src/commitments/index.d.ts +93 -0
  123. package/esm/typings/src/config.d.ts +24 -3
  124. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
  125. package/esm/typings/src/errors/0-index.d.ts +6 -0
  126. package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
  127. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  128. package/esm/typings/src/errors/WrappedError.d.ts +2 -2
  129. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  130. package/esm/typings/src/execution/Executables.d.ts +3 -0
  131. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  132. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  133. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  134. package/esm/typings/src/execution/LlmExecutionTools.d.ts +26 -2
  135. package/esm/typings/src/execution/PromptResult.d.ts +7 -1
  136. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  137. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  138. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  139. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  140. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  141. package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
  142. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  143. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
  144. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  145. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  146. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  147. package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
  148. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
  149. package/esm/typings/src/llm-providers/agent/Agent.d.ts +72 -0
  150. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
  151. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
  152. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
  153. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
  154. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  155. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  156. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  157. package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
  158. package/esm/typings/src/llm-providers/ollama/OllamaExecutionTools.d.ts +4 -0
  159. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
  160. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  161. package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +13 -1
  162. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +4 -0
  163. package/esm/typings/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +6 -6
  164. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  165. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  166. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  167. package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
  168. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  169. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  170. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
  171. package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
  172. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  173. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
  174. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  175. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  176. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  177. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  178. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  179. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  180. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  181. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  182. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  183. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  184. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  185. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  186. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  187. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  188. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  189. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  190. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
  191. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  192. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  193. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
  194. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  195. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
  196. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  197. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  198. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  199. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  200. package/esm/typings/src/types/ModelRequirements.d.ts +13 -1
  201. package/esm/typings/src/types/ModelVariant.d.ts +1 -1
  202. package/esm/typings/src/types/Prompt.d.ts +13 -1
  203. package/esm/typings/src/types/Updatable.d.ts +19 -0
  204. package/esm/typings/src/types/typeAliases.d.ts +38 -2
  205. package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
  206. package/esm/typings/src/utils/color/Color.d.ts +16 -1
  207. package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
  208. package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
  209. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  210. package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
  211. package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
  212. package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
  213. package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
  214. package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
  215. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  216. package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
  217. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  218. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  219. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  220. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  221. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  222. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  223. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
  224. package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
  225. package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
  226. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  227. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  228. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  229. package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
  230. package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
  231. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  232. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  233. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  234. package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
  235. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  236. package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
  237. package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
  238. package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
  239. package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
  240. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +31 -0
  241. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
  242. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
  243. package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
  244. package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
  245. package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
  246. package/esm/typings/src/utils/random/CzechNamePool.d.ts +7 -0
  247. package/esm/typings/src/utils/random/EnglishNamePool.d.ts +7 -0
  248. package/esm/typings/src/utils/random/NamePool.d.ts +17 -0
  249. package/esm/typings/src/utils/random/getNamePool.d.ts +10 -0
  250. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  251. package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
  252. package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
  253. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
  254. package/esm/typings/src/version.d.ts +1 -1
  255. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  256. package/package.json +5 -5
  257. package/umd/index.umd.js +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,11 +23,7 @@ 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
 
@@ -128,11 +124,15 @@ The main challenge is to narrow it down, constrain it, set the proper **context,
128
124
 
129
125
  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
126
 
127
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
131
128
 
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
- />
129
+ **<ins>Paul Smith & Associés</ins>**<br/>
130
+ <br/>
131
+ **PERSONA** You are a company lawyer.<br/>
132
+ Your job is to provide legal advice and support to the company and its employees.<br/>
133
+ You are knowledgeable, professional, and detail-oriented.<br/>
134
+
135
+ </td></tr></table>
136
136
 
137
137
  <div style="page-break-after: always;"></div>
138
138
 
@@ -146,11 +146,15 @@ You can look at it as prompting (or writing a system message), but decorated by
146
146
 
147
147
  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
148
 
149
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
150
+
151
+ **<ins>Paul Smith & Associés</ins>**<br/>
152
+ <br/>
153
+ **PERSONA** You are a company lawyer.<br/>
154
+ Your job is to provide legal advice and support to the company and its employees.<br/>
155
+ You are knowledgeable, professional, and detail-oriented.<br/>
149
156
 
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
- />
157
+ </td></tr></table>
154
158
 
155
159
  #### `Knowledge` commitment
156
160
 
@@ -160,11 +164,18 @@ This can include domain-specific knowledge, company policies, or any other relev
160
164
 
161
165
  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
166
 
167
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
163
168
 
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
- />
169
+ **<ins>Paul Smith & Associés</ins>**<br/>
170
+ <br/>
171
+ **PERSONA** You are a company lawyer.<br/>
172
+ Your job is to provide legal advice and support to the company and its employees.<br/>
173
+ You are knowledgeable, professional, and detail-oriented.<br/>
174
+ <br/>
175
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
176
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
177
+
178
+ </td></tr></table>
168
179
 
169
180
  #### `Rule` commitment
170
181
 
@@ -172,21 +183,42 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This
172
183
 
173
184
  Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
174
185
 
186
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
187
+
188
+ **<ins>Paul Smith & Associés</ins>**<br/>
189
+ <br/>
190
+ **PERSONA** You are a company lawyer.<br/>
191
+ Your job is to provide legal advice and support to the company and its employees.<br/>
192
+ You are knowledgeable, professional, and detail-oriented.<br/>
193
+ <br/>
194
+ **RULE** Always ensure compliance with laws and regulations.<br/>
195
+ **RULE** Never provide legal advice outside your area of expertise.<br/>
196
+ **RULE** Never provide legal advice about criminal law.<br/>
197
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
198
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
175
199
 
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
- />
200
+ </td></tr></table>
180
201
 
181
202
  #### `Action` commitment
182
203
 
183
204
  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
205
 
206
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
185
207
 
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
- />
208
+ **<ins>Paul Smith & Associés</ins>**<br/>
209
+ <br/>
210
+ **PERSONA** You are a company lawyer.<br/>
211
+ Your job is to provide legal advice and support to the company and its employees.<br/>
212
+ You are knowledgeable, professional, and detail-oriented.<br/>
213
+ <br/>
214
+ **RULE** Always ensure compliance with laws and regulations.<br/>
215
+ **RULE** Never provide legal advice outside your area of expertise.<br/>
216
+ **RULE** Never provide legal advice about criminal law.<br/>
217
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
218
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
219
+ **ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
220
+
221
+ </td></tr></table>
190
222
 
191
223
  [Read more about the language](./BLUEPRINT.md)
192
224
 
@@ -233,14 +265,10 @@ Now you want to use it. There are several ways how to write your first book:
233
265
 
234
266
  We have written ai asistant in book who can help you with writing your first book.
235
267
 
236
-
237
-
238
268
  #### Your AI twin
239
269
 
240
270
  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
271
 
242
-
243
-
244
272
  #### AI persona workpool
245
273
 
246
274
  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 +388,6 @@ Join our growing community of developers and users:
360
388
 
361
389
 
362
390
 
363
-
364
-
365
391
  ## 📚 Documentation
366
392
 
367
393
  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 +464,6 @@ The following glossary is used to clarify certain concepts:
438
464
 
439
465
  _Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
440
466
 
441
-
442
-
443
467
  ### 💯 Core concepts
444
468
 
445
469
  - [📚 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-9';
19
+ const PROMPTBOOK_ENGINE_VERSION = '0.104.0-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-9';
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',