@promptbook/google 0.103.0-8 → 0.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +66 -46
  2. package/esm/index.es.js +134 -139
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/books/index.d.ts +0 -81
  5. package/esm/typings/servers.d.ts +9 -7
  6. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  7. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  8. package/esm/typings/src/_packages/components.index.d.ts +22 -8
  9. package/esm/typings/src/_packages/core.index.d.ts +58 -18
  10. package/esm/typings/src/_packages/node.index.d.ts +2 -2
  11. package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
  12. package/esm/typings/src/_packages/types.index.d.ts +70 -8
  13. package/esm/typings/src/_packages/utils.index.d.ts +6 -0
  14. package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
  15. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +20 -5
  16. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +17 -1
  17. package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
  18. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
  19. package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +3 -3
  20. package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
  21. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
  22. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +18 -0
  23. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
  24. package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +3 -0
  25. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +6 -1
  26. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +85 -14
  27. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +18 -0
  28. package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  29. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +17 -0
  30. package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
  31. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +16 -0
  32. package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
  33. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
  34. package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
  35. package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
  36. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
  37. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
  38. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
  39. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +52 -0
  40. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +14 -0
  41. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  42. package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  43. package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  44. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
  45. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  46. package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
  47. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
  48. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  49. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  50. package/esm/typings/src/book-components/icons/CameraIcon.d.ts +11 -0
  51. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
  52. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  53. package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  54. package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  55. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  56. package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
  57. package/esm/typings/src/book-components/icons/SendIcon.d.ts +3 -0
  58. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  59. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  60. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  61. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  62. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  63. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  64. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  65. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  66. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  67. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  68. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  69. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  70. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  71. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
  72. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
  73. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
  74. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
  75. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  76. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  77. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  78. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  79. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  80. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
  81. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  82. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  83. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  84. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  85. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
  86. package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +39 -0
  87. package/esm/typings/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
  88. package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
  89. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
  90. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
  91. package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
  92. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
  93. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
  94. package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
  95. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
  96. package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
  97. package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
  98. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
  99. package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
  100. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
  101. package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
  102. package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
  103. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
  104. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
  105. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
  106. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
  107. package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
  108. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
  109. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
  110. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
  111. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
  112. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
  113. package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
  114. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +42 -0
  115. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
  116. package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
  117. package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
  118. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +14 -2
  119. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
  120. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
  121. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  122. package/esm/typings/src/commitments/index.d.ts +93 -0
  123. package/esm/typings/src/config.d.ts +24 -3
  124. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
  125. package/esm/typings/src/errors/0-index.d.ts +6 -0
  126. package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
  127. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  128. package/esm/typings/src/errors/WrappedError.d.ts +2 -2
  129. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  130. package/esm/typings/src/execution/Executables.d.ts +3 -0
  131. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  132. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  133. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  134. package/esm/typings/src/execution/LlmExecutionTools.d.ts +26 -2
  135. package/esm/typings/src/execution/PromptResult.d.ts +7 -1
  136. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  137. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  138. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  139. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  140. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  141. package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
  142. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  143. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
  144. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  145. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  146. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  147. package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
  148. package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
  149. package/esm/typings/src/llm-providers/agent/Agent.d.ts +72 -0
  150. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
  151. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
  152. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
  153. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
  154. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  155. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  156. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  157. package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
  158. package/esm/typings/src/llm-providers/ollama/OllamaExecutionTools.d.ts +4 -0
  159. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
  160. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  161. package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +13 -1
  162. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +4 -0
  163. package/esm/typings/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +6 -6
  164. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  165. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  166. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  167. package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
  168. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  169. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  170. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
  171. package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
  172. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  173. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
  174. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  175. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  176. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  177. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  178. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  179. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  180. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  181. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  182. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  183. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  184. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  185. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  186. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  187. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  188. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  189. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  190. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
  191. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  192. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  193. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
  194. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  195. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
  196. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  197. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  198. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  199. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  200. package/esm/typings/src/types/ModelRequirements.d.ts +13 -1
  201. package/esm/typings/src/types/ModelVariant.d.ts +1 -1
  202. package/esm/typings/src/types/Prompt.d.ts +13 -1
  203. package/esm/typings/src/types/Updatable.d.ts +19 -0
  204. package/esm/typings/src/types/typeAliases.d.ts +38 -2
  205. package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
  206. package/esm/typings/src/utils/color/Color.d.ts +16 -1
  207. package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
  208. package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
  209. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  210. package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
  211. package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
  212. package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
  213. package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
  214. package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
  215. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  216. package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
  217. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  218. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  219. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  220. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  221. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  222. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  223. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
  224. package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
  225. package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
  226. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  227. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  228. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  229. package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
  230. package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
  231. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  232. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  233. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  234. package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
  235. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  236. package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
  237. package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
  238. package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
  239. package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
  240. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +31 -0
  241. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
  242. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
  243. package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
  244. package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
  245. package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
  246. package/esm/typings/src/utils/random/CzechNamePool.d.ts +7 -0
  247. package/esm/typings/src/utils/random/EnglishNamePool.d.ts +7 -0
  248. package/esm/typings/src/utils/random/NamePool.d.ts +17 -0
  249. package/esm/typings/src/utils/random/getNamePool.d.ts +10 -0
  250. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  251. package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
  252. package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
  253. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
  254. package/esm/typings/src/version.d.ts +1 -1
  255. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  256. package/package.json +6 -6
  257. package/umd/index.umd.js +133 -138
  258. package/umd/index.umd.js.map +1 -1
  259. package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
  260. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
  261. package/esm/typings/src/book-components/BookEditor/BookEditorWrapper.d.ts +0 -9
  262. package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
  263. package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
  264. package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
  265. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
  266. /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
  267. /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
  268. /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
  269. /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
  270. /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
  271. /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
  272. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
  273. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
package/esm/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import colors from 'colors';
2
- import spaceTrim, { spaceTrim as spaceTrim$1 } from 'spacetrim';
2
+ import spaceTrim$2, { spaceTrim as spaceTrim$1 } from 'spacetrim';
3
3
  import { randomBytes } from 'crypto';
4
4
 
5
5
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
@@ -9,14 +9,14 @@ import { randomBytes } from 'crypto';
9
9
  * @generated
10
10
  * @see https://github.com/webgptorg/book
11
11
  */
12
- const BOOK_LANGUAGE_VERSION = '1.0.0';
12
+ const BOOK_LANGUAGE_VERSION = '2.0.0';
13
13
  /**
14
14
  * The version of the Promptbook engine
15
15
  *
16
16
  * @generated
17
17
  * @see https://github.com/webgptorg/promptbook
18
18
  */
19
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-8';
19
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0';
20
20
  /**
21
21
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
22
22
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -43,6 +43,7 @@ const $isRunningInJest = new Function(`
43
43
  /**
44
44
  * Generates random token
45
45
  *
46
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
46
47
  * Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
47
48
  *
48
49
  * @private internal helper function
@@ -52,6 +53,7 @@ function $randomToken(randomness) {
52
53
  return randomBytes(randomness).toString('hex');
53
54
  }
54
55
  /**
56
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
55
57
  * TODO: Maybe use nanoid instead https://github.com/ai/nanoid
56
58
  */
57
59
 
@@ -118,10 +120,13 @@ const LINES_PER_STANDARD_PAGE = 44;
118
120
  * @public exported from `@promptbook/utils`
119
121
  */
120
122
  function countLines(text) {
123
+ if (text === '') {
124
+ return 0;
125
+ }
121
126
  text = text.replace('\r\n', '\n');
122
127
  text = text.replace('\r', '\n');
123
128
  const lines = text.split('\n');
124
- return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
129
+ return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
125
130
  }
126
131
  /**
127
132
  * TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
@@ -602,6 +607,17 @@ function $getCurrentDate() {
602
607
  return new Date().toISOString();
603
608
  }
604
609
 
610
+ /**
611
+ * Trims string from all 4 sides
612
+ *
613
+ * Note: This is a re-exported function from the `spacetrim` package which is
614
+ * Developed by same author @hejny as this package
615
+ *
616
+ * @public exported from `@promptbook/utils`
617
+ * @see https://github.com/hejny/spacetrim#usage
618
+ */
619
+ const spaceTrim = spaceTrim$1;
620
+
605
621
  /**
606
622
  * @private util of `@promptbook/color`
607
623
  * @de
@@ -650,6 +666,7 @@ function take(initialValue) {
650
666
  * @public exported from `@promptbook/color`
651
667
  */
652
668
  const CSS_COLORS = {
669
+ promptbook: '#79EAFD',
653
670
  transparent: 'rgba(0,0,0,0)',
654
671
  aliceblue: '#f0f8ff',
655
672
  antiquewhite: '#faebd7',
@@ -831,9 +848,6 @@ function checkChannelValue(channelName, value) {
831
848
  throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
832
849
  }
833
850
  }
834
- /**
835
- * TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
836
- */
837
851
 
838
852
  /**
839
853
  * Color object represents an RGB color with alpha channel
@@ -853,21 +867,61 @@ class Color {
853
867
  * @param color
854
868
  * @returns Color object
855
869
  */
856
- static from(color) {
857
- if (color instanceof Color) {
870
+ static from(color, _isSingleValue = false) {
871
+ if (color === '') {
872
+ throw new Error(`Can not create color from empty string`);
873
+ }
874
+ else if (color instanceof Color) {
858
875
  return take(color);
859
876
  }
860
877
  else if (Color.isColor(color)) {
861
878
  return take(color);
862
879
  }
863
880
  else if (typeof color === 'string') {
864
- return Color.fromString(color);
881
+ try {
882
+ return Color.fromString(color);
883
+ }
884
+ catch (error) {
885
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
886
+ if (_isSingleValue) {
887
+ throw error;
888
+ }
889
+ const parts = color.split(/[\s+,;|]/);
890
+ if (parts.length > 0) {
891
+ return Color.from(parts[0].trim(), true);
892
+ }
893
+ else {
894
+ throw new Error(`Can not create color from given string "${color}"`);
895
+ }
896
+ }
865
897
  }
866
898
  else {
867
899
  console.error({ color });
868
900
  throw new Error(`Can not create color from given object`);
869
901
  }
870
902
  }
903
+ /**
904
+ * Creates a new Color instance from miscellaneous formats
905
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
906
+ *
907
+ * @param color
908
+ * @returns Color object
909
+ */
910
+ static fromSafe(color) {
911
+ try {
912
+ return Color.from(color);
913
+ }
914
+ catch (error) {
915
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
916
+ console.warn(spaceTrim((block) => `
917
+ Color.fromSafe error:
918
+ ${block(error.message)}
919
+
920
+ Returning default PROMPTBOOK_COLOR.
921
+ `));
922
+ return Color.fromString('promptbook');
923
+ }
924
+ }
871
925
  /**
872
926
  * Creates a new Color instance from miscellaneous string formats
873
927
  *
@@ -935,6 +989,9 @@ class Color {
935
989
  if (hex.length === 3) {
936
990
  return Color.fromHex3(hex);
937
991
  }
992
+ if (hex.length === 4) {
993
+ return Color.fromHex4(hex);
994
+ }
938
995
  if (hex.length === 6) {
939
996
  return Color.fromHex6(hex);
940
997
  }
@@ -955,6 +1012,19 @@ class Color {
955
1012
  const b = parseInt(hex.substr(2, 1), 16) * 16;
956
1013
  return take(new Color(r, g, b));
957
1014
  }
1015
+ /**
1016
+ * Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
1017
+ *
1018
+ * @param color in hex for example `09df`
1019
+ * @returns Color object
1020
+ */
1021
+ static fromHex4(hex) {
1022
+ const r = parseInt(hex.substr(0, 1), 16) * 16;
1023
+ const g = parseInt(hex.substr(1, 1), 16) * 16;
1024
+ const b = parseInt(hex.substr(2, 1), 16) * 16;
1025
+ const a = parseInt(hex.substr(3, 1), 16) * 16;
1026
+ return take(new Color(r, g, b, a));
1027
+ }
958
1028
  /**
959
1029
  * Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
960
1030
  *
@@ -1145,7 +1215,8 @@ class Color {
1145
1215
  * @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
1146
1216
  */
1147
1217
  static isHexColorString(value) {
1148
- return typeof value === 'string' && /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value);
1218
+ return (typeof value === 'string' &&
1219
+ /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
1149
1220
  }
1150
1221
  /**
1151
1222
  * Creates new Color object
@@ -1260,6 +1331,23 @@ class Color {
1260
1331
  * TODO: Maybe connect with textures
1261
1332
  */
1262
1333
 
1334
+ /**
1335
+ * Makes color transformer which returns a grayscale version of the color
1336
+ *
1337
+ * @param amount from 0 to 1
1338
+ *
1339
+ * @public exported from `@promptbook/color`
1340
+ */
1341
+ function grayscale(amount) {
1342
+ return ({ red, green, blue, alpha }) => {
1343
+ const average = (red + green + blue) / 3;
1344
+ red = Math.round(average * amount + red * (1 - amount));
1345
+ green = Math.round(average * amount + green * (1 - amount));
1346
+ blue = Math.round(average * amount + blue * (1 - amount));
1347
+ return Color.fromValues(red, green, blue, alpha);
1348
+ };
1349
+ }
1350
+
1263
1351
  /**
1264
1352
  * Converts HSL values to RGB values
1265
1353
  *
@@ -1375,102 +1463,6 @@ function lighten(amount) {
1375
1463
  * TODO: Maybe implement by mix+hsl
1376
1464
  */
1377
1465
 
1378
- /**
1379
- * Calculates distance between two colors
1380
- *
1381
- * @param color1 first color
1382
- * @param color2 second color
1383
- *
1384
- * Note: This function is inefficient. Use colorDistanceSquared instead if possible.
1385
- *
1386
- * @public exported from `@promptbook/color`
1387
- */
1388
- /**
1389
- * Calculates distance between two colors without square root
1390
- *
1391
- * @param color1 first color
1392
- * @param color2 second color
1393
- *
1394
- * @public exported from `@promptbook/color`
1395
- */
1396
- function colorDistanceSquared(color1, color2) {
1397
- const rmean = (color1.red + color2.red) / 2;
1398
- const r = color1.red - color2.red;
1399
- const g = color1.green - color2.green;
1400
- const b = color1.blue - color2.blue;
1401
- const weightR = 2 + rmean / 256;
1402
- const weightG = 4.0;
1403
- const weightB = 2 + (255 - rmean) / 256;
1404
- const distance = weightR * r * r + weightG * g * g + weightB * b * b;
1405
- return distance;
1406
- }
1407
-
1408
- /**
1409
- * Makes color transformer which finds the nearest color from the given list
1410
- *
1411
- * @param colors array of colors to choose from
1412
- *
1413
- * @public exported from `@promptbook/color`
1414
- */
1415
- function nearest(...colors) {
1416
- return (color) => {
1417
- const distances = colors.map((c) => colorDistanceSquared(c, color));
1418
- const minDistance = Math.min(...distances);
1419
- const minIndex = distances.indexOf(minDistance);
1420
- const nearestColor = colors[minIndex];
1421
- return nearestColor;
1422
- };
1423
- }
1424
-
1425
- /**
1426
- * Color transformer which returns the negative color
1427
- *
1428
- * @public exported from `@promptbook/color`
1429
- */
1430
- function negative(color) {
1431
- const r = 255 - color.red;
1432
- const g = 255 - color.green;
1433
- const b = 255 - color.blue;
1434
- return Color.fromValues(r, g, b, color.alpha);
1435
- }
1436
-
1437
- /**
1438
- * Makes color transformer which finds the furthest color from the given list
1439
- *
1440
- * @param colors array of colors to choose from
1441
- *
1442
- * @public exported from `@promptbook/color`
1443
- */
1444
- function furthest(...colors) {
1445
- return (color) => {
1446
- const furthestColor = negative(nearest(...colors.map(negative))(color));
1447
- return furthestColor;
1448
- };
1449
- }
1450
- /**
1451
- * Makes color transformer which finds the best text color (black or white) for the given background color
1452
- *
1453
- * @public exported from `@promptbook/color`
1454
- */
1455
- furthest(Color.get('white'), Color.from('black'));
1456
-
1457
- /**
1458
- * Makes color transformer which returns a grayscale version of the color
1459
- *
1460
- * @param amount from 0 to 1
1461
- *
1462
- * @public exported from `@promptbook/color`
1463
- */
1464
- function grayscale(amount) {
1465
- return ({ red, green, blue, alpha }) => {
1466
- const average = (red + green + blue) / 3;
1467
- red = Math.round(average * amount + red * (1 - amount));
1468
- green = Math.round(average * amount + green * (1 - amount));
1469
- blue = Math.round(average * amount + blue * (1 - amount));
1470
- return Color.fromValues(red, green, blue, alpha);
1471
- };
1472
- }
1473
-
1474
1466
  /**
1475
1467
  * Makes color transformer which saturate the given color
1476
1468
  *
@@ -1519,16 +1511,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
1519
1511
  *
1520
1512
  * @public exported from `@promptbook/core`
1521
1513
  */
1522
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
1523
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
1514
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
1515
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1524
1516
  /**
1525
- * Dark color of the Promptbook
1517
+ * Colors for syntax highlighting in the `<BookEditor/>`
1518
+ *
1519
+ * TODO: [🗽] Unite branding and make single place for it
1520
+ *
1521
+ * @public exported from `@promptbook/core`
1522
+ */
1523
+ ({
1524
+ TITLE: Color.fromHex('#244EA8'),
1525
+ LINE: Color.fromHex('#eeeeee'),
1526
+ SEPARATOR: Color.fromHex('#cccccc'),
1527
+ COMMITMENT: Color.fromHex('#DA0F78'),
1528
+ PARAMETER: Color.fromHex('#8e44ad'),
1529
+ });
1530
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1531
+ /**
1532
+ * Chat color of the Promptbook (in chat)
1526
1533
  *
1527
1534
  * TODO: [🗽] Unite branding and make single place for it
1528
1535
  *
1529
1536
  * @public exported from `@promptbook/core`
1530
1537
  */
1531
1538
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
1539
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
1532
1540
  /**
1533
1541
  * Color of the user (in chat)
1534
1542
  *
@@ -1612,7 +1620,7 @@ function orderJson(options) {
1612
1620
  function getErrorReportUrl(error) {
1613
1621
  const report = {
1614
1622
  title: `🐜 Error report from ${NAME}`,
1615
- body: spaceTrim((block) => `
1623
+ body: spaceTrim$2((block) => `
1616
1624
 
1617
1625
 
1618
1626
  \`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
@@ -1770,7 +1778,7 @@ function checkSerializableAsJson(options) {
1770
1778
  }
1771
1779
  else if (typeof value === 'object') {
1772
1780
  if (value instanceof Date) {
1773
- throw new UnexpectedError(spaceTrim((block) => `
1781
+ throw new UnexpectedError(spaceTrim$2((block) => `
1774
1782
  \`${name}\` is Date
1775
1783
 
1776
1784
  Use \`string_date_iso8601\` instead
@@ -1789,7 +1797,7 @@ function checkSerializableAsJson(options) {
1789
1797
  throw new UnexpectedError(`${name} is RegExp`);
1790
1798
  }
1791
1799
  else if (value instanceof Error) {
1792
- throw new UnexpectedError(spaceTrim((block) => `
1800
+ throw new UnexpectedError(spaceTrim$2((block) => `
1793
1801
  \`${name}\` is unserialized Error
1794
1802
 
1795
1803
  Use function \`serializeError\`
@@ -1812,7 +1820,7 @@ function checkSerializableAsJson(options) {
1812
1820
  }
1813
1821
  catch (error) {
1814
1822
  assertsError(error);
1815
- throw new UnexpectedError(spaceTrim((block) => `
1823
+ throw new UnexpectedError(spaceTrim$2((block) => `
1816
1824
  \`${name}\` is not serializable
1817
1825
 
1818
1826
  ${block(error.stack || error.message)}
@@ -1844,7 +1852,7 @@ function checkSerializableAsJson(options) {
1844
1852
  }
1845
1853
  }
1846
1854
  else {
1847
- throw new UnexpectedError(spaceTrim((block) => `
1855
+ throw new UnexpectedError(spaceTrim$2((block) => `
1848
1856
  \`${name}\` is unknown type
1849
1857
 
1850
1858
  Additional message for \`${name}\`:
@@ -1874,7 +1882,7 @@ function deepClone(objectValue) {
1874
1882
  TODO: [🧠] Is there a better implementation?
1875
1883
  > const propertyNames = Object.getOwnPropertyNames(objectValue);
1876
1884
  > for (const propertyName of propertyNames) {
1877
- > const value = (objectValue as really_any)[propertyName];
1885
+ > const value = (objectValue as chococake)[propertyName];
1878
1886
  > if (value && typeof value === 'object') {
1879
1887
  > deepClone(value);
1880
1888
  > }
@@ -2208,7 +2216,7 @@ function createExecutionToolsFromVercelProvider(options) {
2208
2216
  const modelName = modelRequirements.modelName ||
2209
2217
  ((_a = availableModels.find(({ modelVariant }) => modelVariant === 'CHAT')) === null || _a === void 0 ? void 0 : _a.modelName);
2210
2218
  if (!modelName) {
2211
- throw new PipelineExecutionError(spaceTrim(`
2219
+ throw new PipelineExecutionError(spaceTrim$2(`
2212
2220
  Can not determine which model to use.
2213
2221
 
2214
2222
  You need to provide at least one of:
@@ -2226,7 +2234,7 @@ function createExecutionToolsFromVercelProvider(options) {
2226
2234
  let promptMessages;
2227
2235
  if ('thread' in prompt && Array.isArray(prompt.thread)) {
2228
2236
  promptMessages = prompt.thread.map((msg) => ({
2229
- role: msg.role === 'assistant' ? 'assistant' : (msg.role === 'system' ? 'system' : 'user'),
2237
+ role: msg.role === 'assistant' ? 'assistant' : msg.role === 'system' ? 'system' : 'user',
2230
2238
  content: [
2231
2239
  {
2232
2240
  type: 'text',
@@ -2331,7 +2339,7 @@ function pricing(value) {
2331
2339
  /**
2332
2340
  * List of available Google models with descriptions
2333
2341
  *
2334
- * Note: Synced with official API docs at 2025-08-20
2342
+ * Note: Synced with official API docs at 2025-11-19
2335
2343
  *
2336
2344
  * @see https://ai.google.dev/models/gemini
2337
2345
  * @public exported from `@promptbook/google`
@@ -2339,6 +2347,13 @@ function pricing(value) {
2339
2347
  const GOOGLE_MODELS = exportJson({
2340
2348
  name: 'GOOGLE_MODELS',
2341
2349
  value: [
2350
+ {
2351
+ modelVariant: 'CHAT',
2352
+ modelTitle: 'Gemini 3 Pro',
2353
+ modelName: 'gemini-3-pro-preview',
2354
+ modelDescription: 'The best model in the world for multimodal understanding, and our most powerful agentic and vibe-coding model yet, delivering richer visuals and deeper interactivity, all built on a foundation of state-of-the-art reasoning.',
2355
+ // TODO: [🧠] Add pricing information for Gemini 3 Pro
2356
+ },
2342
2357
  {
2343
2358
  modelVariant: 'CHAT',
2344
2359
  modelTitle: 'Gemini 2.5 Pro',
@@ -2389,26 +2404,6 @@ const GOOGLE_MODELS = exportJson({
2389
2404
  output: pricing(`$0.45 / 1M tokens`),
2390
2405
  },
2391
2406
  },
2392
- {
2393
- modelVariant: 'CHAT',
2394
- modelTitle: 'Gemini 2.0 Flash',
2395
- modelName: 'gemini-2.0-flash',
2396
- modelDescription: 'Fast, efficient model with 128K context window optimized for rapid response times. Balances performance and cost with 2x lower latency than Pro models while maintaining strong capabilities in text generation, code completion, and logical reasoning. Excellent for interactive applications, chatbots, and services requiring quick responses with good quality.',
2397
- pricing: {
2398
- prompt: pricing(`$0.35 / 1M tokens`),
2399
- output: pricing(`$1.05 / 1M tokens`),
2400
- },
2401
- },
2402
- {
2403
- modelVariant: 'CHAT',
2404
- modelTitle: 'Gemini 2.0 Flash Lite',
2405
- modelName: 'gemini-2.0-flash-lite',
2406
- modelDescription: 'Streamlined version of Gemini 2.0 Flash with 64K context window, designed for extremely low-latency applications. Features 40% smaller model size and 3x faster inference while retaining core capabilities for text and simple reasoning tasks. Perfect for mobile applications, edge deployments, and high-volume services with strict latency requirements.',
2407
- pricing: {
2408
- prompt: pricing(`$0.20 / 1M tokens`),
2409
- output: pricing(`$0.60 / 1M tokens`),
2410
- },
2411
- },
2412
2407
  {
2413
2408
  modelVariant: 'CHAT',
2414
2409
  modelTitle: 'Gemini 2.0 Flash Thinking',