@promptbook/javascript 0.103.0-10 → 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 (253) hide show
  1. package/README.md +59 -35
  2. package/esm/index.es.js +117 -121
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/books/index.d.ts +0 -81
  5. package/esm/typings/servers.d.ts +9 -7
  6. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  7. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  8. package/esm/typings/src/_packages/components.index.d.ts +20 -8
  9. package/esm/typings/src/_packages/core.index.d.ts +58 -18
  10. package/esm/typings/src/_packages/node.index.d.ts +2 -2
  11. package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
  12. package/esm/typings/src/_packages/types.index.d.ts +58 -8
  13. package/esm/typings/src/_packages/utils.index.d.ts +6 -0
  14. package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
  15. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +19 -5
  16. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +17 -1
  17. package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
  18. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
  19. package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +3 -3
  20. package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
  21. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
  22. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +18 -0
  23. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
  24. package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +3 -0
  25. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +6 -1
  26. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +77 -7
  27. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
  28. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +14 -0
  29. package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
  30. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +10 -0
  31. package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
  32. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
  33. package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
  34. package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
  35. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
  36. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
  37. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
  38. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +29 -0
  39. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  40. package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  41. package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  42. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
  43. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  44. package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
  45. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
  46. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  47. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  48. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
  49. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  50. package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  51. package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  52. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  53. package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
  54. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  55. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  56. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  57. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  58. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  59. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  60. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  61. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  62. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  63. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  64. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  65. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  66. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  67. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
  68. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
  69. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
  70. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
  71. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  72. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  73. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  74. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  75. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  76. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
  77. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  78. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  79. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  80. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  81. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
  82. package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +35 -0
  83. package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
  84. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
  85. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
  86. package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
  87. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
  88. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
  89. package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
  90. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
  91. package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
  92. package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
  93. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
  94. package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
  95. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
  96. package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
  97. package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
  98. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
  99. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
  100. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
  101. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
  102. package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
  103. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
  104. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
  105. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
  106. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
  107. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
  108. package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
  109. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +38 -0
  110. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
  111. package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
  112. package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
  113. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +8 -2
  114. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
  115. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
  116. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  117. package/esm/typings/src/commitments/index.d.ts +93 -0
  118. package/esm/typings/src/config.d.ts +24 -3
  119. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
  120. package/esm/typings/src/errors/0-index.d.ts +6 -0
  121. package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
  122. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  123. package/esm/typings/src/errors/WrappedError.d.ts +2 -2
  124. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  125. package/esm/typings/src/execution/Executables.d.ts +3 -0
  126. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  127. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  128. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  129. package/esm/typings/src/execution/LlmExecutionTools.d.ts +21 -1
  130. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  131. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  132. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  133. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  134. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  135. package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
  136. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  137. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
  138. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  139. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  140. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  141. package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
  142. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
  143. package/esm/typings/src/llm-providers/agent/Agent.d.ts +70 -0
  144. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
  145. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
  146. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
  147. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
  148. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  149. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  150. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  151. package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
  152. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
  153. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  154. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  155. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  156. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  157. package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
  158. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  159. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  160. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
  161. package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
  162. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  163. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
  164. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  165. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  166. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  167. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  168. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  169. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  170. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  171. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  172. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  173. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  174. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  175. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  176. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  177. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  178. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  179. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  180. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
  181. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  182. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  183. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
  184. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  185. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
  186. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  187. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  188. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  189. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  190. package/esm/typings/src/types/Updatable.d.ts +19 -0
  191. package/esm/typings/src/types/typeAliases.d.ts +32 -2
  192. package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
  193. package/esm/typings/src/utils/color/Color.d.ts +15 -0
  194. package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
  195. package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
  196. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  197. package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
  198. package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
  199. package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
  200. package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
  201. package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
  202. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  203. package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
  204. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  205. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  206. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  207. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  208. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  209. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  210. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
  211. package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
  212. package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
  213. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  214. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  215. package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
  216. package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
  217. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  218. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  219. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  220. package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
  221. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  222. package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
  223. package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
  224. package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
  225. package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
  226. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +25 -0
  227. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
  228. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
  229. package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
  230. package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
  231. package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
  232. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  233. package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
  234. package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
  235. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
  236. package/esm/typings/src/version.d.ts +1 -1
  237. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  238. package/package.json +4 -4
  239. package/umd/index.umd.js +114 -120
  240. package/umd/index.umd.js.map +1 -1
  241. package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
  242. package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -11
  243. package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
  244. package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
  245. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
  246. /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
  247. /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
  248. /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
  249. /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
  250. /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
  251. /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
  252. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
  253. /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
 
@@ -114,11 +110,15 @@ The main challenge is to narrow it down, constrain it, set the proper **context,
114
110
 
115
111
  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.
116
112
 
113
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
117
114
 
118
- <img
119
- alt="Paul Smith & Associés Book"
120
- 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"
121
- />
115
+ **<ins>Paul Smith & Associés</ins>**<br/>
116
+ <br/>
117
+ **PERSONA** You are a company lawyer.<br/>
118
+ Your job is to provide legal advice and support to the company and its employees.<br/>
119
+ You are knowledgeable, professional, and detail-oriented.<br/>
120
+
121
+ </td></tr></table>
122
122
 
123
123
  <div style="page-break-after: always;"></div>
124
124
 
@@ -132,11 +132,15 @@ You can look at it as prompting (or writing a system message), but decorated by
132
132
 
133
133
  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.
134
134
 
135
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
136
+
137
+ **<ins>Paul Smith & Associés</ins>**<br/>
138
+ <br/>
139
+ **PERSONA** You are a company lawyer.<br/>
140
+ Your job is to provide legal advice and support to the company and its employees.<br/>
141
+ You are knowledgeable, professional, and detail-oriented.<br/>
135
142
 
136
- <img
137
- alt="Paul Smith & Associés Book"
138
- 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"
139
- />
143
+ </td></tr></table>
140
144
 
141
145
  #### `Knowledge` commitment
142
146
 
@@ -146,11 +150,18 @@ This can include domain-specific knowledge, company policies, or any other relev
146
150
 
147
151
  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.
148
152
 
153
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
149
154
 
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.%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"
153
- />
155
+ **<ins>Paul Smith & Associés</ins>**<br/>
156
+ <br/>
157
+ **PERSONA** You are a company lawyer.<br/>
158
+ Your job is to provide legal advice and support to the company and its employees.<br/>
159
+ You are knowledgeable, professional, and detail-oriented.<br/>
160
+ <br/>
161
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
162
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
163
+
164
+ </td></tr></table>
154
165
 
155
166
  #### `Rule` commitment
156
167
 
@@ -158,21 +169,42 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This
158
169
 
159
170
  Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
160
171
 
172
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
173
+
174
+ **<ins>Paul Smith & Associés</ins>**<br/>
175
+ <br/>
176
+ **PERSONA** You are a company lawyer.<br/>
177
+ Your job is to provide legal advice and support to the company and its employees.<br/>
178
+ You are knowledgeable, professional, and detail-oriented.<br/>
179
+ <br/>
180
+ **RULE** Always ensure compliance with laws and regulations.<br/>
181
+ **RULE** Never provide legal advice outside your area of expertise.<br/>
182
+ **RULE** Never provide legal advice about criminal law.<br/>
183
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
184
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
161
185
 
162
- <img
163
- alt="Paul Smith & Associés Book"
164
- 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"
165
- />
186
+ </td></tr></table>
166
187
 
167
188
  #### `Action` commitment
168
189
 
169
190
  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.
170
191
 
192
+ <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
171
193
 
172
- <img
173
- alt="Paul Smith & Associés Book"
174
- 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"
175
- />
194
+ **<ins>Paul Smith & Associés</ins>**<br/>
195
+ <br/>
196
+ **PERSONA** You are a company lawyer.<br/>
197
+ Your job is to provide legal advice and support to the company and its employees.<br/>
198
+ You are knowledgeable, professional, and detail-oriented.<br/>
199
+ <br/>
200
+ **RULE** Always ensure compliance with laws and regulations.<br/>
201
+ **RULE** Never provide legal advice outside your area of expertise.<br/>
202
+ **RULE** Never provide legal advice about criminal law.<br/>
203
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
204
+ **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
205
+ **ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
206
+
207
+ </td></tr></table>
176
208
 
177
209
  [Read more about the language](./BLUEPRINT.md)
178
210
 
@@ -219,14 +251,10 @@ Now you want to use it. There are several ways how to write your first book:
219
251
 
220
252
  We have written ai asistant in book who can help you with writing your first book.
221
253
 
222
-
223
-
224
254
  #### Your AI twin
225
255
 
226
256
  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.
227
257
 
228
-
229
-
230
258
  #### AI persona workpool
231
259
 
232
260
  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.
@@ -346,8 +374,6 @@ Join our growing community of developers and users:
346
374
 
347
375
 
348
376
 
349
-
350
-
351
377
  ## 📚 Documentation
352
378
 
353
379
  See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
@@ -424,8 +450,6 @@ The following glossary is used to clarify certain concepts:
424
450
 
425
451
  _Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
426
452
 
427
-
428
-
429
453
  ### 💯 Core concepts
430
454
 
431
455
  - [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
package/esm/index.es.js CHANGED
@@ -1,6 +1,8 @@
1
- import spaceTrim, { spaceTrim as spaceTrim$1 } from 'spacetrim';
1
+ import spaceTrim$2, { spaceTrim as spaceTrim$1 } from 'spacetrim';
2
2
  import 'path';
3
3
  import { randomBytes } from 'crypto';
4
+ import 'crypto-js';
5
+ import 'crypto-js/enc-hex';
4
6
 
5
7
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
6
8
  /**
@@ -9,19 +11,30 @@ import { randomBytes } from 'crypto';
9
11
  * @generated
10
12
  * @see https://github.com/webgptorg/book
11
13
  */
12
- const BOOK_LANGUAGE_VERSION = '1.0.0';
14
+ const BOOK_LANGUAGE_VERSION = '2.0.0';
13
15
  /**
14
16
  * The version of the Promptbook engine
15
17
  *
16
18
  * @generated
17
19
  * @see https://github.com/webgptorg/promptbook
18
20
  */
19
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-10';
21
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-100';
20
22
  /**
21
23
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
22
24
  * Note: [💞] Ignore a discrepancy between file name and entity name
23
25
  */
24
26
 
27
+ /**
28
+ * Trims string from all 4 sides
29
+ *
30
+ * Note: This is a re-exported function from the `spacetrim` package which is
31
+ * Developed by same author @hejny as this package
32
+ *
33
+ * @public exported from `@promptbook/utils`
34
+ * @see https://github.com/hejny/spacetrim#usage
35
+ */
36
+ const spaceTrim = spaceTrim$1;
37
+
25
38
  /**
26
39
  * @private util of `@promptbook/color`
27
40
  * @de
@@ -70,6 +83,7 @@ function take(initialValue) {
70
83
  * @public exported from `@promptbook/color`
71
84
  */
72
85
  const CSS_COLORS = {
86
+ promptbook: '#79EAFD',
73
87
  transparent: 'rgba(0,0,0,0)',
74
88
  aliceblue: '#f0f8ff',
75
89
  antiquewhite: '#faebd7',
@@ -251,9 +265,6 @@ function checkChannelValue(channelName, value) {
251
265
  throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
252
266
  }
253
267
  }
254
- /**
255
- * TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
256
- */
257
268
 
258
269
  /**
259
270
  * Color object represents an RGB color with alpha channel
@@ -288,6 +299,28 @@ class Color {
288
299
  throw new Error(`Can not create color from given object`);
289
300
  }
290
301
  }
302
+ /**
303
+ * Creates a new Color instance from miscellaneous formats
304
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
305
+ *
306
+ * @param color
307
+ * @returns Color object
308
+ */
309
+ static fromSafe(color) {
310
+ try {
311
+ return Color.from(color);
312
+ }
313
+ catch (error) {
314
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
315
+ console.warn(spaceTrim((block) => `
316
+ Color.fromSafe error:
317
+ ${block(error.message)}
318
+
319
+ Returning default PROMPTBOOK_COLOR.
320
+ `));
321
+ return Color.fromString('promptbook');
322
+ }
323
+ }
291
324
  /**
292
325
  * Creates a new Color instance from miscellaneous string formats
293
326
  *
@@ -355,6 +388,9 @@ class Color {
355
388
  if (hex.length === 3) {
356
389
  return Color.fromHex3(hex);
357
390
  }
391
+ if (hex.length === 4) {
392
+ return Color.fromHex4(hex);
393
+ }
358
394
  if (hex.length === 6) {
359
395
  return Color.fromHex6(hex);
360
396
  }
@@ -375,6 +411,19 @@ class Color {
375
411
  const b = parseInt(hex.substr(2, 1), 16) * 16;
376
412
  return take(new Color(r, g, b));
377
413
  }
414
+ /**
415
+ * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
416
+ *
417
+ * @param color in hex for example `09df`
418
+ * @returns Color object
419
+ */
420
+ static fromHex4(hex) {
421
+ const r = parseInt(hex.substr(0, 1), 16) * 16;
422
+ const g = parseInt(hex.substr(1, 1), 16) * 16;
423
+ const b = parseInt(hex.substr(2, 1), 16) * 16;
424
+ const a = parseInt(hex.substr(3, 1), 16) * 16;
425
+ return take(new Color(r, g, b, a));
426
+ }
378
427
  /**
379
428
  * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
380
429
  *
@@ -565,7 +614,8 @@ class Color {
565
614
  * @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
566
615
  */
567
616
  static isHexColorString(value) {
568
- return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
617
+ return (typeof value === 'string' &&
618
+ /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
569
619
  }
570
620
  /**
571
621
  * Creates new Color object
@@ -680,6 +730,23 @@ class Color {
680
730
  * TODO: Maybe connect with textures
681
731
  */
682
732
 
733
+ /**
734
+ * Makes color transformer which returns a grayscale version of the color
735
+ *
736
+ * @param amount from 0 to 1
737
+ *
738
+ * @public exported from `@promptbook/color`
739
+ */
740
+ function grayscale(amount) {
741
+ return ({ red, green, blue, alpha }) => {
742
+ const average = (red + green + blue) / 3;
743
+ red = Math.round(average * amount + red * (1 - amount));
744
+ green = Math.round(average * amount + green * (1 - amount));
745
+ blue = Math.round(average * amount + blue * (1 - amount));
746
+ return Color.fromValues(red, green, blue, alpha);
747
+ };
748
+ }
749
+
683
750
  /**
684
751
  * Converts HSL values to RGB values
685
752
  *
@@ -795,102 +862,6 @@ function lighten(amount) {
795
862
  * TODO: Maybe implement by mix+hsl
796
863
  */
797
864
 
798
- /**
799
- * Calculates distance between two colors
800
- *
801
- * @param color1 first color
802
- * @param color2 second color
803
- *
804
- * Note: This function is inefficient. Use colorDistanceSquared instead if possible.
805
- *
806
- * @public exported from `@promptbook/color`
807
- */
808
- /**
809
- * Calculates distance between two colors without square root
810
- *
811
- * @param color1 first color
812
- * @param color2 second color
813
- *
814
- * @public exported from `@promptbook/color`
815
- */
816
- function colorDistanceSquared(color1, color2) {
817
- const rmean = (color1.red + color2.red) / 2;
818
- const r = color1.red - color2.red;
819
- const g = color1.green - color2.green;
820
- const b = color1.blue - color2.blue;
821
- const weightR = 2 + rmean / 256;
822
- const weightG = 4.0;
823
- const weightB = 2 + (255 - rmean) / 256;
824
- const distance = weightR * r * r + weightG * g * g + weightB * b * b;
825
- return distance;
826
- }
827
-
828
- /**
829
- * Makes color transformer which finds the nearest color from the given list
830
- *
831
- * @param colors array of colors to choose from
832
- *
833
- * @public exported from `@promptbook/color`
834
- */
835
- function nearest(...colors) {
836
- return (color) => {
837
- const distances = colors.map((c) => colorDistanceSquared(c, color));
838
- const minDistance = Math.min(...distances);
839
- const minIndex = distances.indexOf(minDistance);
840
- const nearestColor = colors[minIndex];
841
- return nearestColor;
842
- };
843
- }
844
-
845
- /**
846
- * Color transformer which returns the negative color
847
- *
848
- * @public exported from `@promptbook/color`
849
- */
850
- function negative(color) {
851
- const r = 255 - color.red;
852
- const g = 255 - color.green;
853
- const b = 255 - color.blue;
854
- return Color.fromValues(r, g, b, color.alpha);
855
- }
856
-
857
- /**
858
- * Makes color transformer which finds the furthest color from the given list
859
- *
860
- * @param colors array of colors to choose from
861
- *
862
- * @public exported from `@promptbook/color`
863
- */
864
- function furthest(...colors) {
865
- return (color) => {
866
- const furthestColor = negative(nearest(...colors.map(negative))(color));
867
- return furthestColor;
868
- };
869
- }
870
- /**
871
- * Makes color transformer which finds the best text color (black or white) for the given background color
872
- *
873
- * @public exported from `@promptbook/color`
874
- */
875
- furthest(Color.get('white'), Color.from('black'));
876
-
877
- /**
878
- * Makes color transformer which returns a grayscale version of the color
879
- *
880
- * @param amount from 0 to 1
881
- *
882
- * @public exported from `@promptbook/color`
883
- */
884
- function grayscale(amount) {
885
- return ({ red, green, blue, alpha }) => {
886
- const average = (red + green + blue) / 3;
887
- red = Math.round(average * amount + red * (1 - amount));
888
- green = Math.round(average * amount + green * (1 - amount));
889
- blue = Math.round(average * amount + blue * (1 - amount));
890
- return Color.fromValues(red, green, blue, alpha);
891
- };
892
- }
893
-
894
865
  /**
895
866
  * Makes color transformer which saturate the given color
896
867
  *
@@ -939,16 +910,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
939
910
  *
940
911
  * @public exported from `@promptbook/core`
941
912
  */
942
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
943
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
913
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
914
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
944
915
  /**
945
- * Dark color of the Promptbook
916
+ * Colors for syntax highlighting in the `<BookEditor/>`
917
+ *
918
+ * TODO: [🗽] Unite branding and make single place for it
919
+ *
920
+ * @public exported from `@promptbook/core`
921
+ */
922
+ ({
923
+ TITLE: Color.fromHex('#244EA8'),
924
+ LINE: Color.fromHex('#eeeeee'),
925
+ SEPARATOR: Color.fromHex('#cccccc'),
926
+ COMMITMENT: Color.fromHex('#DA0F78'),
927
+ PARAMETER: Color.fromHex('#8e44ad'),
928
+ });
929
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
930
+ /**
931
+ * Chat color of the Promptbook (in chat)
946
932
  *
947
933
  * TODO: [🗽] Unite branding and make single place for it
948
934
  *
949
935
  * @public exported from `@promptbook/core`
950
936
  */
951
937
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
938
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
952
939
  /**
953
940
  * Color of the user (in chat)
954
941
  *
@@ -1059,7 +1046,7 @@ function $deepFreeze(objectValue) {
1059
1046
  function getErrorReportUrl(error) {
1060
1047
  const report = {
1061
1048
  title: `🐜 Error report from ${NAME}`,
1062
- body: spaceTrim((block) => `
1049
+ body: spaceTrim$2((block) => `
1063
1050
 
1064
1051
 
1065
1052
  \`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
@@ -1217,7 +1204,7 @@ function checkSerializableAsJson(options) {
1217
1204
  }
1218
1205
  else if (typeof value === 'object') {
1219
1206
  if (value instanceof Date) {
1220
- throw new UnexpectedError(spaceTrim((block) => `
1207
+ throw new UnexpectedError(spaceTrim$2((block) => `
1221
1208
  \`${name}\` is Date
1222
1209
 
1223
1210
  Use \`string_date_iso8601\` instead
@@ -1236,7 +1223,7 @@ function checkSerializableAsJson(options) {
1236
1223
  throw new UnexpectedError(`${name} is RegExp`);
1237
1224
  }
1238
1225
  else if (value instanceof Error) {
1239
- throw new UnexpectedError(spaceTrim((block) => `
1226
+ throw new UnexpectedError(spaceTrim$2((block) => `
1240
1227
  \`${name}\` is unserialized Error
1241
1228
 
1242
1229
  Use function \`serializeError\`
@@ -1259,7 +1246,7 @@ function checkSerializableAsJson(options) {
1259
1246
  }
1260
1247
  catch (error) {
1261
1248
  assertsError(error);
1262
- throw new UnexpectedError(spaceTrim((block) => `
1249
+ throw new UnexpectedError(spaceTrim$2((block) => `
1263
1250
  \`${name}\` is not serializable
1264
1251
 
1265
1252
  ${block(error.stack || error.message)}
@@ -1291,7 +1278,7 @@ function checkSerializableAsJson(options) {
1291
1278
  }
1292
1279
  }
1293
1280
  else {
1294
- throw new UnexpectedError(spaceTrim((block) => `
1281
+ throw new UnexpectedError(spaceTrim$2((block) => `
1295
1282
  \`${name}\` is unknown type
1296
1283
 
1297
1284
  Additional message for \`${name}\`:
@@ -1321,7 +1308,7 @@ function deepClone(objectValue) {
1321
1308
  TODO: [🧠] Is there a better implementation?
1322
1309
  > const propertyNames = Object.getOwnPropertyNames(objectValue);
1323
1310
  > for (const propertyName of propertyNames) {
1324
- > const value = (objectValue as really_any)[propertyName];
1311
+ > const value = (objectValue as chococake)[propertyName];
1325
1312
  > if (value && typeof value === 'object') {
1326
1313
  > deepClone(value);
1327
1314
  > }
@@ -1394,6 +1381,8 @@ exportJson({
1394
1381
  /**
1395
1382
  * Normalizes a given text to camelCase format.
1396
1383
  *
1384
+ * Note: [🔂] This function is idempotent.
1385
+ *
1397
1386
  * @param text The text to be normalized.
1398
1387
  * @param _isFirstLetterCapital Whether the first letter should be capitalized.
1399
1388
  * @returns The camelCase formatted string.
@@ -1709,6 +1698,8 @@ function removeDiacritics(input) {
1709
1698
  /**
1710
1699
  * Converts a given text to kebab-case format.
1711
1700
  *
1701
+ * Note: [🔂] This function is idempotent.
1702
+ *
1712
1703
  * @param text The text to be converted.
1713
1704
  * @returns The kebab-case formatted string.
1714
1705
  * @example 'hello-world'
@@ -1794,6 +1785,7 @@ class ParseError extends Error {
1794
1785
  /**
1795
1786
  * Generates random token
1796
1787
  *
1788
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
1797
1789
  * Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
1798
1790
  *
1799
1791
  * @private internal helper function
@@ -1803,6 +1795,7 @@ function $randomToken(randomness) {
1803
1795
  return randomBytes(randomness).toString('hex');
1804
1796
  }
1805
1797
  /**
1798
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
1806
1799
  * TODO: Maybe use nanoid instead https://github.com/ai/nanoid
1807
1800
  */
1808
1801
 
@@ -2136,6 +2129,9 @@ function nameToUriParts(name) {
2136
2129
  }
2137
2130
 
2138
2131
  /**
2132
+ * Normalizes a given text to PascalCase format.
2133
+ *
2134
+ * Note: [🔂] This function is idempotent.
2139
2135
  *
2140
2136
  * @param text @public exported from `@promptbook/utils`
2141
2137
  * @returns
@@ -2353,7 +2349,7 @@ function extractAllBlocksFromMarkdown(markdown) {
2353
2349
  function extractOneBlockFromMarkdown(markdown) {
2354
2350
  const codeBlocks = extractAllBlocksFromMarkdown(markdown);
2355
2351
  if (codeBlocks.length !== 1) {
2356
- throw new ParseError(spaceTrim((block) => `
2352
+ throw new ParseError(spaceTrim$2((block) => `
2357
2353
  There should be exactly 1 code block in task section, found ${codeBlocks.length} code blocks
2358
2354
 
2359
2355
  ${block(codeBlocks.map((block, i) => `Block ${i + 1}:\n${block.content}`).join('\n\n\n'))}
@@ -2474,8 +2470,8 @@ class JavascriptEvalExecutionTools {
2474
2470
  }
2475
2471
  // Note: [💎]
2476
2472
  // Note: Using direct eval, following variables are in same scope as eval call so they are accessible from inside the evaluated script:
2477
- const spaceTrim$1 = (_) => spaceTrim(_);
2478
- $preserve(spaceTrim$1);
2473
+ const spaceTrim = (_) => spaceTrim$2(_);
2474
+ $preserve(spaceTrim);
2479
2475
  const removeQuotes$1 = removeQuotes;
2480
2476
  $preserve(removeQuotes$1);
2481
2477
  const unwrapResult$1 = unwrapResult;
@@ -2528,7 +2524,7 @@ class JavascriptEvalExecutionTools {
2528
2524
  // TODO: DRY [🍯]
2529
2525
  const buildinFunctions = {
2530
2526
  // TODO: [🍯] DRY all these functions across the file
2531
- spaceTrim: spaceTrim$1,
2527
+ spaceTrim,
2532
2528
  removeQuotes: removeQuotes$1,
2533
2529
  unwrapResult: unwrapResult$1,
2534
2530
  trimEndOfCodeBlock: trimEndOfCodeBlock$1,
@@ -2565,7 +2561,7 @@ class JavascriptEvalExecutionTools {
2565
2561
  .join('\n');
2566
2562
  // script = templateParameters(script, parameters);
2567
2563
  // <- TODO: [🧠][🥳] Should be this is one of two variants how to use parameters in script
2568
- const statementToEvaluate = spaceTrim((block) => `
2564
+ const statementToEvaluate = spaceTrim$2((block) => `
2569
2565
 
2570
2566
  // Build-in functions:
2571
2567
  ${block(buildinFunctionsStatement)}
@@ -2580,7 +2576,7 @@ class JavascriptEvalExecutionTools {
2580
2576
  (()=>{ ${script} })()
2581
2577
  `);
2582
2578
  if (this.options.isVerbose) {
2583
- console.info(spaceTrim((block) => `
2579
+ console.info(spaceTrim$2((block) => `
2584
2580
  🚀 Evaluating ${scriptLanguage} script:
2585
2581
 
2586
2582
  ${block(statementToEvaluate)}`));
@@ -2602,7 +2598,7 @@ class JavascriptEvalExecutionTools {
2602
2598
  To: [PipelineExecutionError: Parameter `{thing}` is not defined],
2603
2599
  */
2604
2600
  if (!statementToEvaluate.includes(undefinedName + '(')) {
2605
- throw new PipelineExecutionError(spaceTrim((block) => `
2601
+ throw new PipelineExecutionError(spaceTrim$2((block) => `
2606
2602
 
2607
2603
  Parameter \`{${undefinedName}}\` is not defined
2608
2604
 
@@ -2624,7 +2620,7 @@ class JavascriptEvalExecutionTools {
2624
2620
  `));
2625
2621
  }
2626
2622
  else {
2627
- throw new PipelineExecutionError(spaceTrim((block) => `
2623
+ throw new PipelineExecutionError(spaceTrim$2((block) => `
2628
2624
  Function ${undefinedName}() is not defined
2629
2625
 
2630
2626
  - Make sure that the function is one of built-in functions
@@ -2674,7 +2670,7 @@ const reverse = (str) => str.split('').reverse().join('');
2674
2670
  * @public exported from `@promptbook/javascript`
2675
2671
  */
2676
2672
  const POSTPROCESSING_FUNCTIONS = {
2677
- spaceTrim,
2673
+ spaceTrim: spaceTrim$2,
2678
2674
  removeQuotes,
2679
2675
  unwrapResult,
2680
2676
  trimEndOfCodeBlock,