@promptbook/fake-llm 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 +141 -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 +6 -6
- package/umd/index.umd.js +141 -126
- 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
|
|
|
@@ -71,11 +67,15 @@ The main challenge is to narrow it down, constrain it, set the proper **context,
|
|
|
71
67
|
|
|
72
68
|
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.
|
|
73
69
|
|
|
70
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
74
71
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
/>
|
|
72
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
73
|
+
<br/>
|
|
74
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
75
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
76
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
77
|
+
|
|
78
|
+
</td></tr></table>
|
|
79
79
|
|
|
80
80
|
<div style="page-break-after: always;"></div>
|
|
81
81
|
|
|
@@ -89,11 +89,15 @@ You can look at it as prompting (or writing a system message), but decorated by
|
|
|
89
89
|
|
|
90
90
|
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.
|
|
91
91
|
|
|
92
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
93
|
+
|
|
94
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
95
|
+
<br/>
|
|
96
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
97
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
98
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
92
99
|
|
|
93
|
-
|
|
94
|
-
alt="Paul Smith & Associés Book"
|
|
95
|
-
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"
|
|
96
|
-
/>
|
|
100
|
+
</td></tr></table>
|
|
97
101
|
|
|
98
102
|
#### `Knowledge` commitment
|
|
99
103
|
|
|
@@ -103,11 +107,18 @@ This can include domain-specific knowledge, company policies, or any other relev
|
|
|
103
107
|
|
|
104
108
|
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.
|
|
105
109
|
|
|
110
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
106
111
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
/>
|
|
112
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
113
|
+
<br/>
|
|
114
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
115
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
116
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
117
|
+
<br/>
|
|
118
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
119
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
120
|
+
|
|
121
|
+
</td></tr></table>
|
|
111
122
|
|
|
112
123
|
#### `Rule` commitment
|
|
113
124
|
|
|
@@ -115,21 +126,42 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This
|
|
|
115
126
|
|
|
116
127
|
Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
|
|
117
128
|
|
|
129
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
130
|
+
|
|
131
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
132
|
+
<br/>
|
|
133
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
134
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
135
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
136
|
+
<br/>
|
|
137
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
138
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
139
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
140
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
141
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
118
142
|
|
|
119
|
-
|
|
120
|
-
alt="Paul Smith & Associés Book"
|
|
121
|
-
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"
|
|
122
|
-
/>
|
|
143
|
+
</td></tr></table>
|
|
123
144
|
|
|
124
145
|
#### `Action` commitment
|
|
125
146
|
|
|
126
147
|
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.
|
|
127
148
|
|
|
149
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
128
150
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
/>
|
|
151
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
152
|
+
<br/>
|
|
153
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
154
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
155
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
156
|
+
<br/>
|
|
157
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
158
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
159
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
160
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
161
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
162
|
+
**ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
|
|
163
|
+
|
|
164
|
+
</td></tr></table>
|
|
133
165
|
|
|
134
166
|
[Read more about the language](./BLUEPRINT.md)
|
|
135
167
|
|
|
@@ -176,14 +208,10 @@ Now you want to use it. There are several ways how to write your first book:
|
|
|
176
208
|
|
|
177
209
|
We have written ai asistant in book who can help you with writing your first book.
|
|
178
210
|
|
|
179
|
-
|
|
180
|
-
|
|
181
211
|
#### Your AI twin
|
|
182
212
|
|
|
183
213
|
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.
|
|
184
214
|
|
|
185
|
-
|
|
186
|
-
|
|
187
215
|
#### AI persona workpool
|
|
188
216
|
|
|
189
217
|
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.
|
|
@@ -303,8 +331,6 @@ Join our growing community of developers and users:
|
|
|
303
331
|
|
|
304
332
|
|
|
305
333
|
|
|
306
|
-
|
|
307
|
-
|
|
308
334
|
## 📚 Documentation
|
|
309
335
|
|
|
310
336
|
See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
|
|
@@ -381,8 +407,6 @@ The following glossary is used to clarify certain concepts:
|
|
|
381
407
|
|
|
382
408
|
_Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
|
|
383
409
|
|
|
384
|
-
|
|
385
|
-
|
|
386
410
|
### 💯 Core concepts
|
|
387
411
|
|
|
388
412
|
- [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
|
package/esm/index.es.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import spaceTrim, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
1
|
+
import spaceTrim$2, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
2
2
|
import { forTime } from 'waitasecond';
|
|
3
3
|
import { randomBytes } from 'crypto';
|
|
4
4
|
import { LoremIpsum } from 'lorem-ipsum';
|
|
5
5
|
import 'path';
|
|
6
|
+
import 'crypto-js';
|
|
7
|
+
import 'crypto-js/enc-hex';
|
|
6
8
|
|
|
7
9
|
// ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
|
|
8
10
|
/**
|
|
@@ -11,14 +13,14 @@ import 'path';
|
|
|
11
13
|
* @generated
|
|
12
14
|
* @see https://github.com/webgptorg/book
|
|
13
15
|
*/
|
|
14
|
-
const BOOK_LANGUAGE_VERSION = '
|
|
16
|
+
const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
15
17
|
/**
|
|
16
18
|
* The version of the Promptbook engine
|
|
17
19
|
*
|
|
18
20
|
* @generated
|
|
19
21
|
* @see https://github.com/webgptorg/promptbook
|
|
20
22
|
*/
|
|
21
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.
|
|
23
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-0';
|
|
22
24
|
/**
|
|
23
25
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
24
26
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -131,6 +133,17 @@ function $getCurrentDate() {
|
|
|
131
133
|
return new Date().toISOString();
|
|
132
134
|
}
|
|
133
135
|
|
|
136
|
+
/**
|
|
137
|
+
* Trims string from all 4 sides
|
|
138
|
+
*
|
|
139
|
+
* Note: This is a re-exported function from the `spacetrim` package which is
|
|
140
|
+
* Developed by same author @hejny as this package
|
|
141
|
+
*
|
|
142
|
+
* @public exported from `@promptbook/utils`
|
|
143
|
+
* @see https://github.com/hejny/spacetrim#usage
|
|
144
|
+
*/
|
|
145
|
+
const spaceTrim = spaceTrim$1;
|
|
146
|
+
|
|
134
147
|
/**
|
|
135
148
|
* @private util of `@promptbook/color`
|
|
136
149
|
* @de
|
|
@@ -179,6 +192,7 @@ function take(initialValue) {
|
|
|
179
192
|
* @public exported from `@promptbook/color`
|
|
180
193
|
*/
|
|
181
194
|
const CSS_COLORS = {
|
|
195
|
+
promptbook: '#79EAFD',
|
|
182
196
|
transparent: 'rgba(0,0,0,0)',
|
|
183
197
|
aliceblue: '#f0f8ff',
|
|
184
198
|
antiquewhite: '#faebd7',
|
|
@@ -360,9 +374,6 @@ function checkChannelValue(channelName, value) {
|
|
|
360
374
|
throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
|
|
361
375
|
}
|
|
362
376
|
}
|
|
363
|
-
/**
|
|
364
|
-
* TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
|
|
365
|
-
*/
|
|
366
377
|
|
|
367
378
|
/**
|
|
368
379
|
* Color object represents an RGB color with alpha channel
|
|
@@ -382,21 +393,61 @@ class Color {
|
|
|
382
393
|
* @param color
|
|
383
394
|
* @returns Color object
|
|
384
395
|
*/
|
|
385
|
-
static from(color) {
|
|
386
|
-
if (color
|
|
396
|
+
static from(color, _isSingleValue = false) {
|
|
397
|
+
if (color === '') {
|
|
398
|
+
throw new Error(`Can not create color from empty string`);
|
|
399
|
+
}
|
|
400
|
+
else if (color instanceof Color) {
|
|
387
401
|
return take(color);
|
|
388
402
|
}
|
|
389
403
|
else if (Color.isColor(color)) {
|
|
390
404
|
return take(color);
|
|
391
405
|
}
|
|
392
406
|
else if (typeof color === 'string') {
|
|
393
|
-
|
|
407
|
+
try {
|
|
408
|
+
return Color.fromString(color);
|
|
409
|
+
}
|
|
410
|
+
catch (error) {
|
|
411
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
412
|
+
if (_isSingleValue) {
|
|
413
|
+
throw error;
|
|
414
|
+
}
|
|
415
|
+
const parts = color.split(/[\s+,;|]/);
|
|
416
|
+
if (parts.length > 0) {
|
|
417
|
+
return Color.from(parts[0].trim(), true);
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
throw new Error(`Can not create color from given string "${color}"`);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
394
423
|
}
|
|
395
424
|
else {
|
|
396
425
|
console.error({ color });
|
|
397
426
|
throw new Error(`Can not create color from given object`);
|
|
398
427
|
}
|
|
399
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* Creates a new Color instance from miscellaneous formats
|
|
431
|
+
* It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
|
|
432
|
+
*
|
|
433
|
+
* @param color
|
|
434
|
+
* @returns Color object
|
|
435
|
+
*/
|
|
436
|
+
static fromSafe(color) {
|
|
437
|
+
try {
|
|
438
|
+
return Color.from(color);
|
|
439
|
+
}
|
|
440
|
+
catch (error) {
|
|
441
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
442
|
+
console.warn(spaceTrim((block) => `
|
|
443
|
+
Color.fromSafe error:
|
|
444
|
+
${block(error.message)}
|
|
445
|
+
|
|
446
|
+
Returning default PROMPTBOOK_COLOR.
|
|
447
|
+
`));
|
|
448
|
+
return Color.fromString('promptbook');
|
|
449
|
+
}
|
|
450
|
+
}
|
|
400
451
|
/**
|
|
401
452
|
* Creates a new Color instance from miscellaneous string formats
|
|
402
453
|
*
|
|
@@ -464,6 +515,9 @@ class Color {
|
|
|
464
515
|
if (hex.length === 3) {
|
|
465
516
|
return Color.fromHex3(hex);
|
|
466
517
|
}
|
|
518
|
+
if (hex.length === 4) {
|
|
519
|
+
return Color.fromHex4(hex);
|
|
520
|
+
}
|
|
467
521
|
if (hex.length === 6) {
|
|
468
522
|
return Color.fromHex6(hex);
|
|
469
523
|
}
|
|
@@ -484,6 +538,19 @@ class Color {
|
|
|
484
538
|
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
485
539
|
return take(new Color(r, g, b));
|
|
486
540
|
}
|
|
541
|
+
/**
|
|
542
|
+
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
543
|
+
*
|
|
544
|
+
* @param color in hex for example `09df`
|
|
545
|
+
* @returns Color object
|
|
546
|
+
*/
|
|
547
|
+
static fromHex4(hex) {
|
|
548
|
+
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
549
|
+
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
550
|
+
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
551
|
+
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
552
|
+
return take(new Color(r, g, b, a));
|
|
553
|
+
}
|
|
487
554
|
/**
|
|
488
555
|
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
489
556
|
*
|
|
@@ -674,7 +741,8 @@ class Color {
|
|
|
674
741
|
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
|
675
742
|
*/
|
|
676
743
|
static isHexColorString(value) {
|
|
677
|
-
return typeof value === 'string' &&
|
|
744
|
+
return (typeof value === 'string' &&
|
|
745
|
+
/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
|
|
678
746
|
}
|
|
679
747
|
/**
|
|
680
748
|
* Creates new Color object
|
|
@@ -789,6 +857,23 @@ class Color {
|
|
|
789
857
|
* TODO: Maybe connect with textures
|
|
790
858
|
*/
|
|
791
859
|
|
|
860
|
+
/**
|
|
861
|
+
* Makes color transformer which returns a grayscale version of the color
|
|
862
|
+
*
|
|
863
|
+
* @param amount from 0 to 1
|
|
864
|
+
*
|
|
865
|
+
* @public exported from `@promptbook/color`
|
|
866
|
+
*/
|
|
867
|
+
function grayscale(amount) {
|
|
868
|
+
return ({ red, green, blue, alpha }) => {
|
|
869
|
+
const average = (red + green + blue) / 3;
|
|
870
|
+
red = Math.round(average * amount + red * (1 - amount));
|
|
871
|
+
green = Math.round(average * amount + green * (1 - amount));
|
|
872
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
|
873
|
+
return Color.fromValues(red, green, blue, alpha);
|
|
874
|
+
};
|
|
875
|
+
}
|
|
876
|
+
|
|
792
877
|
/**
|
|
793
878
|
* Converts HSL values to RGB values
|
|
794
879
|
*
|
|
@@ -904,102 +989,6 @@ function lighten(amount) {
|
|
|
904
989
|
* TODO: Maybe implement by mix+hsl
|
|
905
990
|
*/
|
|
906
991
|
|
|
907
|
-
/**
|
|
908
|
-
* Calculates distance between two colors
|
|
909
|
-
*
|
|
910
|
-
* @param color1 first color
|
|
911
|
-
* @param color2 second color
|
|
912
|
-
*
|
|
913
|
-
* Note: This function is inefficient. Use colorDistanceSquared instead if possible.
|
|
914
|
-
*
|
|
915
|
-
* @public exported from `@promptbook/color`
|
|
916
|
-
*/
|
|
917
|
-
/**
|
|
918
|
-
* Calculates distance between two colors without square root
|
|
919
|
-
*
|
|
920
|
-
* @param color1 first color
|
|
921
|
-
* @param color2 second color
|
|
922
|
-
*
|
|
923
|
-
* @public exported from `@promptbook/color`
|
|
924
|
-
*/
|
|
925
|
-
function colorDistanceSquared(color1, color2) {
|
|
926
|
-
const rmean = (color1.red + color2.red) / 2;
|
|
927
|
-
const r = color1.red - color2.red;
|
|
928
|
-
const g = color1.green - color2.green;
|
|
929
|
-
const b = color1.blue - color2.blue;
|
|
930
|
-
const weightR = 2 + rmean / 256;
|
|
931
|
-
const weightG = 4.0;
|
|
932
|
-
const weightB = 2 + (255 - rmean) / 256;
|
|
933
|
-
const distance = weightR * r * r + weightG * g * g + weightB * b * b;
|
|
934
|
-
return distance;
|
|
935
|
-
}
|
|
936
|
-
|
|
937
|
-
/**
|
|
938
|
-
* Makes color transformer which finds the nearest color from the given list
|
|
939
|
-
*
|
|
940
|
-
* @param colors array of colors to choose from
|
|
941
|
-
*
|
|
942
|
-
* @public exported from `@promptbook/color`
|
|
943
|
-
*/
|
|
944
|
-
function nearest(...colors) {
|
|
945
|
-
return (color) => {
|
|
946
|
-
const distances = colors.map((c) => colorDistanceSquared(c, color));
|
|
947
|
-
const minDistance = Math.min(...distances);
|
|
948
|
-
const minIndex = distances.indexOf(minDistance);
|
|
949
|
-
const nearestColor = colors[minIndex];
|
|
950
|
-
return nearestColor;
|
|
951
|
-
};
|
|
952
|
-
}
|
|
953
|
-
|
|
954
|
-
/**
|
|
955
|
-
* Color transformer which returns the negative color
|
|
956
|
-
*
|
|
957
|
-
* @public exported from `@promptbook/color`
|
|
958
|
-
*/
|
|
959
|
-
function negative(color) {
|
|
960
|
-
const r = 255 - color.red;
|
|
961
|
-
const g = 255 - color.green;
|
|
962
|
-
const b = 255 - color.blue;
|
|
963
|
-
return Color.fromValues(r, g, b, color.alpha);
|
|
964
|
-
}
|
|
965
|
-
|
|
966
|
-
/**
|
|
967
|
-
* Makes color transformer which finds the furthest color from the given list
|
|
968
|
-
*
|
|
969
|
-
* @param colors array of colors to choose from
|
|
970
|
-
*
|
|
971
|
-
* @public exported from `@promptbook/color`
|
|
972
|
-
*/
|
|
973
|
-
function furthest(...colors) {
|
|
974
|
-
return (color) => {
|
|
975
|
-
const furthestColor = negative(nearest(...colors.map(negative))(color));
|
|
976
|
-
return furthestColor;
|
|
977
|
-
};
|
|
978
|
-
}
|
|
979
|
-
/**
|
|
980
|
-
* Makes color transformer which finds the best text color (black or white) for the given background color
|
|
981
|
-
*
|
|
982
|
-
* @public exported from `@promptbook/color`
|
|
983
|
-
*/
|
|
984
|
-
furthest(Color.get('white'), Color.from('black'));
|
|
985
|
-
|
|
986
|
-
/**
|
|
987
|
-
* Makes color transformer which returns a grayscale version of the color
|
|
988
|
-
*
|
|
989
|
-
* @param amount from 0 to 1
|
|
990
|
-
*
|
|
991
|
-
* @public exported from `@promptbook/color`
|
|
992
|
-
*/
|
|
993
|
-
function grayscale(amount) {
|
|
994
|
-
return ({ red, green, blue, alpha }) => {
|
|
995
|
-
const average = (red + green + blue) / 3;
|
|
996
|
-
red = Math.round(average * amount + red * (1 - amount));
|
|
997
|
-
green = Math.round(average * amount + green * (1 - amount));
|
|
998
|
-
blue = Math.round(average * amount + blue * (1 - amount));
|
|
999
|
-
return Color.fromValues(red, green, blue, alpha);
|
|
1000
|
-
};
|
|
1001
|
-
}
|
|
1002
|
-
|
|
1003
992
|
/**
|
|
1004
993
|
* Makes color transformer which saturate the given color
|
|
1005
994
|
*
|
|
@@ -1048,16 +1037,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
|
|
|
1048
1037
|
*
|
|
1049
1038
|
* @public exported from `@promptbook/core`
|
|
1050
1039
|
*/
|
|
1051
|
-
const PROMPTBOOK_COLOR = Color.
|
|
1052
|
-
// <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1040
|
+
const PROMPTBOOK_COLOR = Color.fromString('promptbook');
|
|
1041
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1053
1042
|
/**
|
|
1054
|
-
*
|
|
1043
|
+
* Colors for syntax highlighting in the `<BookEditor/>`
|
|
1044
|
+
*
|
|
1045
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
1046
|
+
*
|
|
1047
|
+
* @public exported from `@promptbook/core`
|
|
1048
|
+
*/
|
|
1049
|
+
({
|
|
1050
|
+
TITLE: Color.fromHex('#244EA8'),
|
|
1051
|
+
LINE: Color.fromHex('#eeeeee'),
|
|
1052
|
+
SEPARATOR: Color.fromHex('#cccccc'),
|
|
1053
|
+
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
1054
|
+
PARAMETER: Color.fromHex('#8e44ad'),
|
|
1055
|
+
});
|
|
1056
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1057
|
+
/**
|
|
1058
|
+
* Chat color of the Promptbook (in chat)
|
|
1055
1059
|
*
|
|
1056
1060
|
* TODO: [🗽] Unite branding and make single place for it
|
|
1057
1061
|
*
|
|
1058
1062
|
* @public exported from `@promptbook/core`
|
|
1059
1063
|
*/
|
|
1060
1064
|
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
|
1065
|
+
// <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
|
|
1061
1066
|
/**
|
|
1062
1067
|
* Color of the user (in chat)
|
|
1063
1068
|
*
|
|
@@ -1147,7 +1152,7 @@ function orderJson(options) {
|
|
|
1147
1152
|
function getErrorReportUrl(error) {
|
|
1148
1153
|
const report = {
|
|
1149
1154
|
title: `🐜 Error report from ${NAME}`,
|
|
1150
|
-
body: spaceTrim((block) => `
|
|
1155
|
+
body: spaceTrim$2((block) => `
|
|
1151
1156
|
|
|
1152
1157
|
|
|
1153
1158
|
\`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
|
|
@@ -1305,7 +1310,7 @@ function checkSerializableAsJson(options) {
|
|
|
1305
1310
|
}
|
|
1306
1311
|
else if (typeof value === 'object') {
|
|
1307
1312
|
if (value instanceof Date) {
|
|
1308
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1313
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1309
1314
|
\`${name}\` is Date
|
|
1310
1315
|
|
|
1311
1316
|
Use \`string_date_iso8601\` instead
|
|
@@ -1324,7 +1329,7 @@ function checkSerializableAsJson(options) {
|
|
|
1324
1329
|
throw new UnexpectedError(`${name} is RegExp`);
|
|
1325
1330
|
}
|
|
1326
1331
|
else if (value instanceof Error) {
|
|
1327
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1332
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1328
1333
|
\`${name}\` is unserialized Error
|
|
1329
1334
|
|
|
1330
1335
|
Use function \`serializeError\`
|
|
@@ -1347,7 +1352,7 @@ function checkSerializableAsJson(options) {
|
|
|
1347
1352
|
}
|
|
1348
1353
|
catch (error) {
|
|
1349
1354
|
assertsError(error);
|
|
1350
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1355
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1351
1356
|
\`${name}\` is not serializable
|
|
1352
1357
|
|
|
1353
1358
|
${block(error.stack || error.message)}
|
|
@@ -1379,7 +1384,7 @@ function checkSerializableAsJson(options) {
|
|
|
1379
1384
|
}
|
|
1380
1385
|
}
|
|
1381
1386
|
else {
|
|
1382
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1387
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1383
1388
|
\`${name}\` is unknown type
|
|
1384
1389
|
|
|
1385
1390
|
Additional message for \`${name}\`:
|
|
@@ -1409,7 +1414,7 @@ function deepClone(objectValue) {
|
|
|
1409
1414
|
TODO: [🧠] Is there a better implementation?
|
|
1410
1415
|
> const propertyNames = Object.getOwnPropertyNames(objectValue);
|
|
1411
1416
|
> for (const propertyName of propertyNames) {
|
|
1412
|
-
> const value = (objectValue as
|
|
1417
|
+
> const value = (objectValue as chococake)[propertyName];
|
|
1413
1418
|
> if (value && typeof value === 'object') {
|
|
1414
1419
|
> deepClone(value);
|
|
1415
1420
|
> }
|
|
@@ -1513,6 +1518,7 @@ class LimitReachedError extends Error {
|
|
|
1513
1518
|
/**
|
|
1514
1519
|
* Generates random token
|
|
1515
1520
|
*
|
|
1521
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
1516
1522
|
* Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
|
|
1517
1523
|
*
|
|
1518
1524
|
* @private internal helper function
|
|
@@ -1522,6 +1528,7 @@ function $randomToken(randomness) {
|
|
|
1522
1528
|
return randomBytes(randomness).toString('hex');
|
|
1523
1529
|
}
|
|
1524
1530
|
/**
|
|
1531
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
1525
1532
|
* TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
1526
1533
|
*/
|
|
1527
1534
|
|
|
@@ -1889,10 +1896,13 @@ const LINES_PER_STANDARD_PAGE = 44;
|
|
|
1889
1896
|
* @public exported from `@promptbook/utils`
|
|
1890
1897
|
*/
|
|
1891
1898
|
function countLines(text) {
|
|
1899
|
+
if (text === '') {
|
|
1900
|
+
return 0;
|
|
1901
|
+
}
|
|
1892
1902
|
text = text.replace('\r\n', '\n');
|
|
1893
1903
|
text = text.replace('\r', '\n');
|
|
1894
1904
|
const lines = text.split('\n');
|
|
1895
|
-
return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
|
|
1905
|
+
return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
|
|
1896
1906
|
}
|
|
1897
1907
|
/**
|
|
1898
1908
|
* TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
|
|
@@ -2300,6 +2310,8 @@ function isPassingExpectations(expectations, value) {
|
|
|
2300
2310
|
/**
|
|
2301
2311
|
* Normalizes a given text to camelCase format.
|
|
2302
2312
|
*
|
|
2313
|
+
* Note: [🔂] This function is idempotent.
|
|
2314
|
+
*
|
|
2303
2315
|
* @param text The text to be normalized.
|
|
2304
2316
|
* @param _isFirstLetterCapital Whether the first letter should be capitalized.
|
|
2305
2317
|
* @returns The camelCase formatted string.
|
|
@@ -2352,6 +2364,8 @@ function normalizeTo_camelCase(text, _isFirstLetterCapital = false) {
|
|
|
2352
2364
|
/**
|
|
2353
2365
|
* Converts a given text to kebab-case format.
|
|
2354
2366
|
*
|
|
2367
|
+
* Note: [🔂] This function is idempotent.
|
|
2368
|
+
*
|
|
2355
2369
|
* @param text The text to be converted.
|
|
2356
2370
|
* @returns The kebab-case formatted string.
|
|
2357
2371
|
* @example 'hello-world'
|
|
@@ -2664,6 +2678,9 @@ function nameToUriParts(name) {
|
|
|
2664
2678
|
}
|
|
2665
2679
|
|
|
2666
2680
|
/**
|
|
2681
|
+
* Normalizes a given text to PascalCase format.
|
|
2682
|
+
*
|
|
2683
|
+
* Note: [🔂] This function is idempotent.
|
|
2667
2684
|
*
|
|
2668
2685
|
* @param text @public exported from `@promptbook/utils`
|
|
2669
2686
|
* @returns
|
|
@@ -2881,7 +2898,7 @@ function extractAllBlocksFromMarkdown(markdown) {
|
|
|
2881
2898
|
function extractOneBlockFromMarkdown(markdown) {
|
|
2882
2899
|
const codeBlocks = extractAllBlocksFromMarkdown(markdown);
|
|
2883
2900
|
if (codeBlocks.length !== 1) {
|
|
2884
|
-
throw new ParseError(spaceTrim((block) => `
|
|
2901
|
+
throw new ParseError(spaceTrim$2((block) => `
|
|
2885
2902
|
There should be exactly 1 code block in task section, found ${codeBlocks.length} code blocks
|
|
2886
2903
|
|
|
2887
2904
|
${block(codeBlocks.map((block, i) => `Block ${i + 1}:\n${block.content}`).join('\n\n\n'))}
|
|
@@ -3002,8 +3019,8 @@ class JavascriptEvalExecutionTools {
|
|
|
3002
3019
|
}
|
|
3003
3020
|
// Note: [💎]
|
|
3004
3021
|
// Note: Using direct eval, following variables are in same scope as eval call so they are accessible from inside the evaluated script:
|
|
3005
|
-
const spaceTrim
|
|
3006
|
-
$preserve(spaceTrim
|
|
3022
|
+
const spaceTrim = (_) => spaceTrim$2(_);
|
|
3023
|
+
$preserve(spaceTrim);
|
|
3007
3024
|
const removeQuotes$1 = removeQuotes;
|
|
3008
3025
|
$preserve(removeQuotes$1);
|
|
3009
3026
|
const unwrapResult$1 = unwrapResult;
|
|
@@ -3056,7 +3073,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3056
3073
|
// TODO: DRY [🍯]
|
|
3057
3074
|
const buildinFunctions = {
|
|
3058
3075
|
// TODO: [🍯] DRY all these functions across the file
|
|
3059
|
-
spaceTrim
|
|
3076
|
+
spaceTrim,
|
|
3060
3077
|
removeQuotes: removeQuotes$1,
|
|
3061
3078
|
unwrapResult: unwrapResult$1,
|
|
3062
3079
|
trimEndOfCodeBlock: trimEndOfCodeBlock$1,
|
|
@@ -3093,7 +3110,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3093
3110
|
.join('\n');
|
|
3094
3111
|
// script = templateParameters(script, parameters);
|
|
3095
3112
|
// <- TODO: [🧠][🥳] Should be this is one of two variants how to use parameters in script
|
|
3096
|
-
const statementToEvaluate = spaceTrim((block) => `
|
|
3113
|
+
const statementToEvaluate = spaceTrim$2((block) => `
|
|
3097
3114
|
|
|
3098
3115
|
// Build-in functions:
|
|
3099
3116
|
${block(buildinFunctionsStatement)}
|
|
@@ -3108,7 +3125,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3108
3125
|
(()=>{ ${script} })()
|
|
3109
3126
|
`);
|
|
3110
3127
|
if (this.options.isVerbose) {
|
|
3111
|
-
console.info(spaceTrim((block) => `
|
|
3128
|
+
console.info(spaceTrim$2((block) => `
|
|
3112
3129
|
🚀 Evaluating ${scriptLanguage} script:
|
|
3113
3130
|
|
|
3114
3131
|
${block(statementToEvaluate)}`));
|
|
@@ -3130,7 +3147,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3130
3147
|
To: [PipelineExecutionError: Parameter `{thing}` is not defined],
|
|
3131
3148
|
*/
|
|
3132
3149
|
if (!statementToEvaluate.includes(undefinedName + '(')) {
|
|
3133
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
3150
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
3134
3151
|
|
|
3135
3152
|
Parameter \`{${undefinedName}}\` is not defined
|
|
3136
3153
|
|
|
@@ -3152,7 +3169,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3152
3169
|
`));
|
|
3153
3170
|
}
|
|
3154
3171
|
else {
|
|
3155
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
3172
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
3156
3173
|
Function ${undefinedName}() is not defined
|
|
3157
3174
|
|
|
3158
3175
|
- Make sure that the function is one of built-in functions
|