@promptbook/ollama 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 +127 -127
- 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 +126 -126
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-2.0/commitments/index.d.ts +0 -60
- package/esm/typings/src/book-components/BookEditor/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
|
|
|
@@ -72,11 +68,15 @@ The main challenge is to narrow it down, constrain it, set the proper **context,
|
|
|
72
68
|
|
|
73
69
|
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.
|
|
74
70
|
|
|
71
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
75
72
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
/>
|
|
73
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
74
|
+
<br/>
|
|
75
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
76
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
77
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
78
|
+
|
|
79
|
+
</td></tr></table>
|
|
80
80
|
|
|
81
81
|
<div style="page-break-after: always;"></div>
|
|
82
82
|
|
|
@@ -90,11 +90,15 @@ You can look at it as prompting (or writing a system message), but decorated by
|
|
|
90
90
|
|
|
91
91
|
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.
|
|
92
92
|
|
|
93
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
94
|
+
|
|
95
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
96
|
+
<br/>
|
|
97
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
98
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
99
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
93
100
|
|
|
94
|
-
|
|
95
|
-
alt="Paul Smith & Associés Book"
|
|
96
|
-
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"
|
|
97
|
-
/>
|
|
101
|
+
</td></tr></table>
|
|
98
102
|
|
|
99
103
|
#### `Knowledge` commitment
|
|
100
104
|
|
|
@@ -104,11 +108,18 @@ This can include domain-specific knowledge, company policies, or any other relev
|
|
|
104
108
|
|
|
105
109
|
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.
|
|
106
110
|
|
|
111
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
107
112
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
/>
|
|
113
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
114
|
+
<br/>
|
|
115
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
116
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
117
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
118
|
+
<br/>
|
|
119
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
120
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
121
|
+
|
|
122
|
+
</td></tr></table>
|
|
112
123
|
|
|
113
124
|
#### `Rule` commitment
|
|
114
125
|
|
|
@@ -116,21 +127,42 @@ Rules will enforce specific behaviors or constraints on the AI's responses. This
|
|
|
116
127
|
|
|
117
128
|
Depending on rule strictness, Promptbook will either propagate it to the prompt or use other techniques, like adversary agent, to enforce it.
|
|
118
129
|
|
|
130
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
131
|
+
|
|
132
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
133
|
+
<br/>
|
|
134
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
135
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
136
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
137
|
+
<br/>
|
|
138
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
139
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
140
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
141
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
142
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
119
143
|
|
|
120
|
-
|
|
121
|
-
alt="Paul Smith & Associés Book"
|
|
122
|
-
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"
|
|
123
|
-
/>
|
|
144
|
+
</td></tr></table>
|
|
124
145
|
|
|
125
146
|
#### `Action` commitment
|
|
126
147
|
|
|
127
148
|
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.
|
|
128
149
|
|
|
150
|
+
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
129
151
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
/>
|
|
152
|
+
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
153
|
+
<br/>
|
|
154
|
+
**PERSONA** You are a company lawyer.<br/>
|
|
155
|
+
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
156
|
+
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
157
|
+
<br/>
|
|
158
|
+
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
159
|
+
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
160
|
+
**RULE** Never provide legal advice about criminal law.<br/>
|
|
161
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
162
|
+
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
163
|
+
**ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
|
|
164
|
+
|
|
165
|
+
</td></tr></table>
|
|
134
166
|
|
|
135
167
|
[Read more about the language](./BLUEPRINT.md)
|
|
136
168
|
|
|
@@ -177,14 +209,10 @@ Now you want to use it. There are several ways how to write your first book:
|
|
|
177
209
|
|
|
178
210
|
We have written ai asistant in book who can help you with writing your first book.
|
|
179
211
|
|
|
180
|
-
|
|
181
|
-
|
|
182
212
|
#### Your AI twin
|
|
183
213
|
|
|
184
214
|
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.
|
|
185
215
|
|
|
186
|
-
|
|
187
|
-
|
|
188
216
|
#### AI persona workpool
|
|
189
217
|
|
|
190
218
|
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.
|
|
@@ -304,8 +332,6 @@ Join our growing community of developers and users:
|
|
|
304
332
|
|
|
305
333
|
|
|
306
334
|
|
|
307
|
-
|
|
308
|
-
|
|
309
335
|
## 📚 Documentation
|
|
310
336
|
|
|
311
337
|
See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
|
|
@@ -382,8 +408,6 @@ The following glossary is used to clarify certain concepts:
|
|
|
382
408
|
|
|
383
409
|
_Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
|
|
384
410
|
|
|
385
|
-
|
|
386
|
-
|
|
387
411
|
### 💯 Core concepts
|
|
388
412
|
|
|
389
413
|
- [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
|
package/esm/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import spaceTrim, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
1
|
+
import spaceTrim$2, { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
2
2
|
import { randomBytes } from 'crypto';
|
|
3
3
|
import Bottleneck from 'bottleneck';
|
|
4
4
|
import colors from 'colors';
|
|
@@ -11,14 +11,14 @@ import OpenAI from 'openai';
|
|
|
11
11
|
* @generated
|
|
12
12
|
* @see https://github.com/webgptorg/book
|
|
13
13
|
*/
|
|
14
|
-
const BOOK_LANGUAGE_VERSION = '
|
|
14
|
+
const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
15
15
|
/**
|
|
16
16
|
* The version of the Promptbook engine
|
|
17
17
|
*
|
|
18
18
|
* @generated
|
|
19
19
|
* @see https://github.com/webgptorg/promptbook
|
|
20
20
|
*/
|
|
21
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-
|
|
21
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-100';
|
|
22
22
|
/**
|
|
23
23
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
24
24
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -174,6 +174,17 @@ function orderJson(options) {
|
|
|
174
174
|
return orderedValue;
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
+
/**
|
|
178
|
+
* Trims string from all 4 sides
|
|
179
|
+
*
|
|
180
|
+
* Note: This is a re-exported function from the `spacetrim` package which is
|
|
181
|
+
* Developed by same author @hejny as this package
|
|
182
|
+
*
|
|
183
|
+
* @public exported from `@promptbook/utils`
|
|
184
|
+
* @see https://github.com/hejny/spacetrim#usage
|
|
185
|
+
*/
|
|
186
|
+
const spaceTrim = spaceTrim$1;
|
|
187
|
+
|
|
177
188
|
/**
|
|
178
189
|
* @private util of `@promptbook/color`
|
|
179
190
|
* @de
|
|
@@ -222,6 +233,7 @@ function take(initialValue) {
|
|
|
222
233
|
* @public exported from `@promptbook/color`
|
|
223
234
|
*/
|
|
224
235
|
const CSS_COLORS = {
|
|
236
|
+
promptbook: '#79EAFD',
|
|
225
237
|
transparent: 'rgba(0,0,0,0)',
|
|
226
238
|
aliceblue: '#f0f8ff',
|
|
227
239
|
antiquewhite: '#faebd7',
|
|
@@ -403,9 +415,6 @@ function checkChannelValue(channelName, value) {
|
|
|
403
415
|
throw new Error(`${channelName} channel is greater than 255, it is ${value}`);
|
|
404
416
|
}
|
|
405
417
|
}
|
|
406
|
-
/**
|
|
407
|
-
* TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
|
|
408
|
-
*/
|
|
409
418
|
|
|
410
419
|
/**
|
|
411
420
|
* Color object represents an RGB color with alpha channel
|
|
@@ -440,6 +449,28 @@ class Color {
|
|
|
440
449
|
throw new Error(`Can not create color from given object`);
|
|
441
450
|
}
|
|
442
451
|
}
|
|
452
|
+
/**
|
|
453
|
+
* Creates a new Color instance from miscellaneous formats
|
|
454
|
+
* It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
|
|
455
|
+
*
|
|
456
|
+
* @param color
|
|
457
|
+
* @returns Color object
|
|
458
|
+
*/
|
|
459
|
+
static fromSafe(color) {
|
|
460
|
+
try {
|
|
461
|
+
return Color.from(color);
|
|
462
|
+
}
|
|
463
|
+
catch (error) {
|
|
464
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
465
|
+
console.warn(spaceTrim((block) => `
|
|
466
|
+
Color.fromSafe error:
|
|
467
|
+
${block(error.message)}
|
|
468
|
+
|
|
469
|
+
Returning default PROMPTBOOK_COLOR.
|
|
470
|
+
`));
|
|
471
|
+
return Color.fromString('promptbook');
|
|
472
|
+
}
|
|
473
|
+
}
|
|
443
474
|
/**
|
|
444
475
|
* Creates a new Color instance from miscellaneous string formats
|
|
445
476
|
*
|
|
@@ -507,6 +538,9 @@ class Color {
|
|
|
507
538
|
if (hex.length === 3) {
|
|
508
539
|
return Color.fromHex3(hex);
|
|
509
540
|
}
|
|
541
|
+
if (hex.length === 4) {
|
|
542
|
+
return Color.fromHex4(hex);
|
|
543
|
+
}
|
|
510
544
|
if (hex.length === 6) {
|
|
511
545
|
return Color.fromHex6(hex);
|
|
512
546
|
}
|
|
@@ -527,6 +561,19 @@ class Color {
|
|
|
527
561
|
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
528
562
|
return take(new Color(r, g, b));
|
|
529
563
|
}
|
|
564
|
+
/**
|
|
565
|
+
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
566
|
+
*
|
|
567
|
+
* @param color in hex for example `09df`
|
|
568
|
+
* @returns Color object
|
|
569
|
+
*/
|
|
570
|
+
static fromHex4(hex) {
|
|
571
|
+
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
572
|
+
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
573
|
+
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
574
|
+
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
575
|
+
return take(new Color(r, g, b, a));
|
|
576
|
+
}
|
|
530
577
|
/**
|
|
531
578
|
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
532
579
|
*
|
|
@@ -717,7 +764,8 @@ class Color {
|
|
|
717
764
|
* @returns true if the value is a valid hex color string (e.g., `#009edd`, `#fff`, etc.)
|
|
718
765
|
*/
|
|
719
766
|
static isHexColorString(value) {
|
|
720
|
-
return typeof value === 'string' &&
|
|
767
|
+
return (typeof value === 'string' &&
|
|
768
|
+
/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(value));
|
|
721
769
|
}
|
|
722
770
|
/**
|
|
723
771
|
* Creates new Color object
|
|
@@ -832,6 +880,23 @@ class Color {
|
|
|
832
880
|
* TODO: Maybe connect with textures
|
|
833
881
|
*/
|
|
834
882
|
|
|
883
|
+
/**
|
|
884
|
+
* Makes color transformer which returns a grayscale version of the color
|
|
885
|
+
*
|
|
886
|
+
* @param amount from 0 to 1
|
|
887
|
+
*
|
|
888
|
+
* @public exported from `@promptbook/color`
|
|
889
|
+
*/
|
|
890
|
+
function grayscale(amount) {
|
|
891
|
+
return ({ red, green, blue, alpha }) => {
|
|
892
|
+
const average = (red + green + blue) / 3;
|
|
893
|
+
red = Math.round(average * amount + red * (1 - amount));
|
|
894
|
+
green = Math.round(average * amount + green * (1 - amount));
|
|
895
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
|
896
|
+
return Color.fromValues(red, green, blue, alpha);
|
|
897
|
+
};
|
|
898
|
+
}
|
|
899
|
+
|
|
835
900
|
/**
|
|
836
901
|
* Converts HSL values to RGB values
|
|
837
902
|
*
|
|
@@ -947,102 +1012,6 @@ function lighten(amount) {
|
|
|
947
1012
|
* TODO: Maybe implement by mix+hsl
|
|
948
1013
|
*/
|
|
949
1014
|
|
|
950
|
-
/**
|
|
951
|
-
* Calculates distance between two colors
|
|
952
|
-
*
|
|
953
|
-
* @param color1 first color
|
|
954
|
-
* @param color2 second color
|
|
955
|
-
*
|
|
956
|
-
* Note: This function is inefficient. Use colorDistanceSquared instead if possible.
|
|
957
|
-
*
|
|
958
|
-
* @public exported from `@promptbook/color`
|
|
959
|
-
*/
|
|
960
|
-
/**
|
|
961
|
-
* Calculates distance between two colors without square root
|
|
962
|
-
*
|
|
963
|
-
* @param color1 first color
|
|
964
|
-
* @param color2 second color
|
|
965
|
-
*
|
|
966
|
-
* @public exported from `@promptbook/color`
|
|
967
|
-
*/
|
|
968
|
-
function colorDistanceSquared(color1, color2) {
|
|
969
|
-
const rmean = (color1.red + color2.red) / 2;
|
|
970
|
-
const r = color1.red - color2.red;
|
|
971
|
-
const g = color1.green - color2.green;
|
|
972
|
-
const b = color1.blue - color2.blue;
|
|
973
|
-
const weightR = 2 + rmean / 256;
|
|
974
|
-
const weightG = 4.0;
|
|
975
|
-
const weightB = 2 + (255 - rmean) / 256;
|
|
976
|
-
const distance = weightR * r * r + weightG * g * g + weightB * b * b;
|
|
977
|
-
return distance;
|
|
978
|
-
}
|
|
979
|
-
|
|
980
|
-
/**
|
|
981
|
-
* Makes color transformer which finds the nearest color from the given list
|
|
982
|
-
*
|
|
983
|
-
* @param colors array of colors to choose from
|
|
984
|
-
*
|
|
985
|
-
* @public exported from `@promptbook/color`
|
|
986
|
-
*/
|
|
987
|
-
function nearest(...colors) {
|
|
988
|
-
return (color) => {
|
|
989
|
-
const distances = colors.map((c) => colorDistanceSquared(c, color));
|
|
990
|
-
const minDistance = Math.min(...distances);
|
|
991
|
-
const minIndex = distances.indexOf(minDistance);
|
|
992
|
-
const nearestColor = colors[minIndex];
|
|
993
|
-
return nearestColor;
|
|
994
|
-
};
|
|
995
|
-
}
|
|
996
|
-
|
|
997
|
-
/**
|
|
998
|
-
* Color transformer which returns the negative color
|
|
999
|
-
*
|
|
1000
|
-
* @public exported from `@promptbook/color`
|
|
1001
|
-
*/
|
|
1002
|
-
function negative(color) {
|
|
1003
|
-
const r = 255 - color.red;
|
|
1004
|
-
const g = 255 - color.green;
|
|
1005
|
-
const b = 255 - color.blue;
|
|
1006
|
-
return Color.fromValues(r, g, b, color.alpha);
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
|
-
/**
|
|
1010
|
-
* Makes color transformer which finds the furthest color from the given list
|
|
1011
|
-
*
|
|
1012
|
-
* @param colors array of colors to choose from
|
|
1013
|
-
*
|
|
1014
|
-
* @public exported from `@promptbook/color`
|
|
1015
|
-
*/
|
|
1016
|
-
function furthest(...colors) {
|
|
1017
|
-
return (color) => {
|
|
1018
|
-
const furthestColor = negative(nearest(...colors.map(negative))(color));
|
|
1019
|
-
return furthestColor;
|
|
1020
|
-
};
|
|
1021
|
-
}
|
|
1022
|
-
/**
|
|
1023
|
-
* Makes color transformer which finds the best text color (black or white) for the given background color
|
|
1024
|
-
*
|
|
1025
|
-
* @public exported from `@promptbook/color`
|
|
1026
|
-
*/
|
|
1027
|
-
furthest(Color.get('white'), Color.from('black'));
|
|
1028
|
-
|
|
1029
|
-
/**
|
|
1030
|
-
* Makes color transformer which returns a grayscale version of the color
|
|
1031
|
-
*
|
|
1032
|
-
* @param amount from 0 to 1
|
|
1033
|
-
*
|
|
1034
|
-
* @public exported from `@promptbook/color`
|
|
1035
|
-
*/
|
|
1036
|
-
function grayscale(amount) {
|
|
1037
|
-
return ({ red, green, blue, alpha }) => {
|
|
1038
|
-
const average = (red + green + blue) / 3;
|
|
1039
|
-
red = Math.round(average * amount + red * (1 - amount));
|
|
1040
|
-
green = Math.round(average * amount + green * (1 - amount));
|
|
1041
|
-
blue = Math.round(average * amount + blue * (1 - amount));
|
|
1042
|
-
return Color.fromValues(red, green, blue, alpha);
|
|
1043
|
-
};
|
|
1044
|
-
}
|
|
1045
|
-
|
|
1046
1015
|
/**
|
|
1047
1016
|
* Makes color transformer which saturate the given color
|
|
1048
1017
|
*
|
|
@@ -1091,16 +1060,32 @@ const ADMIN_GITHUB_NAME = 'hejny';
|
|
|
1091
1060
|
*
|
|
1092
1061
|
* @public exported from `@promptbook/core`
|
|
1093
1062
|
*/
|
|
1094
|
-
const PROMPTBOOK_COLOR = Color.
|
|
1095
|
-
// <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1063
|
+
const PROMPTBOOK_COLOR = Color.fromString('promptbook');
|
|
1064
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1096
1065
|
/**
|
|
1097
|
-
*
|
|
1066
|
+
* Colors for syntax highlighting in the `<BookEditor/>`
|
|
1067
|
+
*
|
|
1068
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
1069
|
+
*
|
|
1070
|
+
* @public exported from `@promptbook/core`
|
|
1071
|
+
*/
|
|
1072
|
+
({
|
|
1073
|
+
TITLE: Color.fromHex('#244EA8'),
|
|
1074
|
+
LINE: Color.fromHex('#eeeeee'),
|
|
1075
|
+
SEPARATOR: Color.fromHex('#cccccc'),
|
|
1076
|
+
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
1077
|
+
PARAMETER: Color.fromHex('#8e44ad'),
|
|
1078
|
+
});
|
|
1079
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1080
|
+
/**
|
|
1081
|
+
* Chat color of the Promptbook (in chat)
|
|
1098
1082
|
*
|
|
1099
1083
|
* TODO: [🗽] Unite branding and make single place for it
|
|
1100
1084
|
*
|
|
1101
1085
|
* @public exported from `@promptbook/core`
|
|
1102
1086
|
*/
|
|
1103
1087
|
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
|
1088
|
+
// <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
|
|
1104
1089
|
/**
|
|
1105
1090
|
* Color of the user (in chat)
|
|
1106
1091
|
*
|
|
@@ -1184,7 +1169,7 @@ const API_REQUEST_TIMEOUT = parseInt(process.env.API_REQUEST_TIMEOUT || '90000')
|
|
|
1184
1169
|
function getErrorReportUrl(error) {
|
|
1185
1170
|
const report = {
|
|
1186
1171
|
title: `🐜 Error report from ${NAME}`,
|
|
1187
|
-
body: spaceTrim((block) => `
|
|
1172
|
+
body: spaceTrim$2((block) => `
|
|
1188
1173
|
|
|
1189
1174
|
|
|
1190
1175
|
\`${error.name || 'Error'}\` has occurred in the [${NAME}], please look into it @${ADMIN_GITHUB_NAME}.
|
|
@@ -1342,7 +1327,7 @@ function checkSerializableAsJson(options) {
|
|
|
1342
1327
|
}
|
|
1343
1328
|
else if (typeof value === 'object') {
|
|
1344
1329
|
if (value instanceof Date) {
|
|
1345
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1330
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1346
1331
|
\`${name}\` is Date
|
|
1347
1332
|
|
|
1348
1333
|
Use \`string_date_iso8601\` instead
|
|
@@ -1361,7 +1346,7 @@ function checkSerializableAsJson(options) {
|
|
|
1361
1346
|
throw new UnexpectedError(`${name} is RegExp`);
|
|
1362
1347
|
}
|
|
1363
1348
|
else if (value instanceof Error) {
|
|
1364
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1349
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1365
1350
|
\`${name}\` is unserialized Error
|
|
1366
1351
|
|
|
1367
1352
|
Use function \`serializeError\`
|
|
@@ -1384,7 +1369,7 @@ function checkSerializableAsJson(options) {
|
|
|
1384
1369
|
}
|
|
1385
1370
|
catch (error) {
|
|
1386
1371
|
assertsError(error);
|
|
1387
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1372
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1388
1373
|
\`${name}\` is not serializable
|
|
1389
1374
|
|
|
1390
1375
|
${block(error.stack || error.message)}
|
|
@@ -1416,7 +1401,7 @@ function checkSerializableAsJson(options) {
|
|
|
1416
1401
|
}
|
|
1417
1402
|
}
|
|
1418
1403
|
else {
|
|
1419
|
-
throw new UnexpectedError(spaceTrim((block) => `
|
|
1404
|
+
throw new UnexpectedError(spaceTrim$2((block) => `
|
|
1420
1405
|
\`${name}\` is unknown type
|
|
1421
1406
|
|
|
1422
1407
|
Additional message for \`${name}\`:
|
|
@@ -1446,7 +1431,7 @@ function deepClone(objectValue) {
|
|
|
1446
1431
|
TODO: [🧠] Is there a better implementation?
|
|
1447
1432
|
> const propertyNames = Object.getOwnPropertyNames(objectValue);
|
|
1448
1433
|
> for (const propertyName of propertyNames) {
|
|
1449
|
-
> const value = (objectValue as
|
|
1434
|
+
> const value = (objectValue as chococake)[propertyName];
|
|
1450
1435
|
> if (value && typeof value === 'object') {
|
|
1451
1436
|
> deepClone(value);
|
|
1452
1437
|
> }
|
|
@@ -1543,6 +1528,7 @@ exportJson({
|
|
|
1543
1528
|
/**
|
|
1544
1529
|
* Generates random token
|
|
1545
1530
|
*
|
|
1531
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
1546
1532
|
* Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
|
|
1547
1533
|
*
|
|
1548
1534
|
* @private internal helper function
|
|
@@ -1552,6 +1538,7 @@ function $randomToken(randomness) {
|
|
|
1552
1538
|
return randomBytes(randomness).toString('hex');
|
|
1553
1539
|
}
|
|
1554
1540
|
/**
|
|
1541
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
1555
1542
|
* TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
1556
1543
|
*/
|
|
1557
1544
|
|
|
@@ -1618,10 +1605,13 @@ const LINES_PER_STANDARD_PAGE = 44;
|
|
|
1618
1605
|
* @public exported from `@promptbook/utils`
|
|
1619
1606
|
*/
|
|
1620
1607
|
function countLines(text) {
|
|
1608
|
+
if (text === '') {
|
|
1609
|
+
return 0;
|
|
1610
|
+
}
|
|
1621
1611
|
text = text.replace('\r\n', '\n');
|
|
1622
1612
|
text = text.replace('\r', '\n');
|
|
1623
1613
|
const lines = text.split('\n');
|
|
1624
|
-
return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
|
|
1614
|
+
return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
|
|
1625
1615
|
}
|
|
1626
1616
|
/**
|
|
1627
1617
|
* TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
|
|
@@ -2008,7 +1998,7 @@ function pricing(value) {
|
|
|
2008
1998
|
/**
|
|
2009
1999
|
* List of available OpenAI models with pricing
|
|
2010
2000
|
*
|
|
2011
|
-
* Note: Synced with official API docs at 2025-
|
|
2001
|
+
* Note: Synced with official API docs at 2025-11-19
|
|
2012
2002
|
*
|
|
2013
2003
|
* @see https://platform.openai.com/docs/models/
|
|
2014
2004
|
* @see https://openai.com/api/pricing/
|
|
@@ -2018,11 +2008,21 @@ const OPENAI_MODELS = exportJson({
|
|
|
2018
2008
|
name: 'OPENAI_MODELS',
|
|
2019
2009
|
value: [
|
|
2020
2010
|
/**/
|
|
2011
|
+
{
|
|
2012
|
+
modelVariant: 'CHAT',
|
|
2013
|
+
modelTitle: 'gpt-5.1',
|
|
2014
|
+
modelName: 'gpt-5.1',
|
|
2015
|
+
modelDescription: 'The best model for coding and agentic tasks with configurable reasoning effort.',
|
|
2016
|
+
pricing: {
|
|
2017
|
+
prompt: pricing(`$1.25 / 1M tokens`),
|
|
2018
|
+
output: pricing(`$10.00 / 1M tokens`),
|
|
2019
|
+
},
|
|
2020
|
+
},
|
|
2021
2021
|
{
|
|
2022
2022
|
modelVariant: 'CHAT',
|
|
2023
2023
|
modelTitle: 'gpt-5',
|
|
2024
2024
|
modelName: 'gpt-5',
|
|
2025
|
-
modelDescription: "OpenAI's most advanced language model with unprecedented reasoning capabilities and 200K context window. Features revolutionary improvements in complex problem-solving, scientific reasoning, and creative tasks. Demonstrates human-level performance across diverse domains with enhanced safety measures and alignment. Represents the next generation of AI with superior understanding, nuanced responses, and advanced multimodal capabilities.",
|
|
2025
|
+
modelDescription: "OpenAI's most advanced language model with unprecedented reasoning capabilities and 200K context window. Features revolutionary improvements in complex problem-solving, scientific reasoning, and creative tasks. Demonstrates human-level performance across diverse domains with enhanced safety measures and alignment. Represents the next generation of AI with superior understanding, nuanced responses, and advanced multimodal capabilities. DEPRECATED: Use gpt-5.1 instead.",
|
|
2026
2026
|
pricing: {
|
|
2027
2027
|
prompt: pricing(`$1.25 / 1M tokens`),
|
|
2028
2028
|
output: pricing(`$10.00 / 1M tokens`),
|
|
@@ -2192,17 +2192,17 @@ const OPENAI_MODELS = exportJson({
|
|
|
2192
2192
|
},
|
|
2193
2193
|
/**/
|
|
2194
2194
|
/*/
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2195
|
+
{
|
|
2196
|
+
modelTitle: 'tts-1-hd-1106',
|
|
2197
|
+
modelName: 'tts-1-hd-1106',
|
|
2198
|
+
},
|
|
2199
|
+
/**/
|
|
2200
2200
|
/*/
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2201
|
+
{
|
|
2202
|
+
modelTitle: 'tts-1-hd',
|
|
2203
|
+
modelName: 'tts-1-hd',
|
|
2204
|
+
},
|
|
2205
|
+
/**/
|
|
2206
2206
|
/**/
|
|
2207
2207
|
{
|
|
2208
2208
|
modelVariant: 'CHAT',
|
|
@@ -3397,7 +3397,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3397
3397
|
// Note: Match exact or prefix for model families
|
|
3398
3398
|
const model = this.HARDCODED_MODELS.find(({ modelName }) => modelName === defaultModelName || modelName.startsWith(defaultModelName));
|
|
3399
3399
|
if (model === undefined) {
|
|
3400
|
-
throw new PipelineExecutionError(spaceTrim((block) => `
|
|
3400
|
+
throw new PipelineExecutionError(spaceTrim$2((block) => `
|
|
3401
3401
|
Cannot find model in ${this.title} models with name "${defaultModelName}" which should be used as default.
|
|
3402
3402
|
|
|
3403
3403
|
Available models:
|
|
@@ -3769,7 +3769,7 @@ class OllamaExecutionTools extends OpenAiCompatibleExecutionTools {
|
|
|
3769
3769
|
...ollamaOptions,
|
|
3770
3770
|
apiKey: 'ollama',
|
|
3771
3771
|
isProxied: false, // <- Note: Ollama is always local
|
|
3772
|
-
};
|
|
3772
|
+
}; /* <- Note: [🤛] */
|
|
3773
3773
|
super(openAiCompatibleOptions);
|
|
3774
3774
|
}
|
|
3775
3775
|
get title() {
|