@promptbook/javascript 0.103.0-10 → 0.103.0-100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -35
- package/esm/index.es.js +117 -121
- package/esm/index.es.js.map +1 -1
- package/esm/typings/books/index.d.ts +0 -81
- package/esm/typings/servers.d.ts +9 -7
- package/esm/typings/src/_packages/browser.index.d.ts +6 -0
- package/esm/typings/src/_packages/cli.index.d.ts +4 -0
- package/esm/typings/src/_packages/components.index.d.ts +20 -8
- package/esm/typings/src/_packages/core.index.d.ts +58 -18
- package/esm/typings/src/_packages/node.index.d.ts +2 -2
- package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
- package/esm/typings/src/_packages/types.index.d.ts +58 -8
- package/esm/typings/src/_packages/utils.index.d.ts +6 -0
- package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +19 -5
- package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +17 -1
- package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
- package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
- package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +3 -3
- package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
- package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
- package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +18 -0
- package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
- package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +3 -0
- package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +6 -1
- package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +77 -7
- package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +14 -0
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +10 -0
- package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
- package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
- package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
- package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +29 -0
- package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
- package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
- package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
- package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +12 -0
- package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
- package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
- package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
- package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
- package/esm/typings/src/book-components/icons/MicIcon.d.ts +8 -0
- package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
- package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
- package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
- package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
- package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
- package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +12 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +75 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +154 -0
- package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
- package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
- package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
- package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
- package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
- package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
- package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
- package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
- package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
- package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +5 -1
- package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +35 -0
- package/esm/typings/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +5 -1
- package/esm/typings/src/commitments/FROM/FROM.d.ts +34 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +5 -5
- package/esm/typings/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +5 -1
- package/esm/typings/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +5 -1
- package/esm/typings/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +5 -1
- package/esm/typings/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
- package/esm/typings/src/commitments/META_FONT/META_FONT.d.ts +42 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +5 -1
- package/esm/typings/src/commitments/OPEN/OPEN.d.ts +35 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +5 -1
- package/esm/typings/src/commitments/USE/USE.d.ts +53 -0
- package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +38 -0
- package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
- package/esm/typings/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
- package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +38 -0
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +8 -2
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +6 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +5 -1
- package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
- package/esm/typings/src/commitments/index.d.ts +93 -0
- package/esm/typings/src/config.d.ts +24 -3
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -0
- package/esm/typings/src/errors/0-index.d.ts +6 -0
- package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
- package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
- package/esm/typings/src/errors/WrappedError.d.ts +2 -2
- package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
- package/esm/typings/src/execution/Executables.d.ts +3 -0
- package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
- package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
- package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
- package/esm/typings/src/execution/LlmExecutionTools.d.ts +21 -1
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
- package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
- package/esm/typings/src/execution/utils/validatePromptResult.d.ts +2 -0
- package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +2 -2
- package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
- package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
- package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +70 -0
- package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +26 -4
- package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +19 -0
- package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +17 -0
- package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +50 -0
- package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
- package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
- package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +60 -2
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
- package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
- package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
- package/esm/typings/src/pipeline/validatePipelineString.d.ts +2 -0
- package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
- package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
- package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
- package/esm/typings/src/remote-server/startAgentServer.d.ts +26 -0
- package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
- package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +3 -8
- package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
- package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
- package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
- package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +33 -0
- package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
- package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
- package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
- package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
- package/esm/typings/src/types/LlmCall.d.ts +20 -0
- package/esm/typings/src/types/Updatable.d.ts +19 -0
- package/esm/typings/src/types/typeAliases.d.ts +32 -2
- package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
- package/esm/typings/src/utils/color/Color.d.ts +15 -0
- package/esm/typings/src/utils/color/Color.test.d.ts +1 -0
- package/esm/typings/src/utils/color/css-colors.d.ts +1 -0
- package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
- package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
- package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
- package/esm/typings/src/utils/environment/$getGlobalScope.d.ts +2 -2
- package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
- package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
- package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
- package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
- package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
- package/esm/typings/src/utils/misc/computeHash.d.ts +11 -0
- package/esm/typings/src/utils/misc/computeHash.test.d.ts +1 -0
- package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
- package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
- package/esm/typings/src/utils/normalization/normalizeMessageText.d.ts +9 -0
- package/esm/typings/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
- package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
- package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
- package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
- package/esm/typings/src/utils/organization/$sideEffect.d.ts +2 -2
- package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
- package/esm/typings/src/utils/organization/TODO_USE.d.ts +2 -2
- package/esm/typings/src/utils/organization/keepUnused.d.ts +2 -2
- package/esm/typings/src/utils/organization/preserve.d.ts +3 -3
- package/esm/typings/src/utils/organization/really_any.d.ts +7 -0
- package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +25 -0
- package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
- package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
- package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
- package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
- package/esm/typings/src/utils/serialization/asSerializable.d.ts +2 -2
- package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
- package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +2 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
- package/package.json +4 -4
- package/umd/index.umd.js +114 -120
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
- package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -11
- package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
- package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
- package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
- /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → book-2.0/agent-source/computeAgentHash.test.d.ts} +0 -0
- /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → book-2.0/agent-source/normalizeAgentName.test.d.ts} +0 -0
- /package/esm/typings/src/{collection/constructors/createCollectionFromJson.test.d.ts → book-components/Chat/AgentChat/AgentChat.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
- /package/esm/typings/src/{commands/_common/parseCommand.test.d.ts → collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
- /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
- /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
package/README.md
CHANGED
|
@@ -9,8 +9,8 @@ Turn your company's scattered knowledge into AI ready Books
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
[ Promptbook](https://badge.fury.io/js/promptbook.svg)](https://www.npmjs.com/package/promptbook)
|
|
13
|
+
[ Promptbook](https://packagequality.com/shield/promptbook.svg)](https://packagequality.com/#?package=promptbook)
|
|
14
14
|
[](https://snyk.io/test/github/webgptorg/promptbook)
|
|
15
15
|
[](https://github.com/webgptorg/promptbook/actions/workflows/test-books.yml)
|
|
16
16
|
[](https://github.com/webgptorg/promptbook/actions/workflows/test-build.yml)
|
|
@@ -23,11 +23,7 @@ Turn your company's scattered knowledge into AI ready Books
|
|
|
23
23
|
|
|
24
24
|
## 🌟 New Features
|
|
25
25
|
|
|
26
|
-
-
|
|
27
|
-
- 💡 VS Code support for `.book` files with syntax highlighting and IntelliSense
|
|
28
|
-
- 🐳 Official Docker image (`hejny/promptbook`) for seamless containerized usage
|
|
29
|
-
- 🔥 Native support for OpenAI `o3-mini`, GPT-4 and other leading LLMs
|
|
30
|
-
- 🔍 DeepSeek integration for advanced knowledge search
|
|
26
|
+
- **Gemini 3 Support**
|
|
31
27
|
|
|
32
28
|
|
|
33
29
|
|
|
@@ -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.103.0-
|
|
21
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-100';
|
|
20
22
|
/**
|
|
21
23
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
22
24
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
23
25
|
*/
|
|
24
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Trims string from all 4 sides
|
|
29
|
+
*
|
|
30
|
+
* Note: This is a re-exported function from the `spacetrim` package which is
|
|
31
|
+
* Developed by same author @hejny as this package
|
|
32
|
+
*
|
|
33
|
+
* @public exported from `@promptbook/utils`
|
|
34
|
+
* @see https://github.com/hejny/spacetrim#usage
|
|
35
|
+
*/
|
|
36
|
+
const spaceTrim = spaceTrim$1;
|
|
37
|
+
|
|
25
38
|
/**
|
|
26
39
|
* @private util of `@promptbook/color`
|
|
27
40
|
* @de
|
|
@@ -70,6 +83,7 @@ function take(initialValue) {
|
|
|
70
83
|
* @public exported from `@promptbook/color`
|
|
71
84
|
*/
|
|
72
85
|
const CSS_COLORS = {
|
|
86
|
+
promptbook: '#79EAFD',
|
|
73
87
|
transparent: 'rgba(0,0,0,0)',
|
|
74
88
|
aliceblue: '#f0f8ff',
|
|
75
89
|
antiquewhite: '#faebd7',
|
|
@@ -251,9 +265,6 @@ function checkChannelValue(channelName, value) {
|
|
|
251
265
|
throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
|
|
252
266
|
}
|
|
253
267
|
}
|
|
254
|
-
/**
|
|
255
|
-
* TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
|
|
256
|
-
*/
|
|
257
268
|
|
|
258
269
|
/**
|
|
259
270
|
* Color object represents an RGB color with alpha channel
|
|
@@ -288,6 +299,28 @@ class Color {
|
|
|
288
299
|
throw new Error(`Can not create color from given object`);
|
|
289
300
|
}
|
|
290
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Creates a new Color instance from miscellaneous formats
|
|
304
|
+
* It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
|
|
305
|
+
*
|
|
306
|
+
* @param color
|
|
307
|
+
* @returns Color object
|
|
308
|
+
*/
|
|
309
|
+
static fromSafe(color) {
|
|
310
|
+
try {
|
|
311
|
+
return Color.from(color);
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
315
|
+
console.warn(spaceTrim((block) => `
|
|
316
|
+
Color.fromSafe error:
|
|
317
|
+
${block(error.message)}
|
|
318
|
+
|
|
319
|
+
Returning default PROMPTBOOK_COLOR.
|
|
320
|
+
`));
|
|
321
|
+
return Color.fromString('promptbook');
|
|
322
|
+
}
|
|
323
|
+
}
|
|
291
324
|
/**
|
|
292
325
|
* Creates a new Color instance from miscellaneous string formats
|
|
293
326
|
*
|
|
@@ -355,6 +388,9 @@ class Color {
|
|
|
355
388
|
if (hex.length === 3) {
|
|
356
389
|
return Color.fromHex3(hex);
|
|
357
390
|
}
|
|
391
|
+
if (hex.length === 4) {
|
|
392
|
+
return Color.fromHex4(hex);
|
|
393
|
+
}
|
|
358
394
|
if (hex.length === 6) {
|
|
359
395
|
return Color.fromHex6(hex);
|
|
360
396
|
}
|
|
@@ -375,6 +411,19 @@ class Color {
|
|
|
375
411
|
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
376
412
|
return take(new Color(r, g, b));
|
|
377
413
|
}
|
|
414
|
+
/**
|
|
415
|
+
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
416
|
+
*
|
|
417
|
+
* @param color in hex for example `09df`
|
|
418
|
+
* @returns Color object
|
|
419
|
+
*/
|
|
420
|
+
static fromHex4(hex) {
|
|
421
|
+
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
422
|
+
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
423
|
+
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
424
|
+
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
425
|
+
return take(new Color(r, g, b, a));
|
|
426
|
+
}
|
|
378
427
|
/**
|
|
379
428
|
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
380
429
|
*
|
|
@@ -565,7 +614,8 @@ class Color {
|
|
|
565
614
|
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
|
566
615
|
*/
|
|
567
616
|
static isHexColorString(value) {
|
|
568
|
-
return typeof value === 'string' &&
|
|
617
|
+
return (typeof value === 'string' &&
|
|
618
|
+
/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
|
|
569
619
|
}
|
|
570
620
|
/**
|
|
571
621
|
* Creates new Color object
|
|
@@ -680,6 +730,23 @@ class Color {
|
|
|
680
730
|
* TODO: Maybe connect with textures
|
|
681
731
|
*/
|
|
682
732
|
|
|
733
|
+
/**
|
|
734
|
+
* Makes color transformer which returns a grayscale version of the color
|
|
735
|
+
*
|
|
736
|
+
* @param amount from 0 to 1
|
|
737
|
+
*
|
|
738
|
+
* @public exported from `@promptbook/color`
|
|
739
|
+
*/
|
|
740
|
+
function grayscale(amount) {
|
|
741
|
+
return ({ red, green, blue, alpha }) => {
|
|
742
|
+
const average = (red + green + blue) / 3;
|
|
743
|
+
red = Math.round(average * amount + red * (1 - amount));
|
|
744
|
+
green = Math.round(average * amount + green * (1 - amount));
|
|
745
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
|
746
|
+
return Color.fromValues(red, green, blue, alpha);
|
|
747
|
+
};
|
|
748
|
+
}
|
|
749
|
+
|
|
683
750
|
/**
|
|
684
751
|
* Converts HSL values to RGB values
|
|
685
752
|
*
|
|
@@ -795,102 +862,6 @@ function lighten(amount) {
|
|
|
795
862
|
* TODO: Maybe implement by mix+hsl
|
|
796
863
|
*/
|
|
797
864
|
|
|
798
|
-
/**
|
|
799
|
-
* Calculates distance between two colors
|
|
800
|
-
*
|
|
801
|
-
* @param color1 first color
|
|
802
|
-
* @param color2 second color
|
|
803
|
-
*
|
|
804
|
-
* Note: This function is inefficient. Use colorDistanceSquared instead if possible.
|
|
805
|
-
*
|
|
806
|
-
* @public exported from `@promptbook/color`
|
|
807
|
-
*/
|
|
808
|
-
/**
|
|
809
|
-
* Calculates distance between two colors without square root
|
|
810
|
-
*
|
|
811
|
-
* @param color1 first color
|
|
812
|
-
* @param color2 second color
|
|
813
|
-
*
|
|
814
|
-
* @public exported from `@promptbook/color`
|
|
815
|
-
*/
|
|
816
|
-
function colorDistanceSquared(color1, color2) {
|
|
817
|
-
const rmean = (color1.red + color2.red) / 2;
|
|
818
|
-
const r = color1.red - color2.red;
|
|
819
|
-
const g = color1.green - color2.green;
|
|
820
|
-
const b = color1.blue - color2.blue;
|
|
821
|
-
const weightR = 2 + rmean / 256;
|
|
822
|
-
const weightG = 4.0;
|
|
823
|
-
const weightB = 2 + (255 - rmean) / 256;
|
|
824
|
-
const distance = weightR * r * r + weightG * g * g + weightB * b * b;
|
|
825
|
-
return distance;
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
/**
|
|
829
|
-
* Makes color transformer which finds the nearest color from the given list
|
|
830
|
-
*
|
|
831
|
-
* @param colors array of colors to choose from
|
|
832
|
-
*
|
|
833
|
-
* @public exported from `@promptbook/color`
|
|
834
|
-
*/
|
|
835
|
-
function nearest(...colors) {
|
|
836
|
-
return (color) => {
|
|
837
|
-
const distances = colors.map((c) => colorDistanceSquared(c, color));
|
|
838
|
-
const minDistance = Math.min(...distances);
|
|
839
|
-
const minIndex = distances.indexOf(minDistance);
|
|
840
|
-
const nearestColor = colors[minIndex];
|
|
841
|
-
return nearestColor;
|
|
842
|
-
};
|
|
843
|
-
}
|
|
844
|
-
|
|
845
|
-
/**
|
|
846
|
-
* Color transformer which returns the negative color
|
|
847
|
-
*
|
|
848
|
-
* @public exported from `@promptbook/color`
|
|
849
|
-
*/
|
|
850
|
-
function negative(color) {
|
|
851
|
-
const r = 255 - color.red;
|
|
852
|
-
const g = 255 - color.green;
|
|
853
|
-
const b = 255 - color.blue;
|
|
854
|
-
return Color.fromValues(r, g, b, color.alpha);
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
/**
|
|
858
|
-
* Makes color transformer which finds the furthest color from the given list
|
|
859
|
-
*
|
|
860
|
-
* @param colors array of colors to choose from
|
|
861
|
-
*
|
|
862
|
-
* @public exported from `@promptbook/color`
|
|
863
|
-
*/
|
|
864
|
-
function furthest(...colors) {
|
|
865
|
-
return (color) => {
|
|
866
|
-
const furthestColor = negative(nearest(...colors.map(negative))(color));
|
|
867
|
-
return furthestColor;
|
|
868
|
-
};
|
|
869
|
-
}
|
|
870
|
-
/**
|
|
871
|
-
* Makes color transformer which finds the best text color (black or white) for the given background color
|
|
872
|
-
*
|
|
873
|
-
* @public exported from `@promptbook/color`
|
|
874
|
-
*/
|
|
875
|
-
furthest(Color.get('white'), Color.from('black'));
|
|
876
|
-
|
|
877
|
-
/**
|
|
878
|
-
* Makes color transformer which returns a grayscale version of the color
|
|
879
|
-
*
|
|
880
|
-
* @param amount from 0 to 1
|
|
881
|
-
*
|
|
882
|
-
* @public exported from `@promptbook/color`
|
|
883
|
-
*/
|
|
884
|
-
function grayscale(amount) {
|
|
885
|
-
return ({ red, green, blue, alpha }) => {
|
|
886
|
-
const average = (red + green + blue) / 3;
|
|
887
|
-
red = Math.round(average * amount + red * (1 - amount));
|
|
888
|
-
green = Math.round(average * amount + green * (1 - amount));
|
|
889
|
-
blue = Math.round(average * amount + blue * (1 - amount));
|
|
890
|
-
return Color.fromValues(red, green, blue, alpha);
|
|
891
|
-
};
|
|
892
|
-
}
|
|
893
|
-
|
|
894
865
|
/**
|
|
895
866
|
* Makes color transformer which saturate the given color
|
|
896
867
|
*
|
|
@@ -939,16 +910,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
|
|
|
939
910
|
*
|
|
940
911
|
* @public exported from `@promptbook/core`
|
|
941
912
|
*/
|
|
942
|
-
const PROMPTBOOK_COLOR = Color.
|
|
943
|
-
// <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
913
|
+
const PROMPTBOOK_COLOR = Color.fromString('promptbook');
|
|
914
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
944
915
|
/**
|
|
945
|
-
*
|
|
916
|
+
* Colors for syntax highlighting in the `<BookEditor/>`
|
|
917
|
+
*
|
|
918
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
919
|
+
*
|
|
920
|
+
* @public exported from `@promptbook/core`
|
|
921
|
+
*/
|
|
922
|
+
({
|
|
923
|
+
TITLE: Color.fromHex('#244EA8'),
|
|
924
|
+
LINE: Color.fromHex('#eeeeee'),
|
|
925
|
+
SEPARATOR: Color.fromHex('#cccccc'),
|
|
926
|
+
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
927
|
+
PARAMETER: Color.fromHex('#8e44ad'),
|
|
928
|
+
});
|
|
929
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
930
|
+
/**
|
|
931
|
+
* Chat color of the Promptbook (in chat)
|
|
946
932
|
*
|
|
947
933
|
* TODO: [🗽] Unite branding and make single place for it
|
|
948
934
|
*
|
|
949
935
|
* @public exported from `@promptbook/core`
|
|
950
936
|
*/
|
|
951
937
|
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
|
938
|
+
// <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
|
|
952
939
|
/**
|
|
953
940
|
* Color of the user (in chat)
|
|
954
941
|
*
|
|
@@ -1059,7 +1046,7 @@ function $deepFreeze(objectValue) {
|
|
|
1059
1046
|
function getErrorReportUrl(error) {
|
|
1060
1047
|
const report = {
|
|
1061
1048
|
title: `🐜 Error report from ${NAME}`,
|
|
1062
|
-
body: spaceTrim((block) => `
|
|
1049
|
+
body: spaceTrim$2((block) => `
|
|
1063
1050
|
|
|
1064
1051
|
|
|
1065
1052
|
\`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
|
|
@@ -1217,7 +1204,7 @@ function checkSerializableAsJson(options) {
|
|
|
1217
1204
|
}
|
|
1218
1205
|
else if (typeof value === 'object') {
|
|
1219
1206
|
if (value instanceof Date) {
|
|
1220
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1207
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1221
1208
|
\`${name}\` is Date
|
|
1222
1209
|
|
|
1223
1210
|
Use \`string_date_iso8601\` instead
|
|
@@ -1236,7 +1223,7 @@ function checkSerializableAsJson(options) {
|
|
|
1236
1223
|
throw new UnexpectedError(`${name} is RegExp`);
|
|
1237
1224
|
}
|
|
1238
1225
|
else if (value instanceof Error) {
|
|
1239
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1226
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1240
1227
|
\`${name}\` is unserialized Error
|
|
1241
1228
|
|
|
1242
1229
|
Use function \`serializeError\`
|
|
@@ -1259,7 +1246,7 @@ function checkSerializableAsJson(options) {
|
|
|
1259
1246
|
}
|
|
1260
1247
|
catch (error) {
|
|
1261
1248
|
assertsError(error);
|
|
1262
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1249
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1263
1250
|
\`${name}\` is not serializable
|
|
1264
1251
|
|
|
1265
1252
|
${block(error.stack || error.message)}
|
|
@@ -1291,7 +1278,7 @@ function checkSerializableAsJson(options) {
|
|
|
1291
1278
|
}
|
|
1292
1279
|
}
|
|
1293
1280
|
else {
|
|
1294
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1281
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1295
1282
|
\`${name}\` is unknown type
|
|
1296
1283
|
|
|
1297
1284
|
Additional message for \`${name}\`:
|
|
@@ -1321,7 +1308,7 @@ function deepClone(objectValue) {
|
|
|
1321
1308
|
TODO: [🧠] Is there a better implementation?
|
|
1322
1309
|
> const propertyNames = Object.getOwnPropertyNames(objectValue);
|
|
1323
1310
|
> for (const propertyName of propertyNames) {
|
|
1324
|
-
> const value = (objectValue as
|
|
1311
|
+
> const value = (objectValue as chococake)[propertyName];
|
|
1325
1312
|
> if (value && typeof value === 'object') {
|
|
1326
1313
|
> deepClone(value);
|
|
1327
1314
|
> }
|
|
@@ -1394,6 +1381,8 @@ exportJson({
|
|
|
1394
1381
|
/**
|
|
1395
1382
|
* Normalizes a given text to camelCase format.
|
|
1396
1383
|
*
|
|
1384
|
+
* Note: [🔂] This function is idempotent.
|
|
1385
|
+
*
|
|
1397
1386
|
* @param text The text to be normalized.
|
|
1398
1387
|
* @param _isFirstLetterCapital Whether the first letter should be capitalized.
|
|
1399
1388
|
* @returns The camelCase formatted string.
|
|
@@ -1709,6 +1698,8 @@ function removeDiacritics(input) {
|
|
|
1709
1698
|
/**
|
|
1710
1699
|
* Converts a given text to kebab-case format.
|
|
1711
1700
|
*
|
|
1701
|
+
* Note: [🔂] This function is idempotent.
|
|
1702
|
+
*
|
|
1712
1703
|
* @param text The text to be converted.
|
|
1713
1704
|
* @returns The kebab-case formatted string.
|
|
1714
1705
|
* @example 'hello-world'
|
|
@@ -1794,6 +1785,7 @@ class ParseError extends Error {
|
|
|
1794
1785
|
/**
|
|
1795
1786
|
* Generates random token
|
|
1796
1787
|
*
|
|
1788
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
1797
1789
|
* Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
|
|
1798
1790
|
*
|
|
1799
1791
|
* @private internal helper function
|
|
@@ -1803,6 +1795,7 @@ function $randomToken(randomness) {
|
|
|
1803
1795
|
return randomBytes(randomness).toString('hex');
|
|
1804
1796
|
}
|
|
1805
1797
|
/**
|
|
1798
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
1806
1799
|
* TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
1807
1800
|
*/
|
|
1808
1801
|
|
|
@@ -2136,6 +2129,9 @@ function nameToUriParts(name) {
|
|
|
2136
2129
|
}
|
|
2137
2130
|
|
|
2138
2131
|
/**
|
|
2132
|
+
* Normalizes a given text to PascalCase format.
|
|
2133
|
+
*
|
|
2134
|
+
* Note: [🔂] This function is idempotent.
|
|
2139
2135
|
*
|
|
2140
2136
|
* @param text @public exported from `@promptbook/utils`
|
|
2141
2137
|
* @returns
|
|
@@ -2353,7 +2349,7 @@ function extractAllBlocksFromMarkdown(markdown) {
|
|
|
2353
2349
|
function extractOneBlockFromMarkdown(markdown) {
|
|
2354
2350
|
const codeBlocks = extractAllBlocksFromMarkdown(markdown);
|
|
2355
2351
|
if (codeBlocks.length !== 1) {
|
|
2356
|
-
throw new ParseError(spaceTrim((block) => `
|
|
2352
|
+
throw new ParseError(spaceTrim$2((block) => `
|
|
2357
2353
|
There should be exactly 1 code block in task section, found ${codeBlocks.length} code blocks
|
|
2358
2354
|
|
|
2359
2355
|
${block(codeBlocks.map((block, i) => `Block ${i + 1}:\n${block.content}`).join('\n\n\n'))}
|
|
@@ -2474,8 +2470,8 @@ class JavascriptEvalExecutionTools {
|
|
|
2474
2470
|
}
|
|
2475
2471
|
// Note: [💎]
|
|
2476
2472
|
// Note: Using direct eval, following variables are in same scope as eval call so they are accessible from inside the evaluated script:
|
|
2477
|
-
const spaceTrim
|
|
2478
|
-
$preserve(spaceTrim
|
|
2473
|
+
const spaceTrim = (_) => spaceTrim$2(_);
|
|
2474
|
+
$preserve(spaceTrim);
|
|
2479
2475
|
const removeQuotes$1 = removeQuotes;
|
|
2480
2476
|
$preserve(removeQuotes$1);
|
|
2481
2477
|
const unwrapResult$1 = unwrapResult;
|
|
@@ -2528,7 +2524,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2528
2524
|
// TODO: DRY [🍯]
|
|
2529
2525
|
const buildinFunctions = {
|
|
2530
2526
|
// TODO: [🍯] DRY all these functions across the file
|
|
2531
|
-
spaceTrim
|
|
2527
|
+
spaceTrim,
|
|
2532
2528
|
removeQuotes: removeQuotes$1,
|
|
2533
2529
|
unwrapResult: unwrapResult$1,
|
|
2534
2530
|
trimEndOfCodeBlock: trimEndOfCodeBlock$1,
|
|
@@ -2565,7 +2561,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2565
2561
|
.join('\n');
|
|
2566
2562
|
// script = templateParameters(script, parameters);
|
|
2567
2563
|
// <- TODO: [🧠][🥳] Should be this is one of two variants how to use parameters in script
|
|
2568
|
-
const statementToEvaluate = spaceTrim((block) => `
|
|
2564
|
+
const statementToEvaluate = spaceTrim$2((block) => `
|
|
2569
2565
|
|
|
2570
2566
|
// Build-in functions:
|
|
2571
2567
|
${block(buildinFunctionsStatement)}
|
|
@@ -2580,7 +2576,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2580
2576
|
(()=>{ ${script} })()
|
|
2581
2577
|
`);
|
|
2582
2578
|
if (this.options.isVerbose) {
|
|
2583
|
-
console.info(spaceTrim((block) => `
|
|
2579
|
+
console.info(spaceTrim$2((block) => `
|
|
2584
2580
|
🚀 Evaluating ${scriptLanguage} script:
|
|
2585
2581
|
|
|
2586
2582
|
${block(statementToEvaluate)}`));
|
|
@@ -2602,7 +2598,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2602
2598
|
To: [PipelineExecutionError: Parameter `{thing}` is not defined],
|
|
2603
2599
|
*/
|
|
2604
2600
|
if (!statementToEvaluate.includes(undefinedName + '(')) {
|
|
2605
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
2601
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
2606
2602
|
|
|
2607
2603
|
Parameter \`{${undefinedName}}\` is not defined
|
|
2608
2604
|
|
|
@@ -2624,7 +2620,7 @@ class JavascriptEvalExecutionTools {
|
|
|
2624
2620
|
`));
|
|
2625
2621
|
}
|
|
2626
2622
|
else {
|
|
2627
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
2623
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
2628
2624
|
Function ${undefinedName}() is not defined
|
|
2629
2625
|
|
|
2630
2626
|
- Make sure that the function is one of built-in functions
|
|
@@ -2674,7 +2670,7 @@ const reverse = (str) => str.split('').reverse().join('');
|
|
|
2674
2670
|
* @public exported from `@promptbook/javascript`
|
|
2675
2671
|
*/
|
|
2676
2672
|
const POSTPROCESSING_FUNCTIONS = {
|
|
2677
|
-
spaceTrim,
|
|
2673
|
+
spaceTrim: spaceTrim$2,
|
|
2678
2674
|
removeQuotes,
|
|
2679
2675
|
unwrapResult,
|
|
2680
2676
|
trimEndOfCodeBlock,
|