@promptbook/fake-llm 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 +120 -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 +5 -5
- package/umd/index.umd.js +120 -123
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
- package/esm/typings/src/book-components/BookEditor/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
|
|
|
@@ -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.103.0-
|
|
23
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-100';
|
|
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
|
|
@@ -397,6 +408,28 @@ class Color {
|
|
|
397
408
|
throw new Error(`Can not create color from given object`);
|
|
398
409
|
}
|
|
399
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* Creates a new Color instance from miscellaneous formats
|
|
413
|
+
* It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
|
|
414
|
+
*
|
|
415
|
+
* @param color
|
|
416
|
+
* @returns Color object
|
|
417
|
+
*/
|
|
418
|
+
static fromSafe(color) {
|
|
419
|
+
try {
|
|
420
|
+
return Color.from(color);
|
|
421
|
+
}
|
|
422
|
+
catch (error) {
|
|
423
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
424
|
+
console.warn(spaceTrim((block) => `
|
|
425
|
+
Color.fromSafe error:
|
|
426
|
+
${block(error.message)}
|
|
427
|
+
|
|
428
|
+
Returning default PROMPTBOOK_COLOR.
|
|
429
|
+
`));
|
|
430
|
+
return Color.fromString('promptbook');
|
|
431
|
+
}
|
|
432
|
+
}
|
|
400
433
|
/**
|
|
401
434
|
* Creates a new Color instance from miscellaneous string formats
|
|
402
435
|
*
|
|
@@ -464,6 +497,9 @@ class Color {
|
|
|
464
497
|
if (hex.length === 3) {
|
|
465
498
|
return Color.fromHex3(hex);
|
|
466
499
|
}
|
|
500
|
+
if (hex.length === 4) {
|
|
501
|
+
return Color.fromHex4(hex);
|
|
502
|
+
}
|
|
467
503
|
if (hex.length === 6) {
|
|
468
504
|
return Color.fromHex6(hex);
|
|
469
505
|
}
|
|
@@ -484,6 +520,19 @@ class Color {
|
|
|
484
520
|
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
485
521
|
return take(new Color(r, g, b));
|
|
486
522
|
}
|
|
523
|
+
/**
|
|
524
|
+
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
525
|
+
*
|
|
526
|
+
* @param color in hex for example `09df`
|
|
527
|
+
* @returns Color object
|
|
528
|
+
*/
|
|
529
|
+
static fromHex4(hex) {
|
|
530
|
+
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
531
|
+
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
532
|
+
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
533
|
+
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
534
|
+
return take(new Color(r, g, b, a));
|
|
535
|
+
}
|
|
487
536
|
/**
|
|
488
537
|
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
489
538
|
*
|
|
@@ -674,7 +723,8 @@ class Color {
|
|
|
674
723
|
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
|
675
724
|
*/
|
|
676
725
|
static isHexColorString(value) {
|
|
677
|
-
return typeof value === 'string' &&
|
|
726
|
+
return (typeof value === 'string' &&
|
|
727
|
+
/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
|
|
678
728
|
}
|
|
679
729
|
/**
|
|
680
730
|
* Creates new Color object
|
|
@@ -789,6 +839,23 @@ class Color {
|
|
|
789
839
|
* TODO: Maybe connect with textures
|
|
790
840
|
*/
|
|
791
841
|
|
|
842
|
+
/**
|
|
843
|
+
* Makes color transformer which returns a grayscale version of the color
|
|
844
|
+
*
|
|
845
|
+
* @param amount from 0 to 1
|
|
846
|
+
*
|
|
847
|
+
* @public exported from `@promptbook/color`
|
|
848
|
+
*/
|
|
849
|
+
function grayscale(amount) {
|
|
850
|
+
return ({ red, green, blue, alpha }) => {
|
|
851
|
+
const average = (red + green + blue) / 3;
|
|
852
|
+
red = Math.round(average * amount + red * (1 - amount));
|
|
853
|
+
green = Math.round(average * amount + green * (1 - amount));
|
|
854
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
|
855
|
+
return Color.fromValues(red, green, blue, alpha);
|
|
856
|
+
};
|
|
857
|
+
}
|
|
858
|
+
|
|
792
859
|
/**
|
|
793
860
|
* Converts HSL values to RGB values
|
|
794
861
|
*
|
|
@@ -904,102 +971,6 @@ function lighten(amount) {
|
|
|
904
971
|
* TODO: Maybe implement by mix+hsl
|
|
905
972
|
*/
|
|
906
973
|
|
|
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
974
|
/**
|
|
1004
975
|
* Makes color transformer which saturate the given color
|
|
1005
976
|
*
|
|
@@ -1048,16 +1019,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
|
|
|
1048
1019
|
*
|
|
1049
1020
|
* @public exported from `@promptbook/core`
|
|
1050
1021
|
*/
|
|
1051
|
-
const PROMPTBOOK_COLOR = Color.
|
|
1052
|
-
// <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1022
|
+
const PROMPTBOOK_COLOR = Color.fromString('promptbook');
|
|
1023
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1024
|
+
/**
|
|
1025
|
+
* Colors for syntax highlighting in the `<BookEditor/>`
|
|
1026
|
+
*
|
|
1027
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
1028
|
+
*
|
|
1029
|
+
* @public exported from `@promptbook/core`
|
|
1030
|
+
*/
|
|
1031
|
+
({
|
|
1032
|
+
TITLE: Color.fromHex('#244EA8'),
|
|
1033
|
+
LINE: Color.fromHex('#eeeeee'),
|
|
1034
|
+
SEPARATOR: Color.fromHex('#cccccc'),
|
|
1035
|
+
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
1036
|
+
PARAMETER: Color.fromHex('#8e44ad'),
|
|
1037
|
+
});
|
|
1038
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1053
1039
|
/**
|
|
1054
|
-
*
|
|
1040
|
+
* Chat color of the Promptbook (in chat)
|
|
1055
1041
|
*
|
|
1056
1042
|
* TODO: [🗽] Unite branding and make single place for it
|
|
1057
1043
|
*
|
|
1058
1044
|
* @public exported from `@promptbook/core`
|
|
1059
1045
|
*/
|
|
1060
1046
|
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
|
1047
|
+
// <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
|
|
1061
1048
|
/**
|
|
1062
1049
|
* Color of the user (in chat)
|
|
1063
1050
|
*
|
|
@@ -1147,7 +1134,7 @@ function orderJson(options) {
|
|
|
1147
1134
|
function getErrorReportUrl(error) {
|
|
1148
1135
|
const report = {
|
|
1149
1136
|
title: `🐜 Error report from ${NAME}`,
|
|
1150
|
-
body: spaceTrim((block) => `
|
|
1137
|
+
body: spaceTrim$2((block) => `
|
|
1151
1138
|
|
|
1152
1139
|
|
|
1153
1140
|
\`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
|
|
@@ -1305,7 +1292,7 @@ function checkSerializableAsJson(options) {
|
|
|
1305
1292
|
}
|
|
1306
1293
|
else if (typeof value === 'object') {
|
|
1307
1294
|
if (value instanceof Date) {
|
|
1308
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1295
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1309
1296
|
\`${name}\` is Date
|
|
1310
1297
|
|
|
1311
1298
|
Use \`string_date_iso8601\` instead
|
|
@@ -1324,7 +1311,7 @@ function checkSerializableAsJson(options) {
|
|
|
1324
1311
|
throw new UnexpectedError(`${name} is RegExp`);
|
|
1325
1312
|
}
|
|
1326
1313
|
else if (value instanceof Error) {
|
|
1327
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1314
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1328
1315
|
\`${name}\` is unserialized Error
|
|
1329
1316
|
|
|
1330
1317
|
Use function \`serializeError\`
|
|
@@ -1347,7 +1334,7 @@ function checkSerializableAsJson(options) {
|
|
|
1347
1334
|
}
|
|
1348
1335
|
catch (error) {
|
|
1349
1336
|
assertsError(error);
|
|
1350
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1337
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1351
1338
|
\`${name}\` is not serializable
|
|
1352
1339
|
|
|
1353
1340
|
${block(error.stack || error.message)}
|
|
@@ -1379,7 +1366,7 @@ function checkSerializableAsJson(options) {
|
|
|
1379
1366
|
}
|
|
1380
1367
|
}
|
|
1381
1368
|
else {
|
|
1382
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1369
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1383
1370
|
\`${name}\` is unknown type
|
|
1384
1371
|
|
|
1385
1372
|
Additional message for \`${name}\`:
|
|
@@ -1409,7 +1396,7 @@ function deepClone(objectValue) {
|
|
|
1409
1396
|
TODO: [🧠] Is there a better implementation?
|
|
1410
1397
|
> const propertyNames = Object.getOwnPropertyNames(objectValue);
|
|
1411
1398
|
> for (const propertyName of propertyNames) {
|
|
1412
|
-
> const value = (objectValue as
|
|
1399
|
+
> const value = (objectValue as chococake)[propertyName];
|
|
1413
1400
|
> if (value && typeof value === 'object') {
|
|
1414
1401
|
> deepClone(value);
|
|
1415
1402
|
> }
|
|
@@ -1513,6 +1500,7 @@ class LimitReachedError extends Error {
|
|
|
1513
1500
|
/**
|
|
1514
1501
|
* Generates random token
|
|
1515
1502
|
*
|
|
1503
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
1516
1504
|
* Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
|
|
1517
1505
|
*
|
|
1518
1506
|
* @private internal helper function
|
|
@@ -1522,6 +1510,7 @@ function $randomToken(randomness) {
|
|
|
1522
1510
|
return randomBytes(randomness).toString('hex');
|
|
1523
1511
|
}
|
|
1524
1512
|
/**
|
|
1513
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
1525
1514
|
* TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
1526
1515
|
*/
|
|
1527
1516
|
|
|
@@ -1889,10 +1878,13 @@ const LINES_PER_STANDARD_PAGE = 44;
|
|
|
1889
1878
|
* @public exported from `@promptbook/utils`
|
|
1890
1879
|
*/
|
|
1891
1880
|
function countLines(text) {
|
|
1881
|
+
if (text === '') {
|
|
1882
|
+
return 0;
|
|
1883
|
+
}
|
|
1892
1884
|
text = text.replace('\r\n', '\n');
|
|
1893
1885
|
text = text.replace('\r', '\n');
|
|
1894
1886
|
const lines = text.split('\n');
|
|
1895
|
-
return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
|
|
1887
|
+
return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
|
|
1896
1888
|
}
|
|
1897
1889
|
/**
|
|
1898
1890
|
* TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
|
|
@@ -2300,6 +2292,8 @@ function isPassingExpectations(expectations, value) {
|
|
|
2300
2292
|
/**
|
|
2301
2293
|
* Normalizes a given text to camelCase format.
|
|
2302
2294
|
*
|
|
2295
|
+
* Note: [🔂] This function is idempotent.
|
|
2296
|
+
*
|
|
2303
2297
|
* @param text The text to be normalized.
|
|
2304
2298
|
* @param _isFirstLetterCapital Whether the first letter should be capitalized.
|
|
2305
2299
|
* @returns The camelCase formatted string.
|
|
@@ -2352,6 +2346,8 @@ function normalizeTo_camelCase(text, _isFirstLetterCapital = false) {
|
|
|
2352
2346
|
/**
|
|
2353
2347
|
* Converts a given text to kebab-case format.
|
|
2354
2348
|
*
|
|
2349
|
+
* Note: [🔂] This function is idempotent.
|
|
2350
|
+
*
|
|
2355
2351
|
* @param text The text to be converted.
|
|
2356
2352
|
* @returns The kebab-case formatted string.
|
|
2357
2353
|
* @example 'hello-world'
|
|
@@ -2664,6 +2660,9 @@ function nameToUriParts(name) {
|
|
|
2664
2660
|
}
|
|
2665
2661
|
|
|
2666
2662
|
/**
|
|
2663
|
+
* Normalizes a given text to PascalCase format.
|
|
2664
|
+
*
|
|
2665
|
+
* Note: [🔂] This function is idempotent.
|
|
2667
2666
|
*
|
|
2668
2667
|
* @param text @public exported from `@promptbook/utils`
|
|
2669
2668
|
* @returns
|
|
@@ -2881,7 +2880,7 @@ function extractAllBlocksFromMarkdown(markdown) {
|
|
|
2881
2880
|
function extractOneBlockFromMarkdown(markdown) {
|
|
2882
2881
|
const codeBlocks = extractAllBlocksFromMarkdown(markdown);
|
|
2883
2882
|
if (codeBlocks.length !== 1) {
|
|
2884
|
-
throw new ParseError(spaceTrim((block) => `
|
|
2883
|
+
throw new ParseError(spaceTrim$2((block) => `
|
|
2885
2884
|
There should be exactly 1 code block in task section, found ${codeBlocks.length} code blocks
|
|
2886
2885
|
|
|
2887
2886
|
${block(codeBlocks.map((block, i) => `Block ${i + 1}:\n${block.content}`).join('\n\n\n'))}
|
|
@@ -3002,8 +3001,8 @@ class JavascriptEvalExecutionTools {
|
|
|
3002
3001
|
}
|
|
3003
3002
|
// Note: [💎]
|
|
3004
3003
|
// 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
|
|
3004
|
+
const spaceTrim = (_) => spaceTrim$2(_);
|
|
3005
|
+
$preserve(spaceTrim);
|
|
3007
3006
|
const removeQuotes$1 = removeQuotes;
|
|
3008
3007
|
$preserve(removeQuotes$1);
|
|
3009
3008
|
const unwrapResult$1 = unwrapResult;
|
|
@@ -3056,7 +3055,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3056
3055
|
// TODO: DRY [🍯]
|
|
3057
3056
|
const buildinFunctions = {
|
|
3058
3057
|
// TODO: [🍯] DRY all these functions across the file
|
|
3059
|
-
spaceTrim
|
|
3058
|
+
spaceTrim,
|
|
3060
3059
|
removeQuotes: removeQuotes$1,
|
|
3061
3060
|
unwrapResult: unwrapResult$1,
|
|
3062
3061
|
trimEndOfCodeBlock: trimEndOfCodeBlock$1,
|
|
@@ -3093,7 +3092,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3093
3092
|
.join('\n');
|
|
3094
3093
|
// script = templateParameters(script, parameters);
|
|
3095
3094
|
// <- TODO: [🧠][🥳] Should be this is one of two variants how to use parameters in script
|
|
3096
|
-
const statementToEvaluate = spaceTrim((block) => `
|
|
3095
|
+
const statementToEvaluate = spaceTrim$2((block) => `
|
|
3097
3096
|
|
|
3098
3097
|
// Build-in functions:
|
|
3099
3098
|
${block(buildinFunctionsStatement)}
|
|
@@ -3108,7 +3107,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3108
3107
|
(()=>{ ${script} })()
|
|
3109
3108
|
`);
|
|
3110
3109
|
if (this.options.isVerbose) {
|
|
3111
|
-
console.info(spaceTrim((block) => `
|
|
3110
|
+
console.info(spaceTrim$2((block) => `
|
|
3112
3111
|
🚀 Evaluating ${scriptLanguage} script:
|
|
3113
3112
|
|
|
3114
3113
|
${block(statementToEvaluate)}`));
|
|
@@ -3130,7 +3129,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3130
3129
|
To: [PipelineExecutionError: Parameter `{thing}` is not defined],
|
|
3131
3130
|
*/
|
|
3132
3131
|
if (!statementToEvaluate.includes(undefinedName + '(')) {
|
|
3133
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
3132
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
3134
3133
|
|
|
3135
3134
|
Parameter \`{${undefinedName}}\` is not defined
|
|
3136
3135
|
|
|
@@ -3152,7 +3151,7 @@ class JavascriptEvalExecutionTools {
|
|
|
3152
3151
|
`));
|
|
3153
3152
|
}
|
|
3154
3153
|
else {
|
|
3155
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
3154
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
3156
3155
|
Function ${undefinedName}() is not defined
|
|
3157
3156
|
|
|
3158
3157
|
- Make sure that the function is one of built-in functions
|