@promptbook/vercel 0.103.0-1 → 0.103.0-100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +153 -89
  2. package/esm/index.es.js +105 -115
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/books/index.d.ts +0 -81
  5. package/esm/typings/servers.d.ts +9 -7
  6. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  7. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  8. package/esm/typings/src/_packages/components.index.d.ts +20 -8
  9. package/esm/typings/src/_packages/core.index.d.ts +58 -18
  10. package/esm/typings/src/_packages/node.index.d.ts +2 -2
  11. package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
  12. package/esm/typings/src/_packages/types.index.d.ts +58 -8
  13. package/esm/typings/src/_packages/utils.index.d.ts +6 -0
  14. package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
  15. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +19 -5
  16. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +17 -1
  17. package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
  18. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
  19. package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +3 -3
  20. package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
  21. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
  22. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +18 -0
  23. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
  24. package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +3 -0
  25. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +10 -0
  26. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileTooltip.d.ts +15 -0
  27. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +83 -8
  28. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
  29. package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  30. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +14 -0
  31. package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
  32. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +10 -0
  33. package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
  34. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
  35. package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
  36. package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
  37. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
  38. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
  39. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +5 -0
  40. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +29 -0
  41. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  42. package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  43. package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  44. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
  45. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  46. package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
  47. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +13 -0
  48. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  49. package/esm/typings/src/book-components/_common/react-utils/classNames.d.ts +1 -1
  50. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  51. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
  52. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  53. package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  54. package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  55. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  56. package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
  57. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  58. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  59. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  60. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  61. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  62. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  63. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  64. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  65. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  66. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  67. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  68. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  69. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  70. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
  71. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
  72. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
  73. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
  74. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  75. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  76. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  77. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  78. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  79. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
  80. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  81. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  82. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  83. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  84. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
  85. package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +35 -0
  86. package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
  87. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
  88. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
  89. package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
  90. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
  91. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
  92. package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
  93. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
  94. package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
  95. package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
  96. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
  97. package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
  98. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
  99. package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
  100. package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
  101. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
  102. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
  103. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
  104. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
  105. package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
  106. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
  107. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
  108. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
  109. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
  110. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
  111. package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
  112. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +38 -0
  113. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
  114. package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
  115. package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
  116. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +8 -2
  117. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
  118. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
  119. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  120. package/esm/typings/src/commitments/index.d.ts +93 -0
  121. package/esm/typings/src/config.d.ts +24 -3
  122. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
  123. package/esm/typings/src/errors/0-index.d.ts +6 -0
  124. package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
  125. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  126. package/esm/typings/src/errors/WrappedError.d.ts +2 -2
  127. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  128. package/esm/typings/src/execution/Executables.d.ts +3 -0
  129. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  130. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  131. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  132. package/esm/typings/src/execution/LlmExecutionTools.d.ts +21 -1
  133. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  134. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  135. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  136. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  137. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  138. package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
  139. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  140. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
  141. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  142. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  143. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  144. package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
  145. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
  146. package/esm/typings/src/llm-providers/agent/Agent.d.ts +70 -0
  147. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
  148. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
  149. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
  150. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
  151. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  152. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  153. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  154. package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
  155. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
  156. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  157. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  158. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  159. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  160. package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
  161. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  162. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  163. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
  164. package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
  165. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  166. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
  167. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  168. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  169. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  170. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  171. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  172. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  173. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  174. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  175. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  176. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  177. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  178. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  179. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  180. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  181. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  182. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  183. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
  184. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  185. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  186. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
  187. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  188. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
  189. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  190. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  191. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  192. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  193. package/esm/typings/src/types/Updatable.d.ts +19 -0
  194. package/esm/typings/src/types/typeAliases.d.ts +32 -2
  195. package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
  196. package/esm/typings/src/utils/color/Color.d.ts +15 -0
  197. package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
  198. package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
  199. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  200. package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
  201. package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
  202. package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
  203. package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
  204. package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
  205. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  206. package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
  207. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  208. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  209. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  210. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  211. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  212. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  213. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
  214. package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
  215. package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
  216. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  217. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  218. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  219. package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
  220. package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
  221. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  222. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  223. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  224. package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
  225. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  226. package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
  227. package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
  228. package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
  229. package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
  230. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +25 -0
  231. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
  232. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
  233. package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
  234. package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
  235. package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
  236. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  237. package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
  238. package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
  239. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
  240. package/esm/typings/src/version.d.ts +1 -1
  241. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  242. package/package.json +4 -4
  243. package/umd/index.umd.js +103 -113
  244. package/umd/index.umd.js.map +1 -1
  245. package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
  246. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
  247. package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
  248. package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
  249. package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
  250. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
  251. /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
  252. /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
  253. /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
  254. /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
  255. /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
  256. /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
  257. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
  258. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
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
 
@@ -120,19 +116,162 @@ Rest of the documentation is common for **entire promptbook ecosystem**:
120
116
 
121
117
 
122
118
 
123
- ## 🤍 The Book Abstract
119
+ ## 📖 The Book Whitepaper
124
120
 
125
- **It's time for a paradigm shift! The future of software is written in plain English, French, or Latin.**
121
+ For most business applications nowadays, the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable.
126
122
 
127
- During the computer revolution, we have seen [multiple generations of computer languages](https://github.com/webgptorg/promptbook/discussions/180), from the physical rewiring of the vacuum tubes through low-level machine code to the high-level languages like Python or JavaScript. And now, we're on the edge of the **next revolution**!
123
+ The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. On one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel, which can give you deep control.
128
124
 
129
- It's a revolution of writing software in **plain human language** that is understandable and executable by both humans and machines and it's going to change everything!
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
 
131
- The incredible growth in power of microprocessors and the Moore's Law have been the driving force behind the ever-more powerful languages, and it's been an amazing journey! Similarly, the large language models (like GPT or Claude) are the next big thing in language technology, and they're set to transform the way we interact with computers.
127
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
132
128
 
133
- This shift will happen whether we're ready or not. Our mission is to make it excellent, not just good.
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
134
 
135
- **Join us in this journey!**
135
+ </td></tr></table>
136
+
137
+ <div style="page-break-after: always;"></div>
138
+
139
+ ### Aspects of great AI agent
140
+
141
+ We have created a language called **Book**, which allows you to write AI agents in their native language and create your own AI persona. Book provides a guide to define all the traits and commitments.
142
+
143
+ You can look at it as prompting (or writing a system message), but decorated by **commitments**.
144
+
145
+ #### `Persona` commitment
146
+
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
+
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/>
156
+
157
+ </td></tr></table>
158
+
159
+ #### `Knowledge` commitment
160
+
161
+ Knowledge Commitment allows you to provide specific information, facts, or context that the AI should be aware of when responding.
162
+
163
+ This can include domain-specific knowledge, company policies, or any other relevant information.
164
+
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.
166
+
167
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
168
+
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>
179
+
180
+ #### `Rule` commitment
181
+
182
+ Rules will enforce specific behaviors or constraints on the AI's responses. This can include ethical guidelines, communication styles, or any other rules you want the AI to follow.
183
+
184
+ Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
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/>
199
+
200
+ </td></tr></table>
201
+
202
+ #### `Action` commitment
203
+
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.
205
+
206
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
207
+
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>
222
+
223
+ [Read more about the language](./BLUEPRINT.md)
224
+
225
+ <div style="page-break-after: always;"></div>
226
+
227
+ ### Where to use your AI agent in book
228
+
229
+ Books can be useful in various applications and scenarios. Here are some examples:
230
+
231
+ #### Chat apps:
232
+
233
+ Create your own chat shopping assistant and place it in your eShop.
234
+ You will be able to answer customer questions, help them find products, and provide personalized recommendations. Everything is tightly controlled by the book you have written.
235
+
236
+ #### Reply Agent:
237
+
238
+ Create your own AI agent, which will look at your emails and reply to them. It can even create drafts for you to review before sending.
239
+
240
+ #### Coding Agent:
241
+
242
+ Do you love Vibecoding, but the AI code is not always aligned with your coding style and architecture, rules, security, etc.? Create your own coding agent to help enforce your specific coding standards and practices.
243
+
244
+ This can be integrated to almost any Vibecoding platform, like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,...
245
+
246
+ They will work the same as you are used to, but with your specific rules written in book.
247
+
248
+ #### Internal Expertise
249
+
250
+ Do you have an app written in TypeScript, Python, C#, Java, or any other language, and you are integrating the AI.
251
+
252
+ You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc., by writing a book agent and using it as your AI expertise.
253
+
254
+ Doesn't matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements.
255
+
256
+ Even works in no-code platforms!
257
+
258
+ <div style="page-break-after: always;"></div>
259
+
260
+ ### How to create your AI agent in book
261
+
262
+ Now you want to use it. There are several ways how to write your first book:
263
+
264
+ #### From scratch with help from Paul
265
+
266
+ We have written ai asistant in book who can help you with writing your first book.
267
+
268
+ #### Your AI twin
269
+
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.
271
+
272
+ #### AI persona workpool
273
+
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.
136
275
 
137
276
 
138
277
 
@@ -247,81 +386,6 @@ Join our growing community of developers and users:
247
386
 
248
387
 
249
388
 
250
- ## 📘 Book Language Blueprint
251
-
252
- _A concise, Markdown-based DSL for crafting AI workflows and automations._
253
-
254
- ### Introduction
255
-
256
- Book is a Markdown-based language that simplifies the creation of AI applications, workflows, and automations. With human-readable commands, you can define inputs, outputs, personas, knowledge sources, and actions—without needing model-specific details.
257
-
258
- ### Example
259
-
260
- ```book
261
- # 🌟 My First Book
262
-
263
- - BOOK VERSION 1.0.0
264
- - URL https://promptbook.studio/hello.book
265
- - INPUT PARAMETER {topic}
266
- - OUTPUT PARAMETER {article}
267
-
268
- # Write an Article
269
-
270
- - PERSONA Jane, marketing specialist with prior experience in tech and AI writing
271
- - KNOWLEDGE https://wikipedia.org/
272
- - KNOWLEDGE ./journalist-ethics.pdf
273
- - EXPECT MIN 1 Sentence
274
- - EXPECT MAX 5 Pages
275
-
276
- > Write an article about {topic}
277
-
278
- → {article}
279
- ```
280
-
281
- Each part of the book defines one of three circles:
282
-
283
- ### **1. What:** Workflows, Tasks and Parameters
284
-
285
- What work needs to be done. Each book defines a [workflow _(scenario or pipeline)_](https://github.com/webgptorg/promptbook/discussions/88), which is one or more tasks. Each workflow has a fixed input and output. For example, you have a book that generates an article from a topic. Once it generates an article about AI, once about marketing, once about cooking. The workflow (= your AI program) is the same, only the input and output change.
286
-
287
- **Related commands:**
288
-
289
- - [PARAMETER](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PARAMETER.md)
290
-
291
- ### **2. Who:** Personas
292
-
293
- Who does the work. Each task is performed by a persona. A persona is a description of your virtual employee. It is a higher abstraction than the model, tokens, temperature, top-k, top-p and other model parameters.
294
-
295
- You can describe what you want in human language like `Jane, creative writer with a sense of sharp humour` instead of `gpt-4-2024-13-31, temperature 1.2, top-k 40, STOP token ".\n",...`.
296
-
297
- Personas can have access to different knowledge, tools and actions. They can also consult their work with other personas or user, if allowed.
298
-
299
- **Related commands:**
300
-
301
- - [PERSONA](https://github.com/webgptorg/promptbook/blob/main/documents/commands/PERSONA.md)
302
-
303
- ### **3. How:** Knowledge, Instruments and Actions
304
-
305
- The resources used by the personas are used to do the work.
306
-
307
- **Related commands:**
308
-
309
- - [KNOWLEDGE](https://github.com/webgptorg/promptbook/blob/main/documents/commands/KNOWLEDGE.md) of documents, websites, and other resources
310
- - [INSTRUMENT](https://github.com/webgptorg/promptbook/blob/main/documents/commands/INSTRUMENT.md) for real-time data like time, location, weather, stock prices, searching the internet, calculations, etc.
311
- - [ACTION](https://github.com/webgptorg/promptbook/blob/main/documents/commands/ACTION.md) for actions like sending emails, creating files, ending a workflow, etc.
312
-
313
- ### General Principles
314
-
315
- Book language is based on markdown. It is subset of markdown. It is designed to be easy to read and write. It is designed to be understandable by both humans and machines and without specific knowledge of the language.
316
-
317
- The file has a `.book` extension and uses UTF-8 encoding without BOM.
318
-
319
- Books have two variants: flat — just a prompt without structure, and full — with tasks, commands, and prompts.
320
-
321
- As it is source code, it can leverage all the features of version control systems like git and does not suffer from the problems of binary formats, proprietary formats, or no-code solutions.
322
-
323
- But unlike programming languages, it is designed to be understandable by non-programmers and non-technical people.
324
-
325
389
 
326
390
 
327
391
  ## 📚 Documentation
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-1';
19
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-100';
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-1';
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
@@ -850,6 +864,28 @@ class Color {
850
864
  throw new Error(`Can not create color from given object`);
851
865
  }
852
866
  }
867
+ /**
868
+ * Creates a new Color instance from miscellaneous formats
869
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
870
+ *
871
+ * @param color
872
+ * @returns Color object
873
+ */
874
+ static fromSafe(color) {
875
+ try {
876
+ return Color.from(color);
877
+ }
878
+ catch (error) {
879
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
880
+ console.warn(spaceTrim((block) => `
881
+ Color.fromSafe error:
882
+ ${block(error.message)}
883
+
884
+ Returning default PROMPTBOOK_COLOR.
885
+ `));
886
+ return Color.fromString('promptbook');
887
+ }
888
+ }
853
889
  /**
854
890
  * Creates a new Color instance from miscellaneous string formats
855
891
  *
@@ -917,6 +953,9 @@ class Color {
917
953
  if (hex.length === 3) {
918
954
  return Color.fromHex3(hex);
919
955
  }
956
+ if (hex.length === 4) {
957
+ return Color.fromHex4(hex);
958
+ }
920
959
  if (hex.length === 6) {
921
960
  return Color.fromHex6(hex);
922
961
  }
@@ -937,6 +976,19 @@ class Color {
937
976
  const b = parseInt(hex.substr(2, 1), 16) * 16;
938
977
  return take(new Color(r, g, b));
939
978
  }
979
+ /**
980
+ * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
981
+ *
982
+ * @param color in hex for example `09df`
983
+ * @returns Color object
984
+ */
985
+ static fromHex4(hex) {
986
+ const r = parseInt(hex.substr(0, 1), 16) * 16;
987
+ const g = parseInt(hex.substr(1, 1), 16) * 16;
988
+ const b = parseInt(hex.substr(2, 1), 16) * 16;
989
+ const a = parseInt(hex.substr(3, 1), 16) * 16;
990
+ return take(new Color(r, g, b, a));
991
+ }
940
992
  /**
941
993
  * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
942
994
  *
@@ -1127,7 +1179,8 @@ class Color {
1127
1179
  * @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
1128
1180
  */
1129
1181
  static isHexColorString(value) {
1130
- return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
1182
+ return (typeof value === 'string' &&
1183
+ /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
1131
1184
  }
1132
1185
  /**
1133
1186
  * Creates new Color object
@@ -1242,6 +1295,23 @@ class Color {
1242
1295
  * TODO: Maybe connect with textures
1243
1296
  */
1244
1297
 
1298
+ /**
1299
+ * Makes color transformer which returns a grayscale version of the color
1300
+ *
1301
+ * @param amount from 0 to 1
1302
+ *
1303
+ * @public exported from `@promptbook/color`
1304
+ */
1305
+ function grayscale(amount) {
1306
+ return ({ red, green, blue, alpha }) => {
1307
+ const average = (red + green + blue) / 3;
1308
+ red = Math.round(average * amount + red * (1 - amount));
1309
+ green = Math.round(average * amount + green * (1 - amount));
1310
+ blue = Math.round(average * amount + blue * (1 - amount));
1311
+ return Color.fromValues(red, green, blue, alpha);
1312
+ };
1313
+ }
1314
+
1245
1315
  /**
1246
1316
  * Converts HSL values to RGB values
1247
1317
  *
@@ -1357,102 +1427,6 @@ function lighten(amount) {
1357
1427
  * TODO: Maybe implement by mix+hsl
1358
1428
  */
1359
1429
 
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
1430
  /**
1457
1431
  * Makes color transformer which saturate the given color
1458
1432
  *
@@ -1501,16 +1475,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
1501
1475
  *
1502
1476
  * @public exported from `@promptbook/core`
1503
1477
  */
1504
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
1505
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
1478
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
1479
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1480
+ /**
1481
+ * Colors for syntax highlighting in the `<BookEditor/>`
1482
+ *
1483
+ * TODO: [🗽] Unite branding and make single place for it
1484
+ *
1485
+ * @public exported from `@promptbook/core`
1486
+ */
1487
+ ({
1488
+ TITLE: Color.fromHex('#244EA8'),
1489
+ LINE: Color.fromHex('#eeeeee'),
1490
+ SEPARATOR: Color.fromHex('#cccccc'),
1491
+ COMMITMENT: Color.fromHex('#DA0F78'),
1492
+ PARAMETER: Color.fromHex('#8e44ad'),
1493
+ });
1494
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1506
1495
  /**
1507
- * Dark color of the Promptbook
1496
+ * Chat color of the Promptbook (in chat)
1508
1497
  *
1509
1498
  * TODO: [🗽] Unite branding and make single place for it
1510
1499
  *
1511
1500
  * @public exported from `@promptbook/core`
1512
1501
  */
1513
1502
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
1503
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
1514
1504
  /**
1515
1505
  * Color of the user (in chat)
1516
1506
  *
@@ -1594,7 +1584,7 @@ function orderJson(options) {
1594
1584
  function getErrorReportUrl(error) {
1595
1585
  const report = {
1596
1586
  title: `🐜 Error report from ${NAME}`,
1597
- body: spaceTrim((block) => `
1587
+ body: spaceTrim$2((block) => `
1598
1588
 
1599
1589
 
1600
1590
  \`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
@@ -1752,7 +1742,7 @@ function checkSerializableAsJson(options) {
1752
1742
  }
1753
1743
  else if (typeof value === 'object') {
1754
1744
  if (value instanceof Date) {
1755
- throw new UnexpectedError(spaceTrim((block) => `
1745
+ throw new UnexpectedError(spaceTrim$2((block) => `
1756
1746
  \`${name}\` is Date
1757
1747
 
1758
1748
  Use \`string_date_iso8601\` instead
@@ -1771,7 +1761,7 @@ function checkSerializableAsJson(options) {
1771
1761
  throw new UnexpectedError(`${name} is RegExp`);
1772
1762
  }
1773
1763
  else if (value instanceof Error) {
1774
- throw new UnexpectedError(spaceTrim((block) => `
1764
+ throw new UnexpectedError(spaceTrim$2((block) => `
1775
1765
  \`${name}\` is unserialized Error
1776
1766
 
1777
1767
  Use function \`serializeError\`
@@ -1794,7 +1784,7 @@ function checkSerializableAsJson(options) {
1794
1784
  }
1795
1785
  catch (error) {
1796
1786
  assertsError(error);
1797
- throw new UnexpectedError(spaceTrim((block) => `
1787
+ throw new UnexpectedError(spaceTrim$2((block) => `
1798
1788
  \`${name}\` is not serializable
1799
1789
 
1800
1790
  ${block(error.stack || error.message)}
@@ -1826,7 +1816,7 @@ function checkSerializableAsJson(options) {
1826
1816
  }
1827
1817
  }
1828
1818
  else {
1829
- throw new UnexpectedError(spaceTrim((block) => `
1819
+ throw new UnexpectedError(spaceTrim$2((block) => `
1830
1820
  \`${name}\` is unknown type
1831
1821
 
1832
1822
  Additional message for \`${name}\`:
@@ -1856,7 +1846,7 @@ function deepClone(objectValue) {
1856
1846
  TODO: [🧠] Is there a better implementation?
1857
1847
  > const propertyNames = Object.getOwnPropertyNames(objectValue);
1858
1848
  > for (const propertyName of propertyNames) {
1859
- > const value = (objectValue as really_any)[propertyName];
1849
+ > const value = (objectValue as chococake)[propertyName];
1860
1850
  > if (value && typeof value === 'object') {
1861
1851
  > deepClone(value);
1862
1852
  > }
@@ -2190,7 +2180,7 @@ function createExecutionToolsFromVercelProvider(options) {
2190
2180
  const modelName = modelRequirements.modelName ||
2191
2181
  ((_a = availableModels.find(({ modelVariant }) => modelVariant === 'CHAT')) === null || _a === void 0 ? void 0 : _a.modelName);
2192
2182
  if (!modelName) {
2193
- throw new PipelineExecutionError(spaceTrim(`
2183
+ throw new PipelineExecutionError(spaceTrim$2(`
2194
2184
  Can not determine which model to use.
2195
2185
 
2196
2186
  You need to provide at least one of:
@@ -2208,7 +2198,7 @@ function createExecutionToolsFromVercelProvider(options) {
2208
2198
  let promptMessages;
2209
2199
  if ('thread' in prompt && Array.isArray(prompt.thread)) {
2210
2200
  promptMessages = prompt.thread.map((msg) => ({
2211
- role: msg.role === 'assistant' ? 'assistant' : (msg.role === 'system' ? 'system' : 'user'),
2201
+ role: msg.role === 'assistant' ? 'assistant' : msg.role === 'system' ? 'system' : 'user',
2212
2202
  content: [
2213
2203
  {
2214
2204
  type: 'text',