@promptbook/javascript 0.103.0-9 → 0.104.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -35
- package/esm/index.es.js +138 -124
- 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 +22 -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 +70 -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 +20 -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 +85 -14
- package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +18 -0
- package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +17 -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 +16 -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/PromptbookAgentIntegration.d.ts +67 -0
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +23 -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/CameraIcon.d.ts +11 -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/book-components/icons/SendIcon.d.ts +3 -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 +39 -0
- package/esm/typings/src/commitments/CLOSED/CLOSED.test.d.ts +4 -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 +42 -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 +14 -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 +26 -2
- package/esm/typings/src/execution/PromptResult.d.ts +7 -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 +72 -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/ollama/OllamaExecutionTools.d.ts +4 -0
- 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/OpenAiCompatibleExecutionTools.d.ts +13 -1
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +4 -0
- package/esm/typings/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +6 -6
- 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/ModelRequirements.d.ts +13 -1
- package/esm/typings/src/types/ModelVariant.d.ts +1 -1
- package/esm/typings/src/types/Prompt.d.ts +13 -1
- package/esm/typings/src/types/Updatable.d.ts +19 -0
- package/esm/typings/src/types/typeAliases.d.ts +38 -2
- package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
- package/esm/typings/src/utils/color/Color.d.ts +16 -1
- 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/injectCssModuleIntoShadowRoot.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 +31 -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/random/CzechNamePool.d.ts +7 -0
- package/esm/typings/src/utils/random/EnglishNamePool.d.ts +7 -0
- package/esm/typings/src/utils/random/NamePool.d.ts +17 -0
- package/esm/typings/src/utils/random/getNamePool.d.ts +10 -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 +135 -123
- 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/BookEditorInner.d.ts +0 -5
- package/esm/typings/src/book-components/BookEditor/BookEditorWrapper.d.ts +0 -9
- package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
- 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
|
|
|
@@ -114,11 +110,15 @@ The main challenge is to narrow it down, constrain it, set the proper **context,
|
|
|
114
110
|
|
|
115
111
|
Promptbook takes the best from both worlds. You are defining your AI behavior by simple **books**, which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable.
|
|
116
112
|
|
|
113
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
117
114
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
/>
|
|
115
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
116
|
+
<br/>
|
|
117
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
118
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
119
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
120
|
+
|
|
121
|
+
</td></tr></table>
|
|
122
122
|
|
|
123
123
|
<div style="page-break-after: always;"></div>
|
|
124
124
|
|
|
@@ -132,11 +132,15 @@ You can look at it as prompting (or writing a system message), but decorated by
|
|
|
132
132
|
|
|
133
133
|
Personas define the character of your AI persona, its role, and how it should interact with users. It sets the tone and style of communication.
|
|
134
134
|
|
|
135
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
136
|
+
|
|
137
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
138
|
+
<br/>
|
|
139
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
140
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
141
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
135
142
|
|
|
136
|
-
|
|
137
|
-
alt="Paul Smith & Associés Book"
|
|
138
|
-
src="https://promptbook.studio/embed/book-preview.png?book=Paul%20Smith%20%26%20Associ%C3%A9s%0A%20%20%20%20%20%20%7C%20PERSONA%20You%20are%20a%20company%20lawyer.%0A%20%20%20%20%20%20%7C%20Your%20job%20is%20to%20provide%20legal%20advice%20and%20support%20to%20the%20company%20and%20its%20employees.%0A%20%20%20%20%20%20%7C%20You%20are%20knowledgeable%2C%20professional%2C%20and%20detail-oriented.&width=800&height=450&nonce=0"
|
|
139
|
-
/>
|
|
143
|
+
</td></tr></table>
|
|
140
144
|
|
|
141
145
|
#### `Knowledge` commitment
|
|
142
146
|
|
|
@@ -146,11 +150,18 @@ This can include domain-specific knowledge, company policies, or any other relev
|
|
|
146
150
|
|
|
147
151
|
Promptbook Engine will automatically enforce this knowledge during interactions. When the knowledge is short enough, it will be included in the prompt. When it is too long, it will be stored in vector databases and RAG retrieved when needed. But you don't need to care about it.
|
|
148
152
|
|
|
153
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
149
154
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
/>
|
|
155
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
156
|
+
<br/>
|
|
157
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
158
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
159
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
160
|
+
<br/>
|
|
161
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
162
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
163
|
+
|
|
164
|
+
</td></tr></table>
|
|
154
165
|
|
|
155
166
|
#### `Rule` commitment
|
|
156
167
|
|
|
@@ -158,21 +169,42 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This
|
|
|
158
169
|
|
|
159
170
|
Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
|
|
160
171
|
|
|
172
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
173
|
+
|
|
174
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
175
|
+
<br/>
|
|
176
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
177
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
178
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
179
|
+
<br/>
|
|
180
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
181
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
182
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
183
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
184
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
161
185
|
|
|
162
|
-
|
|
163
|
-
alt="Paul Smith & Associés Book"
|
|
164
|
-
src="https://promptbook.studio/embed/book-preview.png?book=Paul%20Smith%20%26%20Associ%C3%A9s%0A%20%20%20%20%20%20%7C%20PERSONA%20You%20are%20a%20company%20lawyer.%0A%20%20%20%20%20%20%7C%20Your%20job%20is%20to%20provide%20legal%20advice%20and%20support%20to%20the%20company%20and%20its%20employees.%0A%20%20%20%20%20%20%7C%20You%20are%20knowledgeable%2C%20professional%2C%20and%20detail-oriented.%0A%20%20%20%20%20%20%7C%20RULE%20Always%20ensure%20compliance%20with%20laws%20and%20regulations.%0A%20%20%20%20%20%20%7C%20RULE%20Never%20provide%20legal%20advice%20outside%20your%20area%20of%20expertise.%0A%20%20%20%20%20%20%7C%20RULE%20Never%20provide%20legal%20advice%20about%20criminal%20law.%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20%20https%3A%2F%2Fcompany.com%2Fcompany-policies.pdf%0A%20%20%20%20%20%20%7C%20KNOWLEDGE%20https%3A%2F%2Fcompany.com%2Finternal-documents%2Femployee-handbook.docx&width=800&height=450&nonce=0"
|
|
165
|
-
/>
|
|
186
|
+
</td></tr></table>
|
|
166
187
|
|
|
167
188
|
#### `Action` commitment
|
|
168
189
|
|
|
169
190
|
Action Commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events, or interacting with your internal systems.
|
|
170
191
|
|
|
192
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
171
193
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
/>
|
|
194
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
195
|
+
<br/>
|
|
196
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
197
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
198
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
199
|
+
<br/>
|
|
200
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
201
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
202
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
203
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
204
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
205
|
+
**ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
|
|
206
|
+
|
|
207
|
+
</td></tr></table>
|
|
176
208
|
|
|
177
209
|
[Read more about the language](./BLUEPRINT.md)
|
|
178
210
|
|
|
@@ -219,14 +251,10 @@ Now you want to use it. There are several ways how to write your first book:
|
|
|
219
251
|
|
|
220
252
|
We have written ai asistant in book who can help you with writing your first book.
|
|
221
253
|
|
|
222
|
-
|
|
223
|
-
|
|
224
254
|
#### Your AI twin
|
|
225
255
|
|
|
226
256
|
Copy your own behavior, personality, and knowledge into book and create your AI twin. It can help you with your work, personal life, or any other task.
|
|
227
257
|
|
|
228
|
-
|
|
229
|
-
|
|
230
258
|
#### AI persona workpool
|
|
231
259
|
|
|
232
260
|
Or you can pick from our library of pre-written books for various roles and tasks. You can find books for customer support, coding, marketing, sales, HR, legal, and many other roles.
|
|
@@ -346,8 +374,6 @@ Join our growing community of developers and users:
|
|
|
346
374
|
|
|
347
375
|
|
|
348
376
|
|
|
349
|
-
|
|
350
|
-
|
|
351
377
|
## 📚 Documentation
|
|
352
378
|
|
|
353
379
|
See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
|
|
@@ -424,8 +450,6 @@ The following glossary is used to clarify certain concepts:
|
|
|
424
450
|
|
|
425
451
|
_Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
|
|
426
452
|
|
|
427
|
-
|
|
428
|
-
|
|
429
453
|
### 💯 Core concepts
|
|
430
454
|
|
|
431
455
|
- [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
|
package/esm/index.es.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import spaceTrim, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
1
|
+
import spaceTrim$2, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
2
2
|
import 'path';
|
|
3
3
|
import { randomBytes } from 'crypto';
|
|
4
|
+
import 'crypto-js';
|
|
5
|
+
import 'crypto-js/enc-hex';
|
|
4
6
|
|
|
5
7
|
// ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
|
|
6
8
|
/**
|
|
@@ -9,19 +11,30 @@ import { randomBytes } from 'crypto';
|
|
|
9
11
|
* @generated
|
|
10
12
|
* @see https://github.com/webgptorg/book
|
|
11
13
|
*/
|
|
12
|
-
const BOOK_LANGUAGE_VERSION = '
|
|
14
|
+
const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
13
15
|
/**
|
|
14
16
|
* The version of the Promptbook engine
|
|
15
17
|
*
|
|
16
18
|
* @generated
|
|
17
19
|
* @see https://github.com/webgptorg/promptbook
|
|
18
20
|
*/
|
|
19
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.
|
|
21
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-0';
|
|
20
22
|
/**
|
|
21
23
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
22
24
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
23
25
|
*/
|
|
24
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Trims string from all 4 sides
|
|
29
|
+
*
|
|
30
|
+
* Note: This is a re-exported function from the `spacetrim` package which is
|
|
31
|
+
* Developed by same author @hejny as this package
|
|
32
|
+
*
|
|
33
|
+
* @public exported from `@promptbook/utils`
|
|
34
|
+
* @see https://github.com/hejny/spacetrim#usage
|
|
35
|
+
*/
|
|
36
|
+
const spaceTrim = spaceTrim$1;
|
|
37
|
+
|
|
25
38
|
/**
|
|
26
39
|
* @private util of `@promptbook/color`
|
|
27
40
|
* @de
|
|
@@ -70,6 +83,7 @@ function take(initialValue) {
|
|
|
70
83
|
* @public exported from `@promptbook/color`
|
|
71
84
|
*/
|
|
72
85
|
const CSS_COLORS = {
|
|
86
|
+
promptbook: '#79EAFD',
|
|
73
87
|
transparent: 'rgba(0,0,0,0)',
|
|
74
88
|
aliceblue: '#f0f8ff',
|
|
75
89
|
antiquewhite: '#faebd7',
|
|
@@ -251,9 +265,6 @@ function checkChannelValue(channelName, value) {
|
|
|
251
265
|
throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
|
|
252
266
|
}
|
|
253
267
|
}
|
|
254
|
-
/**
|
|
255
|
-
* TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
|
|
256
|
-
*/
|
|
257
268
|
|
|
258
269
|
/**
|
|
259
270
|
* Color object represents an RGB color with alpha channel
|
|
@@ -273,21 +284,61 @@ class Color {
|
|
|
273
284
|
* @param color
|
|
274
285
|
* @returns Color object
|
|
275
286
|
*/
|
|
276
|
-
static from(color) {
|
|
277
|
-
if (color
|
|
287
|
+
static from(color, _isSingleValue = false) {
|
|
288
|
+
if (color === '') {
|
|
289
|
+
throw new Error(`Can not create color from empty string`);
|
|
290
|
+
}
|
|
291
|
+
else if (color instanceof Color) {
|
|
278
292
|
return take(color);
|
|
279
293
|
}
|
|
280
294
|
else if (Color.isColor(color)) {
|
|
281
295
|
return take(color);
|
|
282
296
|
}
|
|
283
297
|
else if (typeof color === 'string') {
|
|
284
|
-
|
|
298
|
+
try {
|
|
299
|
+
return Color.fromString(color);
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
303
|
+
if (_isSingleValue) {
|
|
304
|
+
throw error;
|
|
305
|
+
}
|
|
306
|
+
const parts = color.split(/[\s+,;|]/);
|
|
307
|
+
if (parts.length > 0) {
|
|
308
|
+
return Color.from(parts[0].trim(), true);
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
throw new Error(`Can not create color from given string "${color}"`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
285
314
|
}
|
|
286
315
|
else {
|
|
287
316
|
console.error({ color });
|
|
288
317
|
throw new Error(`Can not create color from given object`);
|
|
289
318
|
}
|
|
290
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Creates a new Color instance from miscellaneous formats
|
|
322
|
+
* It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
|
|
323
|
+
*
|
|
324
|
+
* @param color
|
|
325
|
+
* @returns Color object
|
|
326
|
+
*/
|
|
327
|
+
static fromSafe(color) {
|
|
328
|
+
try {
|
|
329
|
+
return Color.from(color);
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
333
|
+
console.warn(spaceTrim((block) => `
|
|
334
|
+
Color.fromSafe error:
|
|
335
|
+
${block(error.message)}
|
|
336
|
+
|
|
337
|
+
Returning default PROMPTBOOK_COLOR.
|
|
338
|
+
`));
|
|
339
|
+
return Color.fromString('promptbook');
|
|
340
|
+
}
|
|
341
|
+
}
|
|
291
342
|
/**
|
|
292
343
|
* Creates a new Color instance from miscellaneous string formats
|
|
293
344
|
*
|
|
@@ -355,6 +406,9 @@ class Color {
|
|
|
355
406
|
if (hex.length === 3) {
|
|
356
407
|
return Color.fromHex3(hex);
|
|
357
408
|
}
|
|
409
|
+
if (hex.length === 4) {
|
|
410
|
+
return Color.fromHex4(hex);
|
|
411
|
+
}
|
|
358
412
|
if (hex.length === 6) {
|
|
359
413
|
return Color.fromHex6(hex);
|
|
360
414
|
}
|
|
@@ -375,6 +429,19 @@ class Color {
|
|
|
375
429
|
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
376
430
|
return take(new Color(r, g, b));
|
|
377
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
434
|
+
*
|
|
435
|
+
* @param color in hex for example `09df`
|
|
436
|
+
* @returns Color object
|
|
437
|
+
*/
|
|
438
|
+
static fromHex4(hex) {
|
|
439
|
+
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
440
|
+
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
441
|
+
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
442
|
+
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
443
|
+
return take(new Color(r, g, b, a));
|
|
444
|
+
}
|
|
378
445
|
/**
|
|
379
446
|
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
380
447
|
*
|
|
@@ -565,7 +632,8 @@ class Color {
|
|
|
565
632
|
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
|
566
633
|
*/
|
|
567
634
|
static isHexColorString(value) {
|
|
568
|
-
return typeof value === 'string' &&
|
|
635
|
+
return (typeof value === 'string' &&
|
|
636
|
+
/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
|
|
569
637
|
}
|
|
570
638
|
/**
|
|
571
639
|
* Creates new Color object
|
|
@@ -680,6 +748,23 @@ class Color {
|
|
|
680
748
|
* TODO: Maybe connect with textures
|
|
681
749
|
*/
|
|
682
750
|
|
|
751
|
+
/**
|
|
752
|
+
* Makes color transformer which returns a grayscale version of the color
|
|
753
|
+
*
|
|
754
|
+
* @param amount from 0 to 1
|
|
755
|
+
*
|
|
756
|
+
* @public exported from `@promptbook/color`
|
|
757
|
+
*/
|
|
758
|
+
function grayscale(amount) {
|
|
759
|
+
return ({ red, green, blue, alpha }) => {
|
|
760
|
+
const average = (red + green + blue) / 3;
|
|
761
|
+
red = Math.round(average * amount + red * (1 - amount));
|
|
762
|
+
green = Math.round(average * amount + green * (1 - amount));
|
|
763
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
|
764
|
+
return Color.fromValues(red, green, blue, alpha);
|
|
765
|
+
};
|
|
766
|
+
}
|
|
767
|
+
|
|
683
768
|
/**
|
|
684
769
|
* Converts HSL values to RGB values
|
|
685
770
|
*
|
|
@@ -795,102 +880,6 @@ function lighten(amount) {
|
|
|
795
880
|
* TODO: Maybe implement by mix+hsl
|
|
796
881
|
*/
|
|
797
882
|
|
|
798
|
-
/**
|
|
799
|
-
* Calculates distance between two colors
|
|
800
|
-
*
|
|
801
|
-
* @param color1 first color
|
|
802
|
-
* @param color2 second color
|
|
803
|
-
*
|
|
804
|
-
* Note: This function is inefficient. Use colorDistanceSquared instead if possible.
|
|
805
|
-
*
|
|
806
|
-
* @public exported from `@promptbook/color`
|
|
807
|
-
*/
|
|
808
|
-
/**
|
|
809
|
-
* Calculates distance between two colors without square root
|
|
810
|
-
*
|
|
811
|
-
* @param color1 first color
|
|
812
|
-
* @param color2 second color
|
|
813
|
-
*
|
|
814
|
-
* @public exported from `@promptbook/color`
|
|
815
|
-
*/
|
|
816
|
-
function colorDistanceSquared(color1, color2) {
|
|
817
|
-
const rmean = (color1.red + color2.red) / 2;
|
|
818
|
-
const r = color1.red - color2.red;
|
|
819
|
-
const g = color1.green - color2.green;
|
|
820
|
-
const b = color1.blue - color2.blue;
|
|
821
|
-
const weightR = 2 + rmean / 256;
|
|
822
|
-
const weightG = 4.0;
|
|
823
|
-
const weightB = 2 + (255 - rmean) / 256;
|
|
824
|
-
const distance = weightR * r * r + weightG * g * g + weightB * b * b;
|
|
825
|
-
return distance;
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
/**
|
|
829
|
-
* Makes color transformer which finds the nearest color from the given list
|
|
830
|
-
*
|
|
831
|
-
* @param colors array of colors to choose from
|
|
832
|
-
*
|
|
833
|
-
* @public exported from `@promptbook/color`
|
|
834
|
-
*/
|
|
835
|
-
function nearest(...colors) {
|
|
836
|
-
return (color) => {
|
|
837
|
-
const distances = colors.map((c) => colorDistanceSquared(c, color));
|
|
838
|
-
const minDistance = Math.min(...distances);
|
|
839
|
-
const minIndex = distances.indexOf(minDistance);
|
|
840
|
-
const nearestColor = colors[minIndex];
|
|
841
|
-
return nearestColor;
|
|
842
|
-
};
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
/**
|
|
846
|
-
* Color transformer which returns the negative color
|
|
847
|
-
*
|
|
848
|
-
* @public exported from `@promptbook/color`
|
|
849
|
-
*/
|
|
850
|
-
function negative(color) {
|
|
851
|
-
const r = 255 - color.red;
|
|
852
|
-
const g = 255 - color.green;
|
|
853
|
-
const b = 255 - color.blue;
|
|
854
|
-
return Color.fromValues(r, g, b, color.alpha);
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
/**
|
|
858
|
-
* Makes color transformer which finds the furthest color from the given list
|
|
859
|
-
*
|
|
860
|
-
* @param colors array of colors to choose from
|
|
861
|
-
*
|
|
862
|
-
* @public exported from `@promptbook/color`
|
|
863
|
-
*/
|
|
864
|
-
function furthest(...colors) {
|
|
865
|
-
return (color) => {
|
|
866
|
-
const furthestColor = negative(nearest(...colors.map(negative))(color));
|
|
867
|
-
return furthestColor;
|
|
868
|
-
};
|
|
869
|
-
}
|
|
870
|
-
/**
|
|
871
|
-
* Makes color transformer which finds the best text color (black or white) for the given background color
|
|
872
|
-
*
|
|
873
|
-
* @public exported from `@promptbook/color`
|
|
874
|
-
*/
|
|
875
|
-
furthest(Color.get('white'), Color.from('black'));
|
|
876
|
-
|
|
877
|
-
/**
|
|
878
|
-
* Makes color transformer which returns a grayscale version of the color
|
|
879
|
-
*
|
|
880
|
-
* @param amount from 0 to 1
|
|
881
|
-
*
|
|
882
|
-
* @public exported from `@promptbook/color`
|
|
883
|
-
*/
|
|
884
|
-
function grayscale(amount) {
|
|
885
|
-
return ({ red, green, blue, alpha }) => {
|
|
886
|
-
const average = (red + green + blue) / 3;
|
|
887
|
-
red = Math.round(average * amount + red * (1 - amount));
|
|
888
|
-
green = Math.round(average * amount + green * (1 - amount));
|
|
889
|
-
blue = Math.round(average * amount + blue * (1 - amount));
|
|
890
|
-
return Color.fromValues(red, green, blue, alpha);
|
|
891
|
-
};
|
|
892
|
-
}
|
|
893
|
-
|
|
894
883
|
/**
|
|
895
884
|
* Makes color transformer which saturate the given color
|
|
896
885
|
*
|
|
@@ -939,16 +928,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
|
|
|
939
928
|
*
|
|
940
929
|
* @public exported from `@promptbook/core`
|
|
941
930
|
*/
|
|
942
|
-
const PROMPTBOOK_COLOR = Color.
|
|
943
|
-
// <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
931
|
+
const PROMPTBOOK_COLOR = Color.fromString('promptbook');
|
|
932
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
933
|
+
/**
|
|
934
|
+
* Colors for syntax highlighting in the `<BookEditor/>`
|
|
935
|
+
*
|
|
936
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
937
|
+
*
|
|
938
|
+
* @public exported from `@promptbook/core`
|
|
939
|
+
*/
|
|
940
|
+
({
|
|
941
|
+
TITLE: Color.fromHex('#244EA8'),
|
|
942
|
+
LINE: Color.fromHex('#eeeeee'),
|
|
943
|
+
SEPARATOR: Color.fromHex('#cccccc'),
|
|
944
|
+
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
945
|
+
PARAMETER: Color.fromHex('#8e44ad'),
|
|
946
|
+
});
|
|
947
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
944
948
|
/**
|
|
945
|
-
*
|
|
949
|
+
* Chat color of the Promptbook (in chat)
|
|
946
950
|
*
|
|
947
951
|
* TODO: [🗽] Unite branding and make single place for it
|
|
948
952
|
*
|
|
949
953
|
* @public exported from `@promptbook/core`
|
|
950
954
|
*/
|
|
951
955
|
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
|
956
|
+
// <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
|
|
952
957
|
/**
|
|
953
958
|
* Color of the user (in chat)
|
|
954
959
|
*
|
|
@@ -1059,7 +1064,7 @@ function $deepFreeze(objectValue) {
|
|
|
1059
1064
|
function getErrorReportUrl(error) {
|
|
1060
1065
|
const report = {
|
|
1061
1066
|
title: `🐜 Error report from ${NAME}`,
|
|
1062
|
-
body: spaceTrim((block) => `
|
|
1067
|
+
body: spaceTrim$2((block) => `
|
|
1063
1068
|
|
|
1064
1069
|
|
|
1065
1070
|
\`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
|
|
@@ -1217,7 +1222,7 @@ function checkSerializableAsJson(options) {
|
|
|
1217
1222
|
}
|
|
1218
1223
|
else if (typeof value === 'object') {
|
|
1219
1224
|
if (value instanceof Date) {
|
|
1220
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1225
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1221
1226
|
\`${name}\` is Date
|
|
1222
1227
|
|
|
1223
1228
|
Use \`string_date_iso8601\` instead
|
|
@@ -1236,7 +1241,7 @@ function checkSerializableAsJson(options) {
|
|
|
1236
1241
|
throw new UnexpectedError(`${name} is RegExp`);
|
|
1237
1242
|
}
|
|
1238
1243
|
else if (value instanceof Error) {
|
|
1239
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1244
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1240
1245
|
\`${name}\` is unserialized Error
|
|
1241
1246
|
|
|
1242
1247
|
Use function \`serializeError\`
|
|
@@ -1259,7 +1264,7 @@ function checkSerializableAsJson(options) {
|
|
|
1259
1264
|
}
|
|
1260
1265
|
catch (error) {
|
|
1261
1266
|
assertsError(error);
|
|
1262
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1267
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1263
1268
|
\`${name}\` is not serializable
|
|
1264
1269
|
|
|
1265
1270
|
${block(error.stack || error.message)}
|
|
@@ -1291,7 +1296,7 @@ function checkSerializableAsJson(options) {
|
|
|
1291
1296
|
}
|
|
1292
1297
|
}
|
|
1293
1298
|
else {
|
|
1294
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1299
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1295
1300
|
\`${name}\` is unknown type
|
|
1296
1301
|
|
|
1297
1302
|
Additional message for \`${name}\`:
|
|
@@ -1321,7 +1326,7 @@ function deepClone(objectValue) {
|
|
|
1321
1326
|
TODO: [🧠] Is there a better implementation?
|
|
1322
1327
|
> const propertyNames = Object.getOwnPropertyNames(objectValue);
|
|
1323
1328
|
> for (const propertyName of propertyNames) {
|
|
1324
|
-
> const value = (objectValue as
|
|
1329
|
+
> const value = (objectValue as chococake)[propertyName];
|
|
1325
1330
|
> if (value && typeof value === 'object') {
|
|
1326
1331
|
> deepClone(value);
|
|
1327
1332
|
> }
|
|
@@ -1394,6 +1399,8 @@ exportJson({
|
|
|
1394
1399
|
/**
|
|
1395
1400
|
* Normalizes a given text to camelCase format.
|
|
1396
1401
|
*
|
|
1402
|
+
* Note: [🔂] This function is idempotent.
|
|
1403
|
+
*
|
|
1397
1404
|
* @param text The text to be normalized.
|
|
1398
1405
|
* @param _isFirstLetterCapital Whether the first letter should be capitalized.
|
|
1399
1406
|
* @returns The camelCase formatted string.
|
|
@@ -1709,6 +1716,8 @@ function removeDiacritics(input) {
|
|
|
1709
1716
|
/**
|
|
1710
1717
|
* Converts a given text to kebab-case format.
|
|
1711
1718
|
*
|
|
1719
|
+
* Note: [🔂] This function is idempotent.
|
|
1720
|
+
*
|
|
1712
1721
|
* @param text The text to be converted.
|
|
1713
1722
|
* @returns The kebab-case formatted string.
|
|
1714
1723
|
* @example 'hello-world'
|
|
@@ -1794,6 +1803,7 @@ class ParseError extends Error {
|
|
|
1794
1803
|
/**
|
|
1795
1804
|
* Generates random token
|
|
1796
1805
|
*
|
|
1806
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
1797
1807
|
* Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
|
|
1798
1808
|
*
|
|
1799
1809
|
* @private internal helper function
|
|
@@ -1803,6 +1813,7 @@ function $randomToken(randomness) {
|
|
|
1803
1813
|
return randomBytes(randomness).toString('hex');
|
|
1804
1814
|
}
|
|
1805
1815
|
/**
|
|
1816
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
1806
1817
|
* TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
1807
1818
|
*/
|
|
1808
1819
|
|
|
@@ -2136,6 +2147,9 @@ function nameToUriParts(name) {
|
|
|
2136
2147
|
}
|
|
2137
2148
|
|
|
2138
2149
|
/**
|
|
2150
|
+
* Normalizes a given text to PascalCase format.
|
|
2151
|
+
*
|
|
2152
|
+
* Note: [🔂] This function is idempotent.
|
|
2139
2153
|
*
|
|
2140
2154
|
* @param text @public exported from `@promptbook/utils`
|
|
2141
2155
|
* @returns
|
|
@@ -2353,7 +2367,7 @@ function extractAllBlocksFromMarkdown(markdown) {
|
|
|
2353
2367
|
function extractOneBlockFromMarkdown(markdown) {
|
|
2354
2368
|
const codeBlocks = extractAllBlocksFromMarkdown(markdown);
|
|
2355
2369
|
if (codeBlocks.length !== 1) {
|
|
2356
|
-
throw new ParseError(spaceTrim((block) => `
|
|
2370
|
+
throw new ParseError(spaceTrim$2((block) => `
|
|
2357
2371
|
There should be exactly 1 code block in task section, found ${codeBlocks.length} code blocks
|
|
2358
2372
|
|
|
2359
2373
|
${block(codeBlocks.map((block, i) => `Block ${i + 1}:\n${block.content}`).join('\n\n\n'))}
|
|
@@ -2474,8 +2488,8 @@ class JavascriptEvalExecutionTools {
|
|
|
2474
2488
|
}
|
|
2475
2489
|
// Note: [💎]
|
|
2476
2490
|
// Note: Using direct eval, following variables are in same scope as eval call so they are accessible from inside the evaluated script:
|
|
2477
|
-
const spaceTrim
|
|
2478
|
-
$preserve(spaceTrim
|
|
2491
|
+
const spaceTrim = (_) => spaceTrim$2(_);
|
|
2492
|
+
$preserve(spaceTrim);
|
|
2479
2493
|
const removeQuotes$1 = removeQuotes;
|
|
2480
2494
|
$preserve(removeQuotes$1);
|
|
2481
2495
|
const unwrapResult$1 = unwrapResult;
|
|
@@ -2528,7 +2542,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2528
2542
|
// TODO: DRY [🍯]
|
|
2529
2543
|
const buildinFunctions = {
|
|
2530
2544
|
// TODO: [🍯] DRY all these functions across the file
|
|
2531
|
-
spaceTrim
|
|
2545
|
+
spaceTrim,
|
|
2532
2546
|
removeQuotes: removeQuotes$1,
|
|
2533
2547
|
unwrapResult: unwrapResult$1,
|
|
2534
2548
|
trimEndOfCodeBlock: trimEndOfCodeBlock$1,
|
|
@@ -2565,7 +2579,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2565
2579
|
.join('\n');
|
|
2566
2580
|
// script = templateParameters(script, parameters);
|
|
2567
2581
|
// <- TODO: [🧠][🥳] Should be this is one of two variants how to use parameters in script
|
|
2568
|
-
const statementToEvaluate = spaceTrim((block) => `
|
|
2582
|
+
const statementToEvaluate = spaceTrim$2((block) => `
|
|
2569
2583
|
|
|
2570
2584
|
// Build-in functions:
|
|
2571
2585
|
${block(buildinFunctionsStatement)}
|
|
@@ -2580,7 +2594,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2580
2594
|
(()=>{ ${script} })()
|
|
2581
2595
|
`);
|
|
2582
2596
|
if (this.options.isVerbose) {
|
|
2583
|
-
console.info(spaceTrim((block) => `
|
|
2597
|
+
console.info(spaceTrim$2((block) => `
|
|
2584
2598
|
🚀 Evaluating ${scriptLanguage} script:
|
|
2585
2599
|
|
|
2586
2600
|
${block(statementToEvaluate)}`));
|
|
@@ -2602,7 +2616,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2602
2616
|
To: [PipelineExecutionError: Parameter `{thing}` is not defined],
|
|
2603
2617
|
*/
|
|
2604
2618
|
if (!statementToEvaluate.includes(undefinedName + '(')) {
|
|
2605
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
2619
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
2606
2620
|
|
|
2607
2621
|
Parameter \`{${undefinedName}}\` is not defined
|
|
2608
2622
|
|
|
@@ -2624,7 +2638,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2624
2638
|
`));
|
|
2625
2639
|
}
|
|
2626
2640
|
else {
|
|
2627
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
2641
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
2628
2642
|
Function ${undefinedName}() is not defined
|
|
2629
2643
|
|
|
2630
2644
|
- Make sure that the function is one of built-in functions
|
|
@@ -2674,7 +2688,7 @@ const reverse = (str) => str.split('').reverse().join('');
|
|
|
2674
2688
|
* @public exported from `@promptbook/javascript`
|
|
2675
2689
|
*/
|
|
2676
2690
|
const POSTPROCESSING_FUNCTIONS = {
|
|
2677
|
-
spaceTrim,
|
|
2691
|
+
spaceTrim: spaceTrim$2,
|
|
2678
2692
|
removeQuotes,
|
|
2679
2693
|
unwrapResult,
|
|
2680
2694
|
trimEndOfCodeBlock,
|