@promptbook/google 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.
- package/README.md +66 -42
- package/esm/index.es.js +113 -136
- package/esm/index.es.js.map +1 -1
- package/esm/typings/books/index.d.ts +0 -81
- package/esm/typings/servers.d.ts +9 -7
- package/esm/typings/src/_packages/browser.index.d.ts +6 -0
- package/esm/typings/src/_packages/cli.index.d.ts +4 -0
- package/esm/typings/src/_packages/components.index.d.ts +20 -8
- package/esm/typings/src/_packages/core.index.d.ts +58 -18
- package/esm/typings/src/_packages/node.index.d.ts +2 -2
- package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
- package/esm/typings/src/_packages/types.index.d.ts +58 -8
- package/esm/typings/src/_packages/utils.index.d.ts +6 -0
- package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +19 -5
- package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +17 -1
- package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
- package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
- package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +3 -3
- package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
- package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
- package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +18 -0
- package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
- package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +3 -0
- package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +6 -1
- package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +77 -7
- package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +14 -0
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +10 -0
- package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
- package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
- package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
- package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +29 -0
- package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
- package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
- package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
- package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
- package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
- package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
- package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
- package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
- package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
- package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
- package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
- package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
- package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
- package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
- package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
- package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
- package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
- package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
- package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
- package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
- package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
- package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
- package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
- package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
- package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
- package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +35 -0
- package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
- package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
- package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
- package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
- package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
- package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
- package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
- package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
- package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
- package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +38 -0
- package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
- package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
- package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +8 -2
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
- package/esm/typings/src/commitments/index.d.ts +93 -0
- package/esm/typings/src/config.d.ts +24 -3
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
- package/esm/typings/src/errors/0-index.d.ts +6 -0
- package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
- package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
- package/esm/typings/src/errors/WrappedError.d.ts +2 -2
- package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
- package/esm/typings/src/execution/Executables.d.ts +3 -0
- package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
- package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
- package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
- package/esm/typings/src/execution/LlmExecutionTools.d.ts +21 -1
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
- package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
- package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
- package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
- package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
- package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
- package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +70 -0
- package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
- package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
- package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
- package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
- package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
- package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
- package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
- package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
- package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
- package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
- package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
- package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
- package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
- package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
- package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
- package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
- package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
- package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
- package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
- package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
- package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
- package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
- package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
- package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
- package/esm/typings/src/types/LlmCall.d.ts +20 -0
- package/esm/typings/src/types/Updatable.d.ts +19 -0
- package/esm/typings/src/types/typeAliases.d.ts +32 -2
- package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
- package/esm/typings/src/utils/color/Color.d.ts +15 -0
- package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
- package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
- package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
- package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
- package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
- package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
- package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
- package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
- package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
- package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
- package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
- package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
- package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
- package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
- package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
- package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
- package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
- package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
- package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
- package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
- package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
- package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
- package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
- package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
- package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
- package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
- package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +25 -0
- package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
- package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
- package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
- package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
- package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
- package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
- package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
- package/package.json +5 -5
- package/umd/index.umd.js +112 -135
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
- package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -11
- package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
- package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
- package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
- /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
- /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
- /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
- /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
- /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
- /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
|
-
[ Promptbook](https://badge.fury.io/js/promptbook.svg)](https://www.npmjs.com/package/promptbook)
|
|
13
|
+
[ Promptbook](https://packagequality.com/shield/promptbook.svg)](https://packagequality.com/#?package=promptbook)
|
|
14
14
|
[](https://snyk.io/test/github/webgptorg/promptbook)
|
|
15
15
|
[](https://github.com/webgptorg/promptbook/actions/workflows/test-books.yml)
|
|
16
16
|
[](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
|
-
-
|
|
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
|
|
|
@@ -55,9 +51,9 @@ npm install @promptbook/google
|
|
|
55
51
|
## 🧡 Usage
|
|
56
52
|
|
|
57
53
|
```typescript
|
|
58
|
-
import { createPipelineExecutor,
|
|
54
|
+
import { createPipelineExecutor, createPipelineCollectionFromDirectory } from '@promptbook/core';
|
|
59
55
|
import {
|
|
60
|
-
|
|
56
|
+
createPipelineCollectionFromDirectory,
|
|
61
57
|
$provideExecutionToolsForNode,
|
|
62
58
|
$provideFilesystemForNode,
|
|
63
59
|
$provideScrapersForNode,
|
|
@@ -85,7 +81,7 @@ const tools = {
|
|
|
85
81
|
};
|
|
86
82
|
|
|
87
83
|
// ▶ Create whole pipeline collection
|
|
88
|
-
const collection = await
|
|
84
|
+
const collection = await createPipelineCollectionFromDirectory('./books', tools);
|
|
89
85
|
|
|
90
86
|
// ▶ Get single Pipeline
|
|
91
87
|
const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.book`);
|
|
@@ -133,7 +129,7 @@ console.info(joke);
|
|
|
133
129
|
You can just use `$provideExecutionToolsForNode` function to create all required tools from environment variables like `ANTHROPIC_CLAUDE_API_KEY` and `OPENAI_API_KEY` automatically.
|
|
134
130
|
|
|
135
131
|
```typescript
|
|
136
|
-
import { createPipelineExecutor,
|
|
132
|
+
import { createPipelineExecutor, createPipelineCollectionFromDirectory } from '@promptbook/core';
|
|
137
133
|
import { JavascriptExecutionTools } from '@promptbook/javascript';
|
|
138
134
|
import { $provideExecutionToolsForNode } from '@promptbook/node';
|
|
139
135
|
import { $provideFilesystemForNode } from '@promptbook/node';
|
|
@@ -143,7 +139,7 @@ import { $provideFilesystemForNode } from '@promptbook/node';
|
|
|
143
139
|
const tools = await $provideExecutionToolsForNode();
|
|
144
140
|
|
|
145
141
|
// ▶ Create whole pipeline collection
|
|
146
|
-
const collection = await
|
|
142
|
+
const collection = await createPipelineCollectionFromDirectory('./books', tools);
|
|
147
143
|
|
|
148
144
|
// ▶ Get single Pipeline
|
|
149
145
|
const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.book`);
|
|
@@ -169,7 +165,7 @@ console.info(outputParameters);
|
|
|
169
165
|
You can use multiple LLM providers in one Promptbook execution. The best model will be chosen automatically according to the prompt and the model's capabilities.
|
|
170
166
|
|
|
171
167
|
```typescript
|
|
172
|
-
import { createPipelineExecutor,
|
|
168
|
+
import { createPipelineExecutor, createPipelineCollectionFromDirectory } from '@promptbook/core';
|
|
173
169
|
import { $provideExecutionToolsForNode } from '@promptbook/node';
|
|
174
170
|
import { $provideFilesystemForNode } from '@promptbook/node';
|
|
175
171
|
import { JavascriptExecutionTools } from '@promptbook/javascript';
|
|
@@ -211,7 +207,7 @@ const tools = {
|
|
|
211
207
|
};
|
|
212
208
|
|
|
213
209
|
// ▶ Create whole pipeline collection
|
|
214
|
-
const collection = await
|
|
210
|
+
const collection = await createPipelineCollectionFromDirectory('./books', tools);
|
|
215
211
|
|
|
216
212
|
// ▶ Get single Pipeline
|
|
217
213
|
const pipeline = await collection.getPipelineByUrl(`https://promptbook.studio/my-collection/write-article.book`);
|
|
@@ -261,11 +257,15 @@ The main challenge is to narrow it down, constrain it, set the proper **context,
|
|
|
261
257
|
|
|
262
258
|
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.
|
|
263
259
|
|
|
260
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
264
261
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
/>
|
|
262
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
263
|
+
<br/>
|
|
264
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
265
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
266
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
267
|
+
|
|
268
|
+
</td></tr></table>
|
|
269
269
|
|
|
270
270
|
<div style="page-break-after: always;"></div>
|
|
271
271
|
|
|
@@ -279,11 +279,15 @@ You can look at it as prompting (or writing a system message), but decorated by
|
|
|
279
279
|
|
|
280
280
|
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.
|
|
281
281
|
|
|
282
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
283
|
+
|
|
284
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
285
|
+
<br/>
|
|
286
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
287
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
288
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
282
289
|
|
|
283
|
-
|
|
284
|
-
alt="Paul Smith & Associés Book"
|
|
285
|
-
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"
|
|
286
|
-
/>
|
|
290
|
+
</td></tr></table>
|
|
287
291
|
|
|
288
292
|
#### `Knowledge` commitment
|
|
289
293
|
|
|
@@ -293,11 +297,18 @@ This can include domain-specific knowledge, company policies, or any other relev
|
|
|
293
297
|
|
|
294
298
|
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.
|
|
295
299
|
|
|
300
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
296
301
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
/>
|
|
302
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
303
|
+
<br/>
|
|
304
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
305
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
306
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
307
|
+
<br/>
|
|
308
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
309
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
310
|
+
|
|
311
|
+
</td></tr></table>
|
|
301
312
|
|
|
302
313
|
#### `Rule` commitment
|
|
303
314
|
|
|
@@ -305,21 +316,42 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This
|
|
|
305
316
|
|
|
306
317
|
Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
|
|
307
318
|
|
|
319
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
320
|
+
|
|
321
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
322
|
+
<br/>
|
|
323
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
324
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
325
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
326
|
+
<br/>
|
|
327
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
328
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
329
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
330
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
331
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
308
332
|
|
|
309
|
-
|
|
310
|
-
alt="Paul Smith & Associés Book"
|
|
311
|
-
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"
|
|
312
|
-
/>
|
|
333
|
+
</td></tr></table>
|
|
313
334
|
|
|
314
335
|
#### `Action` commitment
|
|
315
336
|
|
|
316
337
|
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.
|
|
317
338
|
|
|
339
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
318
340
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
/>
|
|
341
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
342
|
+
<br/>
|
|
343
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
344
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
345
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
346
|
+
<br/>
|
|
347
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
348
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
349
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
350
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
351
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
352
|
+
**ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
|
|
353
|
+
|
|
354
|
+
</td></tr></table>
|
|
323
355
|
|
|
324
356
|
[Read more about the language](./BLUEPRINT.md)
|
|
325
357
|
|
|
@@ -366,14 +398,10 @@ Now you want to use it. There are several ways how to write your first book:
|
|
|
366
398
|
|
|
367
399
|
We have written ai asistant in book who can help you with writing your first book.
|
|
368
400
|
|
|
369
|
-
|
|
370
|
-
|
|
371
401
|
#### Your AI twin
|
|
372
402
|
|
|
373
403
|
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.
|
|
374
404
|
|
|
375
|
-
|
|
376
|
-
|
|
377
405
|
#### AI persona workpool
|
|
378
406
|
|
|
379
407
|
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.
|
|
@@ -493,8 +521,6 @@ Join our growing community of developers and users:
|
|
|
493
521
|
|
|
494
522
|
|
|
495
523
|
|
|
496
|
-
|
|
497
|
-
|
|
498
524
|
## 📚 Documentation
|
|
499
525
|
|
|
500
526
|
See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
|
|
@@ -571,8 +597,6 @@ The following glossary is used to clarify certain concepts:
|
|
|
571
597
|
|
|
572
598
|
_Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
|
|
573
599
|
|
|
574
|
-
|
|
575
|
-
|
|
576
600
|
### 💯 Core concepts
|
|
577
601
|
|
|
578
602
|
- [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
|
package/esm/index.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import colors from 'colors';
|
|
2
|
-
import spaceTrim, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
2
|
+
import spaceTrim$2, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
3
3
|
import { randomBytes } from 'crypto';
|
|
4
4
|
|
|
5
5
|
// ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
|
|
@@ -9,14 +9,14 @@ import { randomBytes } from 'crypto';
|
|
|
9
9
|
* @generated
|
|
10
10
|
* @see https://github.com/webgptorg/book
|
|
11
11
|
*/
|
|
12
|
-
const BOOK_LANGUAGE_VERSION = '
|
|
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-
|
|
19
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-100';
|
|
20
20
|
/**
|
|
21
21
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
22
22
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -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
|
|
@@ -868,6 +882,28 @@ class Color {
|
|
|
868
882
|
throw new Error(`Can not create color from given object`);
|
|
869
883
|
}
|
|
870
884
|
}
|
|
885
|
+
/**
|
|
886
|
+
* Creates a new Color instance from miscellaneous formats
|
|
887
|
+
* It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
|
|
888
|
+
*
|
|
889
|
+
* @param color
|
|
890
|
+
* @returns Color object
|
|
891
|
+
*/
|
|
892
|
+
static fromSafe(color) {
|
|
893
|
+
try {
|
|
894
|
+
return Color.from(color);
|
|
895
|
+
}
|
|
896
|
+
catch (error) {
|
|
897
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
898
|
+
console.warn(spaceTrim((block) => `
|
|
899
|
+
Color.fromSafe error:
|
|
900
|
+
${block(error.message)}
|
|
901
|
+
|
|
902
|
+
Returning default PROMPTBOOK_COLOR.
|
|
903
|
+
`));
|
|
904
|
+
return Color.fromString('promptbook');
|
|
905
|
+
}
|
|
906
|
+
}
|
|
871
907
|
/**
|
|
872
908
|
* Creates a new Color instance from miscellaneous string formats
|
|
873
909
|
*
|
|
@@ -935,6 +971,9 @@ class Color {
|
|
|
935
971
|
if (hex.length === 3) {
|
|
936
972
|
return Color.fromHex3(hex);
|
|
937
973
|
}
|
|
974
|
+
if (hex.length === 4) {
|
|
975
|
+
return Color.fromHex4(hex);
|
|
976
|
+
}
|
|
938
977
|
if (hex.length === 6) {
|
|
939
978
|
return Color.fromHex6(hex);
|
|
940
979
|
}
|
|
@@ -955,6 +994,19 @@ class Color {
|
|
|
955
994
|
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
956
995
|
return take(new Color(r, g, b));
|
|
957
996
|
}
|
|
997
|
+
/**
|
|
998
|
+
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
999
|
+
*
|
|
1000
|
+
* @param color in hex for example `09df`
|
|
1001
|
+
* @returns Color object
|
|
1002
|
+
*/
|
|
1003
|
+
static fromHex4(hex) {
|
|
1004
|
+
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
1005
|
+
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
1006
|
+
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
1007
|
+
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
1008
|
+
return take(new Color(r, g, b, a));
|
|
1009
|
+
}
|
|
958
1010
|
/**
|
|
959
1011
|
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
960
1012
|
*
|
|
@@ -1145,7 +1197,8 @@ class Color {
|
|
|
1145
1197
|
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
|
1146
1198
|
*/
|
|
1147
1199
|
static isHexColorString(value) {
|
|
1148
|
-
return typeof value === 'string' &&
|
|
1200
|
+
return (typeof value === 'string' &&
|
|
1201
|
+
/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
|
|
1149
1202
|
}
|
|
1150
1203
|
/**
|
|
1151
1204
|
* Creates new Color object
|
|
@@ -1260,6 +1313,23 @@ class Color {
|
|
|
1260
1313
|
* TODO: Maybe connect with textures
|
|
1261
1314
|
*/
|
|
1262
1315
|
|
|
1316
|
+
/**
|
|
1317
|
+
* Makes color transformer which returns a grayscale version of the color
|
|
1318
|
+
*
|
|
1319
|
+
* @param amount from 0 to 1
|
|
1320
|
+
*
|
|
1321
|
+
* @public exported from `@promptbook/color`
|
|
1322
|
+
*/
|
|
1323
|
+
function grayscale(amount) {
|
|
1324
|
+
return ({ red, green, blue, alpha }) => {
|
|
1325
|
+
const average = (red + green + blue) / 3;
|
|
1326
|
+
red = Math.round(average * amount + red * (1 - amount));
|
|
1327
|
+
green = Math.round(average * amount + green * (1 - amount));
|
|
1328
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
|
1329
|
+
return Color.fromValues(red, green, blue, alpha);
|
|
1330
|
+
};
|
|
1331
|
+
}
|
|
1332
|
+
|
|
1263
1333
|
/**
|
|
1264
1334
|
* Converts HSL values to RGB values
|
|
1265
1335
|
*
|
|
@@ -1375,102 +1445,6 @@ function lighten(amount) {
|
|
|
1375
1445
|
* TODO: Maybe implement by mix+hsl
|
|
1376
1446
|
*/
|
|
1377
1447
|
|
|
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
1448
|
/**
|
|
1475
1449
|
* Makes color transformer which saturate the given color
|
|
1476
1450
|
*
|
|
@@ -1519,16 +1493,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
|
|
|
1519
1493
|
*
|
|
1520
1494
|
* @public exported from `@promptbook/core`
|
|
1521
1495
|
*/
|
|
1522
|
-
const PROMPTBOOK_COLOR = Color.
|
|
1523
|
-
// <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1496
|
+
const PROMPTBOOK_COLOR = Color.fromString('promptbook');
|
|
1497
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1498
|
+
/**
|
|
1499
|
+
* Colors for syntax highlighting in the `<BookEditor/>`
|
|
1500
|
+
*
|
|
1501
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
1502
|
+
*
|
|
1503
|
+
* @public exported from `@promptbook/core`
|
|
1504
|
+
*/
|
|
1505
|
+
({
|
|
1506
|
+
TITLE: Color.fromHex('#244EA8'),
|
|
1507
|
+
LINE: Color.fromHex('#eeeeee'),
|
|
1508
|
+
SEPARATOR: Color.fromHex('#cccccc'),
|
|
1509
|
+
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
1510
|
+
PARAMETER: Color.fromHex('#8e44ad'),
|
|
1511
|
+
});
|
|
1512
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1524
1513
|
/**
|
|
1525
|
-
*
|
|
1514
|
+
* Chat color of the Promptbook (in chat)
|
|
1526
1515
|
*
|
|
1527
1516
|
* TODO: [🗽] Unite branding and make single place for it
|
|
1528
1517
|
*
|
|
1529
1518
|
* @public exported from `@promptbook/core`
|
|
1530
1519
|
*/
|
|
1531
1520
|
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
|
1521
|
+
// <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
|
|
1532
1522
|
/**
|
|
1533
1523
|
* Color of the user (in chat)
|
|
1534
1524
|
*
|
|
@@ -1612,7 +1602,7 @@ function orderJson(options) {
|
|
|
1612
1602
|
function getErrorReportUrl(error) {
|
|
1613
1603
|
const report = {
|
|
1614
1604
|
title: `🐜 Error report from ${NAME}`,
|
|
1615
|
-
body: spaceTrim((block) => `
|
|
1605
|
+
body: spaceTrim$2((block) => `
|
|
1616
1606
|
|
|
1617
1607
|
|
|
1618
1608
|
\`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
|
|
@@ -1770,7 +1760,7 @@ function checkSerializableAsJson(options) {
|
|
|
1770
1760
|
}
|
|
1771
1761
|
else if (typeof value === 'object') {
|
|
1772
1762
|
if (value instanceof Date) {
|
|
1773
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1763
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1774
1764
|
\`${name}\` is Date
|
|
1775
1765
|
|
|
1776
1766
|
Use \`string_date_iso8601\` instead
|
|
@@ -1789,7 +1779,7 @@ function checkSerializableAsJson(options) {
|
|
|
1789
1779
|
throw new UnexpectedError(`${name} is RegExp`);
|
|
1790
1780
|
}
|
|
1791
1781
|
else if (value instanceof Error) {
|
|
1792
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1782
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1793
1783
|
\`${name}\` is unserialized Error
|
|
1794
1784
|
|
|
1795
1785
|
Use function \`serializeError\`
|
|
@@ -1812,7 +1802,7 @@ function checkSerializableAsJson(options) {
|
|
|
1812
1802
|
}
|
|
1813
1803
|
catch (error) {
|
|
1814
1804
|
assertsError(error);
|
|
1815
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1805
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1816
1806
|
\`${name}\` is not serializable
|
|
1817
1807
|
|
|
1818
1808
|
${block(error.stack || error.message)}
|
|
@@ -1844,7 +1834,7 @@ function checkSerializableAsJson(options) {
|
|
|
1844
1834
|
}
|
|
1845
1835
|
}
|
|
1846
1836
|
else {
|
|
1847
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1837
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1848
1838
|
\`${name}\` is unknown type
|
|
1849
1839
|
|
|
1850
1840
|
Additional message for \`${name}\`:
|
|
@@ -1874,7 +1864,7 @@ function deepClone(objectValue) {
|
|
|
1874
1864
|
TODO: [🧠] Is there a better implementation?
|
|
1875
1865
|
> const propertyNames = Object.getOwnPropertyNames(objectValue);
|
|
1876
1866
|
> for (const propertyName of propertyNames) {
|
|
1877
|
-
> const value = (objectValue as
|
|
1867
|
+
> const value = (objectValue as chococake)[propertyName];
|
|
1878
1868
|
> if (value && typeof value === 'object') {
|
|
1879
1869
|
> deepClone(value);
|
|
1880
1870
|
> }
|
|
@@ -2208,7 +2198,7 @@ function createExecutionToolsFromVercelProvider(options) {
|
|
|
2208
2198
|
const modelName = modelRequirements.modelName ||
|
|
2209
2199
|
((_a = availableModels.find(({ modelVariant }) => modelVariant === 'CHAT')) === null || _a === void 0 ? void 0 : _a.modelName);
|
|
2210
2200
|
if (!modelName) {
|
|
2211
|
-
throw new PipelineExecutionError(spaceTrim(`
|
|
2201
|
+
throw new PipelineExecutionError(spaceTrim$2(`
|
|
2212
2202
|
Can not determine which model to use.
|
|
2213
2203
|
|
|
2214
2204
|
You need to provide at least one of:
|
|
@@ -2226,7 +2216,7 @@ function createExecutionToolsFromVercelProvider(options) {
|
|
|
2226
2216
|
let promptMessages;
|
|
2227
2217
|
if ('thread' in prompt && Array.isArray(prompt.thread)) {
|
|
2228
2218
|
promptMessages = prompt.thread.map((msg) => ({
|
|
2229
|
-
role: msg.role === 'assistant' ? 'assistant' :
|
|
2219
|
+
role: msg.role === 'assistant' ? 'assistant' : msg.role === 'system' ? 'system' : 'user',
|
|
2230
2220
|
content: [
|
|
2231
2221
|
{
|
|
2232
2222
|
type: 'text',
|
|
@@ -2331,7 +2321,7 @@ function pricing(value) {
|
|
|
2331
2321
|
/**
|
|
2332
2322
|
* List of available Google models with descriptions
|
|
2333
2323
|
*
|
|
2334
|
-
* Note: Synced with official API docs at 2025-
|
|
2324
|
+
* Note: Synced with official API docs at 2025-11-19
|
|
2335
2325
|
*
|
|
2336
2326
|
* @see https://ai.google.dev/models/gemini
|
|
2337
2327
|
* @public exported from `@promptbook/google`
|
|
@@ -2339,6 +2329,13 @@ function pricing(value) {
|
|
|
2339
2329
|
const GOOGLE_MODELS = exportJson({
|
|
2340
2330
|
name: 'GOOGLE_MODELS',
|
|
2341
2331
|
value: [
|
|
2332
|
+
{
|
|
2333
|
+
modelVariant: 'CHAT',
|
|
2334
|
+
modelTitle: 'Gemini 3 Pro',
|
|
2335
|
+
modelName: 'gemini-3-pro-preview',
|
|
2336
|
+
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.',
|
|
2337
|
+
// TODO: [🧠] Add pricing information for Gemini 3 Pro
|
|
2338
|
+
},
|
|
2342
2339
|
{
|
|
2343
2340
|
modelVariant: 'CHAT',
|
|
2344
2341
|
modelTitle: 'Gemini 2.5 Pro',
|
|
@@ -2389,26 +2386,6 @@ const GOOGLE_MODELS = exportJson({
|
|
|
2389
2386
|
output: pricing(`$0.45 / 1M tokens`),
|
|
2390
2387
|
},
|
|
2391
2388
|
},
|
|
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
2389
|
{
|
|
2413
2390
|
modelVariant: 'CHAT',
|
|
2414
2391
|
modelTitle: 'Gemini 2.0 Flash Thinking',
|