@promptbook/components 0.111.0-4 → 0.111.0-7
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/esm/index.es.js +2296 -1479
- package/esm/index.es.js.map +1 -1
- package/esm/src/_packages/core.index.d.ts +410 -0
- package/esm/src/_packages/types.index.d.ts +820 -0
- package/esm/src/book-2.0/agent-source/AgentBasicInformation.d.ts +126 -0
- package/esm/src/book-components/BookEditor/BookEditorMonacoConstants.d.ts +14 -0
- package/esm/src/book-components/BookEditor/BookEditorMonacoFormatting.d.ts +10 -0
- package/esm/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +19 -0
- package/esm/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +14 -0
- package/esm/src/book-components/BookEditor/useBookEditorMonacoDecorations.d.ts +13 -0
- package/esm/src/book-components/BookEditor/useBookEditorMonacoDiagnostics.d.ts +23 -0
- package/esm/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +11 -0
- package/esm/src/book-components/BookEditor/useBookEditorMonacoStyles.d.ts +14 -0
- package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +57 -0
- package/esm/src/book-components/Chat/Chat/ChatMessageItem.d.ts +83 -0
- package/esm/src/book-components/Chat/Chat/ChatMessageList.d.ts +42 -0
- package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +310 -0
- package/esm/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +106 -0
- package/esm/src/commitments/MEMORY/MEMORY.d.ts +106 -0
- package/esm/src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.d.ts +35 -0
- package/esm/src/commitments/META_DISCLAIMER/META_DISCLAIMER.d.ts +37 -0
- package/esm/src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.d.ts +39 -0
- package/esm/src/commitments/_common/toolRuntimeContext.d.ts +66 -0
- package/esm/src/commitments/index.d.ts +54 -0
- package/esm/src/constants.d.ts +211 -0
- package/esm/src/llm-providers/agent/Agent.d.ts +99 -0
- package/esm/src/llm-providers/agent/RemoteAgent.d.ts +63 -0
- package/esm/src/llm-providers/agent/self-learning/SelfLearningManager.d.ts +67 -0
- package/esm/src/pipeline/prompt-notation/helpers/ParameterEscaping.d.ts +51 -0
- package/esm/src/pipeline/prompt-notation/helpers/ParameterNaming.d.ts +16 -0
- package/esm/src/pipeline/prompt-notation/helpers/ParameterSection.d.ts +34 -0
- package/esm/src/utils/color/Color.d.ts +158 -0
- package/esm/src/utils/color/parsers/ColorChannelSet.d.ts +11 -0
- package/esm/src/utils/color/parsers/parseHexColor.d.ts +11 -0
- package/esm/src/utils/color/parsers/parseHslColor.d.ts +11 -0
- package/esm/src/utils/color/parsers/parseRgbColor.d.ts +20 -0
- package/esm/src/utils/validators/url/isValidAgentUrl.test.d.ts +1 -0
- package/esm/src/utils/validators/url/isValidPipelineUrl.test.d.ts +1 -0
- package/esm/src/utils/validators/url/isValidUrl.test.d.ts +1 -0
- package/esm/src/utils/validators/uuid/isValidUuid.test.d.ts +1 -0
- package/esm/src/version.d.ts +26 -0
- package/package.json +7 -8
- package/umd/books/index.d.ts +131 -0
- package/umd/index.umd.js +2278 -1460
- package/umd/index.umd.js.map +1 -1
- package/umd/servers.d.ts +62 -0
- package/umd/src/_packages/anthropic-claude.index.d.ts +16 -0
- package/umd/src/_packages/azure-openai.index.d.ts +10 -0
- package/umd/src/_packages/browser.index.d.ts +22 -0
- package/umd/src/_packages/cli.index.d.ts +68 -0
- package/umd/src/_packages/color.index.d.ts +52 -0
- package/umd/src/_packages/components.index.d.ts +146 -0
- package/umd/src/_packages/core.index.d.ts +410 -0
- package/umd/src/_packages/deepseek.index.d.ts +10 -0
- package/umd/src/_packages/documents.index.d.ts +8 -0
- package/umd/src/_packages/editable.index.d.ts +90 -0
- package/umd/src/_packages/fake-llm.index.d.ts +6 -0
- package/umd/src/_packages/google.index.d.ts +12 -0
- package/umd/src/_packages/javascript.index.d.ts +10 -0
- package/umd/src/_packages/legacy-documents.index.d.ts +8 -0
- package/umd/src/_packages/markdown-utils.index.d.ts +68 -0
- package/umd/src/_packages/markitdown.index.d.ts +8 -0
- package/umd/src/_packages/node.index.d.ts +26 -0
- package/umd/src/_packages/ollama.index.d.ts +14 -0
- package/umd/src/_packages/openai.index.d.ts +40 -0
- package/umd/src/_packages/pdf.index.d.ts +14 -0
- package/umd/src/_packages/remote-client.index.d.ts +16 -0
- package/umd/src/_packages/remote-server.index.d.ts +14 -0
- package/umd/src/_packages/templates.index.d.ts +4 -0
- package/umd/src/_packages/types.index.d.ts +820 -0
- package/umd/src/_packages/utils.index.d.ts +196 -0
- package/umd/src/_packages/vercel.index.d.ts +6 -0
- package/umd/src/_packages/website-crawler.index.d.ts +8 -0
- package/umd/src/_packages/wizard.index.d.ts +68 -0
- package/umd/src/book-2.0/agent-source/AgentBasicInformation.d.ts +126 -0
- package/umd/src/book-2.0/agent-source/AgentModelRequirements.d.ts +81 -0
- package/umd/src/book-2.0/agent-source/AgentReferenceResolver.d.ts +18 -0
- package/umd/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +21 -0
- package/umd/src/book-2.0/agent-source/BookEditable.d.ts +41 -0
- package/umd/src/book-2.0/agent-source/CreateAgentModelRequirementsOptions.d.ts +17 -0
- package/umd/src/book-2.0/agent-source/communication-samples.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
- package/umd/src/book-2.0/agent-source/computeAgentHash.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirements.d.ts +50 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirements.tools.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.agentReferenceResolver.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.blocks.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.closed.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.d.ts +10 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.delete.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.import.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createCommitmentRegex.d.ts +20 -0
- package/umd/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
- package/umd/src/book-2.0/agent-source/extractMetaLinks.d.ts +8 -0
- package/umd/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
- package/umd/src/book-2.0/agent-source/normalizeAgentName.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/padBook.d.ts +18 -0
- package/umd/src/book-2.0/agent-source/parseAgentSource.d.ts +15 -0
- package/umd/src/book-2.0/agent-source/parseAgentSource.import.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/parseAgentSource.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/parseAgentSourceWithCommitments.blocks.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +9 -0
- package/umd/src/book-2.0/agent-source/parseParameters.d.ts +13 -0
- package/umd/src/book-2.0/agent-source/parseTeamCommitment.d.ts +28 -0
- package/umd/src/book-2.0/agent-source/removeCommentsFromSystemMessage.d.ts +11 -0
- package/umd/src/book-2.0/agent-source/string_book.d.ts +29 -0
- package/umd/src/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +13 -0
- package/umd/src/book-components/AvatarProfile/AvatarChip/AvatarChip.d.ts +38 -0
- package/umd/src/book-components/AvatarProfile/AvatarChip/AvatarChipFromSource.d.ts +21 -0
- package/umd/src/book-components/AvatarProfile/AvatarChip/index.d.ts +2 -0
- package/umd/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +36 -0
- package/umd/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileFromSource.d.ts +19 -0
- package/umd/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileTooltip.d.ts +15 -0
- package/umd/src/book-components/BookEditor/BookEditor.d.ts +209 -0
- package/umd/src/book-components/BookEditor/BookEditorActionbar.d.ts +18 -0
- package/umd/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
- package/umd/src/book-components/BookEditor/BookEditorMonacoConstants.d.ts +14 -0
- package/umd/src/book-components/BookEditor/BookEditorMonacoFormatting.d.ts +10 -0
- package/umd/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +19 -0
- package/umd/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +14 -0
- package/umd/src/book-components/BookEditor/useBookEditorMonacoDecorations.d.ts +13 -0
- package/umd/src/book-components/BookEditor/useBookEditorMonacoDiagnostics.d.ts +23 -0
- package/umd/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +11 -0
- package/umd/src/book-components/BookEditor/useBookEditorMonacoStyles.d.ts +14 -0
- package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +57 -0
- package/umd/src/book-components/Chat/AgentChat/AgentChat.d.ts +17 -0
- package/umd/src/book-components/Chat/AgentChat/AgentChat.test.d.ts +1 -0
- package/umd/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +18 -0
- package/umd/src/book-components/Chat/AgentChip/AgentChip.d.ts +71 -0
- package/umd/src/book-components/Chat/AgentChip/index.d.ts +2 -0
- package/umd/src/book-components/Chat/Chat/Chat.d.ts +15 -0
- package/umd/src/book-components/Chat/Chat/ChatActionsBar.d.ts +34 -0
- package/umd/src/book-components/Chat/Chat/ChatCitationModal.d.ts +21 -0
- package/umd/src/book-components/Chat/Chat/ChatInputArea.d.ts +49 -0
- package/umd/src/book-components/Chat/Chat/ChatMessageItem.d.ts +83 -0
- package/umd/src/book-components/Chat/Chat/ChatMessageList.d.ts +42 -0
- package/umd/src/book-components/Chat/Chat/ChatMessageMap.d.ts +17 -0
- package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +310 -0
- package/umd/src/book-components/Chat/Chat/ChatRatingModal.d.ts +30 -0
- package/umd/src/book-components/Chat/Chat/ChatSelfLearningSummary.d.ts +24 -0
- package/umd/src/book-components/Chat/Chat/ChatSoundToggle.d.ts +54 -0
- package/umd/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +23 -0
- package/umd/src/book-components/Chat/Chat/ChatToolCallModalComponents.d.ts +39 -0
- package/umd/src/book-components/Chat/Chat/ClockIcon.d.ts +9 -0
- package/umd/src/book-components/Chat/Chat/ImagePromptRenderer.d.ts +21 -0
- package/umd/src/book-components/Chat/Chat/constants.d.ts +15 -0
- package/umd/src/book-components/Chat/CodeBlock/CodeBlock.d.ts +13 -0
- package/umd/src/book-components/Chat/LlmChat/FriendlyErrorMessage.d.ts +20 -0
- package/umd/src/book-components/Chat/LlmChat/LlmChat.d.ts +14 -0
- package/umd/src/book-components/Chat/LlmChat/LlmChat.test.d.ts +1 -0
- package/umd/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +106 -0
- package/umd/src/book-components/Chat/LlmChat/defaults.d.ts +9 -0
- package/umd/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +16 -0
- package/umd/src/book-components/Chat/MockedChat/MockedChat.d.ts +85 -0
- package/umd/src/book-components/Chat/MockedChat/constants.d.ts +42 -0
- package/umd/src/book-components/Chat/SourceChip/SourceChip.d.ts +39 -0
- package/umd/src/book-components/Chat/SourceChip/index.d.ts +2 -0
- package/umd/src/book-components/Chat/effects/ChatEffectsSystem.d.ts +14 -0
- package/umd/src/book-components/Chat/effects/components/ConfettiEffect.d.ts +18 -0
- package/umd/src/book-components/Chat/effects/components/HeartsEffect.d.ts +18 -0
- package/umd/src/book-components/Chat/effects/configs/defaultEffectConfigs.d.ts +7 -0
- package/umd/src/book-components/Chat/effects/index.d.ts +18 -0
- package/umd/src/book-components/Chat/effects/types/ChatEffect.d.ts +20 -0
- package/umd/src/book-components/Chat/effects/types/ChatEffectConfig.d.ts +21 -0
- package/umd/src/book-components/Chat/effects/types/ChatEffectType.d.ts +6 -0
- package/umd/src/book-components/Chat/effects/types/ChatEffectsSystemProps.d.ts +32 -0
- package/umd/src/book-components/Chat/effects/utils/detectEffects.d.ts +12 -0
- package/umd/src/book-components/Chat/hooks/index.d.ts +2 -0
- package/umd/src/book-components/Chat/hooks/useChatActionsOverlap.d.ts +61 -0
- package/umd/src/book-components/Chat/hooks/useChatAutoScroll.d.ts +41 -0
- package/umd/src/book-components/Chat/hooks/useChatRatings.d.ts +89 -0
- package/umd/src/book-components/Chat/hooks/useSendMessageToLlmChat.d.ts +44 -0
- package/umd/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +57 -0
- package/umd/src/book-components/Chat/save/_common/getChatSaveFormatDefinitions.d.ts +8 -0
- package/umd/src/book-components/Chat/save/_common/string_chat_format_name.d.ts +6 -0
- package/umd/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +21 -0
- package/umd/src/book-components/Chat/save/index.d.ts +69 -0
- package/umd/src/book-components/Chat/save/json/jsonSaveFormatDefinition.d.ts +16 -0
- package/umd/src/book-components/Chat/save/markdown/mdSaveFormatDefinition.d.ts +16 -0
- package/umd/src/book-components/Chat/save/pdf/buildChatPdf.d.ts +11 -0
- package/umd/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +20 -0
- package/umd/src/book-components/Chat/save/react/reactSaveFormatDefinition.d.ts +16 -0
- package/umd/src/book-components/Chat/save/text/txtSaveFormatDefinition.d.ts +16 -0
- package/umd/src/book-components/Chat/types/ChatMessage.d.ts +103 -0
- package/umd/src/book-components/Chat/types/ChatParticipant.d.ts +45 -0
- package/umd/src/book-components/Chat/utils/ChatPersistence.d.ts +25 -0
- package/umd/src/book-components/Chat/utils/ExportFormat.d.ts +4 -0
- package/umd/src/book-components/Chat/utils/addUtmParamsToUrl.d.ts +7 -0
- package/umd/src/book-components/Chat/utils/citationHelpers.d.ts +38 -0
- package/umd/src/book-components/Chat/utils/citationHelpers.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/collectTeamToolCallSummary.d.ts +69 -0
- package/umd/src/book-components/Chat/utils/createShortLinkForChat.d.ts +7 -0
- package/umd/src/book-components/Chat/utils/createTeamToolNameFromUrl.d.ts +12 -0
- package/umd/src/book-components/Chat/utils/downloadFile.d.ts +6 -0
- package/umd/src/book-components/Chat/utils/exportChatHistory.d.ts +12 -0
- package/umd/src/book-components/Chat/utils/generatePdfContent.d.ts +8 -0
- package/umd/src/book-components/Chat/utils/generateQrDataUrl.d.ts +7 -0
- package/umd/src/book-components/Chat/utils/getChatMessageTimingDisplay.d.ts +26 -0
- package/umd/src/book-components/Chat/utils/getPromptbookBranding.d.ts +6 -0
- package/umd/src/book-components/Chat/utils/getToolCallChipletInfo.d.ts +40 -0
- package/umd/src/book-components/Chat/utils/loadAgentProfile.d.ts +69 -0
- package/umd/src/book-components/Chat/utils/messagesToHtml.d.ts +8 -0
- package/umd/src/book-components/Chat/utils/messagesToJson.d.ts +7 -0
- package/umd/src/book-components/Chat/utils/messagesToMarkdown.d.ts +8 -0
- package/umd/src/book-components/Chat/utils/messagesToText.d.ts +8 -0
- package/umd/src/book-components/Chat/utils/parseCitationMarker.d.ts +75 -0
- package/umd/src/book-components/Chat/utils/parseCitationsFromContent.d.ts +64 -0
- package/umd/src/book-components/Chat/utils/parseCitationsFromContent.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/parseImagePrompts.d.ts +42 -0
- package/umd/src/book-components/Chat/utils/parseImagePrompts.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/parseMessageButtons.d.ts +22 -0
- package/umd/src/book-components/Chat/utils/resolveCitationUrl.d.ts +11 -0
- package/umd/src/book-components/Chat/utils/resolveCitationUrl.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/sanitizeStreamingMessageContent.d.ts +19 -0
- package/umd/src/book-components/Chat/utils/sanitizeStreamingMessageContent.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/splitMessageContentIntoSegments.d.ts +41 -0
- package/umd/src/book-components/Chat/utils/splitMessageContentIntoSegments.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing.d.ts +68 -0
- package/umd/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +67 -0
- package/umd/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +23 -0
- package/umd/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
- package/umd/src/book-components/Qr/GenericQrCode.d.ts +10 -0
- package/umd/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
- package/umd/src/book-components/Qr/useQrCode.d.ts +15 -0
- package/umd/src/book-components/_common/Dropdown/Dropdown.d.ts +19 -0
- package/umd/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +16 -0
- package/umd/src/book-components/_common/MenuHoisting/MenuHoistingContext.d.ts +56 -0
- package/umd/src/book-components/_common/Modal/Modal.d.ts +13 -0
- package/umd/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
- package/umd/src/book-components/_common/react-utils/classNames.d.ts +7 -0
- package/umd/src/book-components/_common/react-utils/collectCssTextsForClass.d.ts +7 -0
- package/umd/src/book-components/_common/react-utils/escapeHtml.d.ts +6 -0
- package/umd/src/book-components/_common/react-utils/escapeRegex.d.ts +6 -0
- package/umd/src/book-components/icons/AboutIcon.d.ts +13 -0
- package/umd/src/book-components/icons/ArrowIcon.d.ts +22 -0
- package/umd/src/book-components/icons/AttachmentIcon.d.ts +15 -0
- package/umd/src/book-components/icons/CameraIcon.d.ts +15 -0
- package/umd/src/book-components/icons/CloseIcon.d.ts +7 -0
- package/umd/src/book-components/icons/DownloadIcon.d.ts +13 -0
- package/umd/src/book-components/icons/EmailIcon.d.ts +15 -0
- package/umd/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
- package/umd/src/book-components/icons/FullscreenIcon.d.ts +7 -0
- package/umd/src/book-components/icons/MenuIcon.d.ts +16 -0
- package/umd/src/book-components/icons/MicIcon.d.ts +8 -0
- package/umd/src/book-components/icons/PauseIcon.d.ts +8 -0
- package/umd/src/book-components/icons/PlayIcon.d.ts +8 -0
- package/umd/src/book-components/icons/ResetIcon.d.ts +6 -0
- package/umd/src/book-components/icons/SaveIcon.d.ts +14 -0
- package/umd/src/book-components/icons/SendIcon.d.ts +11 -0
- package/umd/src/book-components/icons/TeacherIcon.d.ts +15 -0
- package/umd/src/book-components/icons/TemplateIcon.d.ts +8 -0
- package/umd/src/cli/cli-commands/_boilerplate.d.ts +14 -0
- package/umd/src/cli/cli-commands/about.d.ts +16 -0
- package/umd/src/cli/cli-commands/common/handleActionErrors.d.ts +11 -0
- package/umd/src/cli/cli-commands/hello.d.ts +15 -0
- package/umd/src/cli/cli-commands/list-models.d.ts +14 -0
- package/umd/src/cli/cli-commands/list-scrapers.d.ts +14 -0
- package/umd/src/cli/cli-commands/login.d.ts +15 -0
- package/umd/src/cli/cli-commands/make.d.ts +17 -0
- package/umd/src/cli/cli-commands/prettify.d.ts +16 -0
- package/umd/src/cli/cli-commands/run.d.ts +18 -0
- package/umd/src/cli/cli-commands/runInteractiveChatbot.d.ts +32 -0
- package/umd/src/cli/cli-commands/start-agents-server.d.ts +14 -0
- package/umd/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
- package/umd/src/cli/cli-commands/test-command.d.ts +17 -0
- package/umd/src/cli/common/$addGlobalOptionsToCommand.d.ts +8 -0
- package/umd/src/cli/common/$provideLlmToolsForCli.d.ts +28 -0
- package/umd/src/cli/main.d.ts +16 -0
- package/umd/src/cli/promptbookCli.d.ts +13 -0
- package/umd/src/cli/test/ptbk.d.ts +5 -0
- package/umd/src/cli/test/ptbk.test.d.ts +1 -0
- package/umd/src/collection/agent-collection/AgentCollection.d.ts +12 -0
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +104 -0
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +10 -0
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +200 -0
- package/umd/src/collection/pipeline-collection/PipelineCollection.d.ts +29 -0
- package/umd/src/collection/pipeline-collection/SimplePipelineCollection.d.ts +37 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts +62 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts +1 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts +1 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts +24 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +1 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts +29 -0
- package/umd/src/collection/pipeline-collection/constructors/createPipelineSubcollection.d.ts +13 -0
- package/umd/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
- package/umd/src/collection/pipeline-collection/pipelineCollectionToJson.test.d.ts +7 -0
- package/umd/src/commands/BOOK_VERSION/BookVersionCommand.d.ts +11 -0
- package/umd/src/commands/BOOK_VERSION/bookVersionCommand.test.d.ts +1 -0
- package/umd/src/commands/BOOK_VERSION/bookVersionCommandParser.d.ts +9 -0
- package/umd/src/commands/EXPECT/ExpectCommand.d.ts +17 -0
- package/umd/src/commands/EXPECT/expectCommand.test.d.ts +1 -0
- package/umd/src/commands/EXPECT/expectCommandParser.d.ts +11 -0
- package/umd/src/commands/FOREACH/ForeachCommand.d.ts +10 -0
- package/umd/src/commands/FOREACH/ForeachJson.d.ts +27 -0
- package/umd/src/commands/FOREACH/foreachCommand.test.d.ts +1 -0
- package/umd/src/commands/FOREACH/foreachCommandParser.d.ts +12 -0
- package/umd/src/commands/FORMAT/FormatCommand.d.ts +9 -0
- package/umd/src/commands/FORMAT/formatCommand.test.d.ts +1 -0
- package/umd/src/commands/FORMAT/formatCommandParser.d.ts +9 -0
- package/umd/src/commands/FORMFACTOR/FormfactorCommand.d.ts +11 -0
- package/umd/src/commands/FORMFACTOR/formfactorCommand.test.d.ts +1 -0
- package/umd/src/commands/FORMFACTOR/formfactorCommandParser.d.ts +11 -0
- package/umd/src/commands/JOKER/JokerCommand.d.ts +11 -0
- package/umd/src/commands/JOKER/jokerCommand.test.d.ts +1 -0
- package/umd/src/commands/JOKER/jokerCommandParser.d.ts +9 -0
- package/umd/src/commands/KNOWLEDGE/KnowledgeCommand.d.ts +11 -0
- package/umd/src/commands/KNOWLEDGE/knowledgeCommand.test.d.ts +1 -0
- package/umd/src/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +12 -0
- package/umd/src/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.d.ts +11 -0
- package/umd/src/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.test.d.ts +4 -0
- package/umd/src/commands/MODEL/ModelCommand.d.ts +14 -0
- package/umd/src/commands/MODEL/modelCommand.test.d.ts +1 -0
- package/umd/src/commands/MODEL/modelCommandParser.d.ts +10 -0
- package/umd/src/commands/PARAMETER/ParameterCommand.d.ts +15 -0
- package/umd/src/commands/PARAMETER/parameterCommand.test.d.ts +1 -0
- package/umd/src/commands/PARAMETER/parameterCommandParser.d.ts +9 -0
- package/umd/src/commands/PERSONA/PersonaCommand.d.ts +13 -0
- package/umd/src/commands/PERSONA/personaCommand.test.d.ts +1 -0
- package/umd/src/commands/PERSONA/personaCommandParser.d.ts +9 -0
- package/umd/src/commands/POSTPROCESS/PostprocessCommand.d.ts +11 -0
- package/umd/src/commands/POSTPROCESS/postprocessCommand.test.d.ts +1 -0
- package/umd/src/commands/POSTPROCESS/postprocessCommandParser.d.ts +9 -0
- package/umd/src/commands/SECTION/SectionCommand.d.ts +11 -0
- package/umd/src/commands/SECTION/sectionCommand.test.d.ts +1 -0
- package/umd/src/commands/SECTION/sectionCommandParser.d.ts +20 -0
- package/umd/src/commands/URL/UrlCommand.d.ts +10 -0
- package/umd/src/commands/URL/urlCommand.test.d.ts +1 -0
- package/umd/src/commands/URL/urlCommandParser.d.ts +9 -0
- package/umd/src/commands/X_ACTION/ActionCommand.d.ts +9 -0
- package/umd/src/commands/X_ACTION/actionCommand.test.d.ts +1 -0
- package/umd/src/commands/X_ACTION/actionCommandParser.d.ts +12 -0
- package/umd/src/commands/X_INSTRUMENT/InstrumentCommand.d.ts +9 -0
- package/umd/src/commands/X_INSTRUMENT/instrumentCommand.test.d.ts +1 -0
- package/umd/src/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +12 -0
- package/umd/src/commands/_BOILERPLATE/BoilerplateCommand.d.ts +10 -0
- package/umd/src/commands/_BOILERPLATE/boilerplateCommand.test.d.ts +1 -0
- package/umd/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +11 -0
- package/umd/src/commands/_common/getParserForCommand.d.ts +11 -0
- package/umd/src/commands/_common/getParserForCommand.test.d.ts +1 -0
- package/umd/src/commands/_common/parseCommand.d.ts +12 -0
- package/umd/src/commands/_common/stringifyCommand.d.ts +12 -0
- package/umd/src/commands/_common/stringifyCommand.test.d.ts +1 -0
- package/umd/src/commands/_common/types/Command.d.ts +6 -0
- package/umd/src/commands/_common/types/CommandParser.d.ts +204 -0
- package/umd/src/commands/_common/types/CommandType.d.ts +17 -0
- package/umd/src/commands/_common/types/CommandUsagePlaces.d.ts +13 -0
- package/umd/src/commands/index.d.ts +9 -0
- package/umd/src/commitments/ACTION/ACTION.d.ts +36 -0
- package/umd/src/commitments/CLOSED/CLOSED.d.ts +39 -0
- package/umd/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
- package/umd/src/commitments/COMPONENT/COMPONENT.d.ts +28 -0
- package/umd/src/commitments/DELETE/DELETE.d.ts +39 -0
- package/umd/src/commitments/DICTIONARY/DICTIONARY.d.ts +46 -0
- package/umd/src/commitments/FORMAT/FORMAT.d.ts +37 -0
- package/umd/src/commitments/FROM/FROM.d.ts +34 -0
- package/umd/src/commitments/GOAL/GOAL.d.ts +37 -0
- package/umd/src/commitments/IMPORT/IMPORT.d.ts +34 -0
- package/umd/src/commitments/KNOWLEDGE/KNOWLEDGE.d.ts +39 -0
- package/umd/src/commitments/LANGUAGE/LANGUAGE.d.ts +35 -0
- package/umd/src/commitments/MEMORY/MEMORY.d.ts +106 -0
- package/umd/src/commitments/MEMORY/MEMORY.test.d.ts +1 -0
- package/umd/src/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +32 -0
- package/umd/src/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +32 -0
- package/umd/src/commitments/MESSAGE/MESSAGE.d.ts +39 -0
- package/umd/src/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +32 -0
- package/umd/src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.d.ts +35 -0
- package/umd/src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.test.d.ts +1 -0
- package/umd/src/commitments/META/META.d.ts +60 -0
- package/umd/src/commitments/META/META_DESCRIPTION.d.ts +41 -0
- package/umd/src/commitments/META_COLOR/META_COLOR.d.ts +48 -0
- package/umd/src/commitments/META_DISCLAIMER/META_DISCLAIMER.d.ts +37 -0
- package/umd/src/commitments/META_DISCLAIMER/META_DISCLAIMER.test.d.ts +1 -0
- package/umd/src/commitments/META_FONT/META_FONT.d.ts +42 -0
- package/umd/src/commitments/META_IMAGE/META_IMAGE.d.ts +42 -0
- package/umd/src/commitments/META_LINK/META_LINK.d.ts +54 -0
- package/umd/src/commitments/MODEL/MODEL.d.ts +58 -0
- package/umd/src/commitments/NOTE/NOTE.d.ts +47 -0
- package/umd/src/commitments/OPEN/OPEN.d.ts +35 -0
- package/umd/src/commitments/PERSONA/PERSONA.d.ts +44 -0
- package/umd/src/commitments/RULE/RULE.d.ts +36 -0
- package/umd/src/commitments/SAMPLE/SAMPLE.d.ts +36 -0
- package/umd/src/commitments/SCENARIO/SCENARIO.d.ts +38 -0
- package/umd/src/commitments/STYLE/STYLE.d.ts +36 -0
- package/umd/src/commitments/TEAM/TEAM.d.ts +45 -0
- package/umd/src/commitments/TEMPLATE/TEMPLATE.d.ts +44 -0
- package/umd/src/commitments/TEMPLATE/TEMPLATE.test.d.ts +1 -0
- package/umd/src/commitments/USE/USE.d.ts +53 -0
- package/umd/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +60 -0
- package/umd/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +1 -0
- package/umd/src/commitments/USE_BROWSER/fetchUrlContent.d.ts +22 -0
- package/umd/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +13 -0
- package/umd/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +48 -0
- package/umd/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +11 -0
- package/umd/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +18 -0
- package/umd/src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.d.ts +37 -0
- package/umd/src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.test.d.ts +1 -0
- package/umd/src/commitments/USE_MCP/USE_MCP.d.ts +37 -0
- package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +49 -0
- package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts +1 -0
- package/umd/src/commitments/USE_TIME/USE_TIME.d.ts +46 -0
- package/umd/src/commitments/USE_TIME/USE_TIME.test.d.ts +1 -0
- package/umd/src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.d.ts +39 -0
- package/umd/src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.test.d.ts +1 -0
- package/umd/src/commitments/_base/BaseCommitmentDefinition.d.ts +87 -0
- package/umd/src/commitments/_base/BookCommitment.d.ts +5 -0
- package/umd/src/commitments/_base/CommitmentDefinition.d.ts +67 -0
- package/umd/src/commitments/_base/NotYetImplementedCommitmentDefinition.d.ts +26 -0
- package/umd/src/commitments/_base/ParsedCommitment.d.ts +22 -0
- package/umd/src/commitments/_base/createEmptyAgentModelRequirements.d.ts +19 -0
- package/umd/src/commitments/_base/formatOptionalInstructionBlock.d.ts +6 -0
- package/umd/src/commitments/_common/commitmentToolFunctions.d.ts +26 -0
- package/umd/src/commitments/_common/getAllCommitmentDefinitions.d.ts +8 -0
- package/umd/src/commitments/_common/getAllCommitmentTypes.d.ts +8 -0
- package/umd/src/commitments/_common/getAllCommitmentsToolFunctionsForBrowser.d.ts +9 -0
- package/umd/src/commitments/_common/getAllCommitmentsToolFunctionsForNode.d.ts +13 -0
- package/umd/src/commitments/_common/getAllCommitmentsToolTitles.d.ts +7 -0
- package/umd/src/commitments/_common/getCommitmentDefinition.d.ts +10 -0
- package/umd/src/commitments/_common/getGroupedCommitmentDefinitions.d.ts +17 -0
- package/umd/src/commitments/_common/isCommitmentSupported.d.ts +9 -0
- package/umd/src/commitments/_common/toolRuntimeContext.d.ts +66 -0
- package/umd/src/commitments/index.d.ts +54 -0
- package/umd/src/config.d.ts +395 -0
- package/umd/src/config.test.d.ts +4 -0
- package/umd/src/constants/streaming.d.ts +20 -0
- package/umd/src/constants.d.ts +211 -0
- package/umd/src/conversion/archive/loadArchive.d.ts +16 -0
- package/umd/src/conversion/archive/saveArchive.d.ts +18 -0
- package/umd/src/conversion/compilePipeline.d.ts +25 -0
- package/umd/src/conversion/compilePipeline.test.d.ts +1 -0
- package/umd/src/conversion/compilePipelineOnRemoteServer.d.ts +21 -0
- package/umd/src/conversion/parsePipeline.d.ts +30 -0
- package/umd/src/conversion/parsePipeline.test.d.ts +1 -0
- package/umd/src/conversion/pipelineJsonToString.d.ts +18 -0
- package/umd/src/conversion/prettify/PrettifyOptions.d.ts +13 -0
- package/umd/src/conversion/prettify/prettifyPipelineString.d.ts +12 -0
- package/umd/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +30 -0
- package/umd/src/conversion/utils/extractParameterNamesFromTask.d.ts +15 -0
- package/umd/src/conversion/utils/extractParameterNamesFromTask.test.d.ts +1 -0
- package/umd/src/conversion/validation/_importPipeline.d.ts +23 -0
- package/umd/src/conversion/validation/pipelineStringToJson-parseErrors.test.d.ts +4 -0
- package/umd/src/conversion/validation/validatePipeline-logicErrors.test.d.ts +4 -0
- package/umd/src/conversion/validation/validatePipeline.d.ts +44 -0
- package/umd/src/conversion/validation/validatePipeline.test.d.ts +4 -0
- package/umd/src/dialogs/callback/CallbackInterfaceTools.d.ts +17 -0
- package/umd/src/dialogs/callback/CallbackInterfaceToolsOptions.d.ts +14 -0
- package/umd/src/dialogs/simple-prompt/SimplePromptInterfaceTools.d.ts +22 -0
- package/umd/src/dialogs/user-interface-execution-tools.test.d.ts +1 -0
- package/umd/src/errors/0-BoilerplateError.d.ts +12 -0
- package/umd/src/errors/0-index.d.ts +100 -0
- package/umd/src/errors/AbstractFormatError.d.ts +11 -0
- package/umd/src/errors/AuthenticationError.d.ts +9 -0
- package/umd/src/errors/CollectionError.d.ts +9 -0
- package/umd/src/errors/DatabaseError.d.ts +12 -0
- package/umd/src/errors/EnvironmentMismatchError.d.ts +9 -0
- package/umd/src/errors/ExpectError.d.ts +12 -0
- package/umd/src/errors/KnowledgeScrapeError.d.ts +9 -0
- package/umd/src/errors/LimitReachedError.d.ts +9 -0
- package/umd/src/errors/MissingToolsError.d.ts +9 -0
- package/umd/src/errors/NotAllowed.d.ts +9 -0
- package/umd/src/errors/NotFoundError.d.ts +9 -0
- package/umd/src/errors/NotYetImplementedError.d.ts +9 -0
- package/umd/src/errors/ParseError.d.ts +12 -0
- package/umd/src/errors/PipelineExecutionError.d.ts +14 -0
- package/umd/src/errors/PipelineLogicError.d.ts +9 -0
- package/umd/src/errors/PipelineUrlError.d.ts +9 -0
- package/umd/src/errors/PromptbookFetchError.d.ts +9 -0
- package/umd/src/errors/UnexpectedError.d.ts +9 -0
- package/umd/src/errors/WrappedError.d.ts +10 -0
- package/umd/src/errors/assertsError.d.ts +11 -0
- package/umd/src/errors/utils/ErrorJson.d.ts +25 -0
- package/umd/src/errors/utils/deserializeError.d.ts +7 -0
- package/umd/src/errors/utils/deserializeError.test.d.ts +1 -0
- package/umd/src/errors/utils/getErrorReportUrl.d.ts +6 -0
- package/umd/src/errors/utils/serializeError.d.ts +7 -0
- package/umd/src/errors/utils/serializeError.test.d.ts +1 -0
- package/umd/src/executables/$provideExecutablesForNode.d.ts +13 -0
- package/umd/src/executables/apps/locateLibreoffice.d.ts +12 -0
- package/umd/src/executables/apps/locateLibreoffice.test.d.ts +1 -0
- package/umd/src/executables/apps/locatePandoc.d.ts +12 -0
- package/umd/src/executables/apps/locatePandoc.test.d.ts +1 -0
- package/umd/src/executables/locateApp.d.ts +33 -0
- package/umd/src/executables/locateApp.test.d.ts +1 -0
- package/umd/src/executables/platforms/locateAppOnLinux.d.ts +13 -0
- package/umd/src/executables/platforms/locateAppOnMacOs.d.ts +13 -0
- package/umd/src/executables/platforms/locateAppOnWindows.d.ts +13 -0
- package/umd/src/execution/AbstractTaskResult.d.ts +25 -0
- package/umd/src/execution/AvailableModel.d.ts +52 -0
- package/umd/src/execution/CommonToolsOptions.d.ts +28 -0
- package/umd/src/execution/EmbeddingVector.d.ts +8 -0
- package/umd/src/execution/Executables.d.ts +21 -0
- package/umd/src/execution/ExecutionTask.d.ts +154 -0
- package/umd/src/execution/ExecutionTools.d.ts +74 -0
- package/umd/src/execution/FilesystemTools.d.ts +9 -0
- package/umd/src/execution/LlmExecutionTools.d.ts +93 -0
- package/umd/src/execution/LlmExecutionToolsConstructor.d.ts +11 -0
- package/umd/src/execution/PipelineExecutor.d.ts +16 -0
- package/umd/src/execution/PipelineExecutorResult.d.ts +39 -0
- package/umd/src/execution/PromptResult.d.ts +111 -0
- package/umd/src/execution/PromptbookFetch.d.ts +12 -0
- package/umd/src/execution/PromptbookFetch.test-type.d.ts +5 -0
- package/umd/src/execution/ScriptExecutionTools.d.ts +39 -0
- package/umd/src/execution/UncertainNumber.d.ts +19 -0
- package/umd/src/execution/Usage.d.ts +33 -0
- package/umd/src/execution/UserInterfaceTools.d.ts +46 -0
- package/umd/src/execution/assertsTaskSuccessful.d.ts +14 -0
- package/umd/src/execution/createPipelineExecutor/$OngoingTaskResult.d.ts +56 -0
- package/umd/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +46 -0
- package/umd/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +10 -0
- package/umd/src/execution/createPipelineExecutor/10-executePipeline.d.ts +53 -0
- package/umd/src/execution/createPipelineExecutor/20-executeTask.d.ts +56 -0
- package/umd/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +32 -0
- package/umd/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +79 -0
- package/umd/src/execution/createPipelineExecutor/computeCosineSimilarity.d.ts +13 -0
- package/umd/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +35 -0
- package/umd/src/execution/createPipelineExecutor/getContextForTask.d.ts +14 -0
- package/umd/src/execution/createPipelineExecutor/getExamplesForTask.d.ts +10 -0
- package/umd/src/execution/createPipelineExecutor/getKnowledgeForTask.d.ts +40 -0
- package/umd/src/execution/createPipelineExecutor/getReservedParametersForTask.d.ts +48 -0
- package/umd/src/execution/createPipelineExecutor/knowledgePiecesToString.d.ts +9 -0
- package/umd/src/execution/embeddingVectorToString.d.ts +7 -0
- package/umd/src/execution/execution-report/ExecutionPromptReportJson.d.ts +24 -0
- package/umd/src/execution/execution-report/ExecutionReportJson.d.ts +41 -0
- package/umd/src/execution/execution-report/ExecutionReportString.d.ts +16 -0
- package/umd/src/execution/execution-report/ExecutionReportStringOptions.d.ts +25 -0
- package/umd/src/execution/execution-report/countWorkingDuration.d.ts +7 -0
- package/umd/src/execution/execution-report/countWorkingDuration.test.d.ts +1 -0
- package/umd/src/execution/execution-report/executionReportJsonToString.d.ts +15 -0
- package/umd/src/execution/translation/automatic-translate/automatic-translators/AutomaticTranslator.d.ts +7 -0
- package/umd/src/execution/translation/automatic-translate/automatic-translators/DebugAutomaticTranslator.d.ts +11 -0
- package/umd/src/execution/translation/automatic-translate/automatic-translators/FakeAutomaticTranslator.d.ts +8 -0
- package/umd/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +22 -0
- package/umd/src/execution/translation/automatic-translate/automatic-translators/TranslatorOptions.d.ts +7 -0
- package/umd/src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.d.ts +8 -0
- package/umd/src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.test.d.ts +1 -0
- package/umd/src/execution/translation/automatic-translate/translateMessages.d.ts +12 -0
- package/umd/src/execution/utils/$provideExecutionToolsForNode.d.ts +14 -0
- package/umd/src/execution/utils/addUsage.d.ts +9 -0
- package/umd/src/execution/utils/addUsage.test.d.ts +1 -0
- package/umd/src/execution/utils/checkExpectations.d.ts +29 -0
- package/umd/src/execution/utils/checkExpectations.test.d.ts +1 -0
- package/umd/src/execution/utils/computeUsageCounts.d.ts +10 -0
- package/umd/src/execution/utils/forEachAsync.d.ts +20 -0
- package/umd/src/execution/utils/uncertainNumber.d.ts +10 -0
- package/umd/src/execution/utils/usage-constants.d.ts +27 -0
- package/umd/src/execution/utils/usageToHuman.d.ts +26 -0
- package/umd/src/execution/utils/usageToWorktime.d.ts +20 -0
- package/umd/src/execution/utils/usageToWorktime.test.d.ts +1 -0
- package/umd/src/execution/utils/validatePromptResult.d.ts +55 -0
- package/umd/src/formats/_common/FormatParser.d.ts +72 -0
- package/umd/src/formats/_common/FormatSubvalueParser.d.ts +66 -0
- package/umd/src/formats/csv/CsvFormatError.d.ts +10 -0
- package/umd/src/formats/csv/CsvFormatParser.d.ts +17 -0
- package/umd/src/formats/csv/CsvSettings.d.ts +13 -0
- package/umd/src/formats/csv/utils/csvParse.d.ts +12 -0
- package/umd/src/formats/csv/utils/isValidCsvString.d.ts +9 -0
- package/umd/src/formats/csv/utils/isValidCsvString.test.d.ts +1 -0
- package/umd/src/formats/index.d.ts +9 -0
- package/umd/src/formats/json/JsonFormatParser.d.ts +19 -0
- package/umd/src/formats/json/utils/isValidJsonString.d.ts +9 -0
- package/umd/src/formats/json/utils/isValidJsonString.test.d.ts +1 -0
- package/umd/src/formats/json/utils/jsonParse.d.ts +8 -0
- package/umd/src/formats/text/TextFormatParser.d.ts +19 -0
- package/umd/src/formats/xml/XmlFormatParser.d.ts +19 -0
- package/umd/src/formats/xml/utils/isValidXmlString.d.ts +9 -0
- package/umd/src/formats/xml/utils/isValidXmlString.test.d.ts +1 -0
- package/umd/src/formfactors/_boilerplate/BoilerplateFormfactorDefinition.d.ts +15 -0
- package/umd/src/formfactors/_common/AbstractFormfactorDefinition.d.ts +49 -0
- package/umd/src/formfactors/_common/FormfactorDefinition.d.ts +10 -0
- package/umd/src/formfactors/_common/string_formfactor_name.d.ts +6 -0
- package/umd/src/formfactors/chatbot/ChatbotFormfactorDefinition.d.ts +45 -0
- package/umd/src/formfactors/completion/CompletionFormfactorDefinition.d.ts +29 -0
- package/umd/src/formfactors/generator/GeneratorFormfactorDefinition.d.ts +25 -0
- package/umd/src/formfactors/generic/GenericFormfactorDefinition.d.ts +14 -0
- package/umd/src/formfactors/image-generator/ImageGeneratorFormfactorDefinition.d.ts +24 -0
- package/umd/src/formfactors/index.d.ts +170 -0
- package/umd/src/formfactors/matcher/MatcherFormfactorDefinition.d.ts +21 -0
- package/umd/src/formfactors/sheets/SheetsFormfactorDefinition.d.ts +26 -0
- package/umd/src/formfactors/translator/TranslatorFormfactorDefinition.d.ts +25 -0
- package/umd/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +21 -0
- package/umd/src/high-level-abstractions/implicit-formfactor/ImplicitFormfactorHla.d.ts +10 -0
- package/umd/src/high-level-abstractions/index.d.ts +54 -0
- package/umd/src/high-level-abstractions/quick-chatbot/QuickChatbotHla.d.ts +13 -0
- package/umd/src/import-plugins/$fileImportPlugins.d.ts +7 -0
- package/umd/src/import-plugins/AgentFileImportPlugin.d.ts +7 -0
- package/umd/src/import-plugins/FileImportPlugin.d.ts +24 -0
- package/umd/src/import-plugins/JsonFileImportPlugin.d.ts +7 -0
- package/umd/src/import-plugins/TextFileImportPlugin.d.ts +7 -0
- package/umd/src/llm-providers/_common/filterModels.d.ts +12 -0
- package/umd/src/llm-providers/_common/register/$llmToolsMetadataRegister.d.ts +13 -0
- package/umd/src/llm-providers/_common/register/$llmToolsRegister.d.ts +13 -0
- package/umd/src/llm-providers/_common/register/$provideEnvFilename.d.ts +12 -0
- package/umd/src/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +19 -0
- package/umd/src/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +27 -0
- package/umd/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +58 -0
- package/umd/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +41 -0
- package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +22 -0
- package/umd/src/llm-providers/_common/register/LlmToolsConfiguration.d.ts +30 -0
- package/umd/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +57 -0
- package/umd/src/llm-providers/_common/register/LlmToolsOptions.d.ts +17 -0
- package/umd/src/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +55 -0
- package/umd/src/llm-providers/_common/register/createLlmToolsFromConfiguration.test.d.ts +1 -0
- package/umd/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
- package/umd/src/llm-providers/_common/utils/cache/CacheItem.d.ts +33 -0
- package/umd/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +27 -0
- package/umd/src/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +20 -0
- package/umd/src/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +22 -0
- package/umd/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +21 -0
- package/umd/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +36 -0
- package/umd/src/llm-providers/_common/utils/pricing.d.ts +16 -0
- package/umd/src/llm-providers/_common/utils/pricing.test.d.ts +1 -0
- package/umd/src/llm-providers/_common/utils/removeUnsupportedModelRequirements.d.ts +25 -0
- package/umd/src/llm-providers/_common/utils/removeUnsupportedModelRequirements.test.d.ts +1 -0
- package/umd/src/llm-providers/_multiple/MultipleLlmExecutionTools.d.ts +61 -0
- package/umd/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +12 -0
- package/umd/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +27 -0
- package/umd/src/llm-providers/_multiple/playground/playground.d.ts +5 -0
- package/umd/src/llm-providers/agent/Agent.d.ts +99 -0
- package/umd/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +91 -0
- package/umd/src/llm-providers/agent/AgentLlmExecutionTools.test.d.ts +1 -0
- package/umd/src/llm-providers/agent/AgentOptions.d.ts +36 -0
- package/umd/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +28 -0
- package/umd/src/llm-providers/agent/RemoteAgent.d.ts +63 -0
- package/umd/src/llm-providers/agent/RemoteAgent.test.d.ts +1 -0
- package/umd/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
- package/umd/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +11 -0
- package/umd/src/llm-providers/agent/playground/playground.d.ts +8 -0
- package/umd/src/llm-providers/agent/register-configuration.d.ts +11 -0
- package/umd/src/llm-providers/agent/register-constructor.d.ts +13 -0
- package/umd/src/llm-providers/agent/self-learning/SelfLearningManager.d.ts +67 -0
- package/umd/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +61 -0
- package/umd/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +31 -0
- package/umd/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +24 -0
- package/umd/src/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.d.ts +18 -0
- package/umd/src/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.test.d.ts +4 -0
- package/umd/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +19 -0
- package/umd/src/llm-providers/anthropic-claude/playground/playground.d.ts +7 -0
- package/umd/src/llm-providers/anthropic-claude/register-configuration.d.ts +14 -0
- package/umd/src/llm-providers/anthropic-claude/register-constructor.d.ts +16 -0
- package/umd/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +66 -0
- package/umd/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +37 -0
- package/umd/src/llm-providers/azure-openai/createAzureOpenAiExecutionTools.d.ts +15 -0
- package/umd/src/llm-providers/azure-openai/playground/playground.d.ts +6 -0
- package/umd/src/llm-providers/azure-openai/register-configuration.d.ts +14 -0
- package/umd/src/llm-providers/azure-openai/register-constructor.d.ts +15 -0
- package/umd/src/llm-providers/deepseek/DeepseekExecutionToolsOptions.d.ts +9 -0
- package/umd/src/llm-providers/deepseek/createDeepseekExecutionTools.d.ts +14 -0
- package/umd/src/llm-providers/deepseek/deepseek-models.d.ts +23 -0
- package/umd/src/llm-providers/deepseek/register-configuration.d.ts +14 -0
- package/umd/src/llm-providers/deepseek/register-constructor.d.ts +15 -0
- package/umd/src/llm-providers/google/GoogleExecutionToolsOptions.d.ts +9 -0
- package/umd/src/llm-providers/google/createGoogleExecutionTools.d.ts +15 -0
- package/umd/src/llm-providers/google/google-models.d.ts +23 -0
- package/umd/src/llm-providers/google/register-configuration.d.ts +14 -0
- package/umd/src/llm-providers/google/register-constructor.d.ts +15 -0
- package/umd/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +16 -0
- package/umd/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +39 -0
- package/umd/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +42 -0
- package/umd/src/llm-providers/mocked/test/fakeTextToExpectations.test.d.ts +1 -0
- package/umd/src/llm-providers/mocked/test/faked-completion.test.d.ts +1 -0
- package/umd/src/llm-providers/mocked/test/joker.test.d.ts +4 -0
- package/umd/src/llm-providers/mocked/test/mocked-chat.test.d.ts +5 -0
- package/umd/src/llm-providers/mocked/test/mocked-completion.test.d.ts +4 -0
- package/umd/src/llm-providers/ollama/OllamaExecutionTools.d.ts +48 -0
- package/umd/src/llm-providers/ollama/OllamaExecutionToolsOptions.d.ts +23 -0
- package/umd/src/llm-providers/ollama/createOllamaExecutionTools.d.ts +11 -0
- package/umd/src/llm-providers/ollama/ollama-models.d.ts +14 -0
- package/umd/src/llm-providers/ollama/playground/playground.d.ts +6 -0
- package/umd/src/llm-providers/ollama/register-configuration.d.ts +14 -0
- package/umd/src/llm-providers/ollama/register-constructor.d.ts +15 -0
- package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +150 -0
- package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionToolsOptions.d.ts +15 -0
- package/umd/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +104 -0
- package/umd/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +19 -0
- package/umd/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +126 -0
- package/umd/src/llm-providers/openai/OpenAiCompatibleExecutionToolsOptions.d.ts +57 -0
- package/umd/src/llm-providers/openai/OpenAiExecutionTools.d.ts +42 -0
- package/umd/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +9 -0
- package/umd/src/llm-providers/openai/OpenAiVectorStoreHandler.d.ts +135 -0
- package/umd/src/llm-providers/openai/computeOpenAiUsage.d.ts +18 -0
- package/umd/src/llm-providers/openai/computeOpenAiUsage.test.d.ts +4 -0
- package/umd/src/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +15 -0
- package/umd/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +74 -0
- package/umd/src/llm-providers/openai/createOpenAiExecutionTools.d.ts +17 -0
- package/umd/src/llm-providers/openai/openai-models.d.ts +25 -0
- package/umd/src/llm-providers/openai/openai-models.test.d.ts +4 -0
- package/umd/src/llm-providers/openai/playground/playground.d.ts +6 -0
- package/umd/src/llm-providers/openai/register-configuration.d.ts +35 -0
- package/umd/src/llm-providers/openai/register-constructor.d.ts +39 -0
- package/umd/src/llm-providers/openai/utils/buildToolInvocationScript.d.ts +9 -0
- package/umd/src/llm-providers/openai/utils/mapToolsToOpenAi.d.ts +8 -0
- package/umd/src/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +7 -0
- package/umd/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +56 -0
- package/umd/src/llm-providers/remote/playground/playground.d.ts +5 -0
- package/umd/src/llm-providers/vercel/VercelExecutionToolsOptions.d.ts +23 -0
- package/umd/src/llm-providers/vercel/VercelProvider.d.ts +13 -0
- package/umd/src/llm-providers/vercel/createExecutionToolsFromVercelProvider.d.ts +8 -0
- package/umd/src/llm-providers/vercel/playground/playground.d.ts +6 -0
- package/umd/src/migrations/migratePipeline.d.ts +9 -0
- package/umd/src/other/templates/getBookTemplates.d.ts +24 -0
- package/umd/src/other/templates/getTemplatesPipelineCollection.d.ts +10 -0
- package/umd/src/personas/preparePersona.d.ts +18 -0
- package/umd/src/pipeline/PipelineInterface/PipelineInterface.d.ts +22 -0
- package/umd/src/pipeline/PipelineInterface/constants.d.ts +14 -0
- package/umd/src/pipeline/PipelineInterface/getPipelineInterface.d.ts +11 -0
- package/umd/src/pipeline/PipelineInterface/isPipelineImplementingInterface.d.ts +27 -0
- package/umd/src/pipeline/PipelineInterface/isPipelineInterfacesEqual.d.ts +10 -0
- package/umd/src/pipeline/PipelineJson/CommonTaskJson.d.ts +103 -0
- package/umd/src/pipeline/PipelineJson/DialogTaskJson.d.ts +13 -0
- package/umd/src/pipeline/PipelineJson/Expectations.d.ts +40 -0
- package/umd/src/pipeline/PipelineJson/KnowledgePieceJson.d.ts +73 -0
- package/umd/src/pipeline/PipelineJson/KnowledgeSourceJson.d.ts +44 -0
- package/umd/src/pipeline/PipelineJson/ParameterJson.d.ts +98 -0
- package/umd/src/pipeline/PipelineJson/PersonaJson.d.ts +47 -0
- package/umd/src/pipeline/PipelineJson/PipelineJson.d.ts +113 -0
- package/umd/src/pipeline/PipelineJson/PreparationJson.d.ts +22 -0
- package/umd/src/pipeline/PipelineJson/PromptTaskJson.d.ts +26 -0
- package/umd/src/pipeline/PipelineJson/ScriptTaskJson.d.ts +20 -0
- package/umd/src/pipeline/PipelineJson/SimpleTaskJson.d.ts +13 -0
- package/umd/src/pipeline/PipelineJson/TaskJson.d.ts +11 -0
- package/umd/src/pipeline/PipelineString.d.ts +11 -0
- package/umd/src/pipeline/book-notation.d.ts +20 -0
- package/umd/src/pipeline/isValidPipelineString.d.ts +13 -0
- package/umd/src/pipeline/isValidPipelineString.test.d.ts +4 -0
- package/umd/src/pipeline/prompt-notation/helpers/ParameterEscaping.d.ts +51 -0
- package/umd/src/pipeline/prompt-notation/helpers/ParameterNaming.d.ts +16 -0
- package/umd/src/pipeline/prompt-notation/helpers/ParameterSection.d.ts +34 -0
- package/umd/src/pipeline/prompt-notation.d.ts +56 -0
- package/umd/src/pipeline/prompt-notation.test.d.ts +4 -0
- package/umd/src/pipeline/validatePipelineString.d.ts +16 -0
- package/umd/src/playground/permanent/_boilerplate.d.ts +5 -0
- package/umd/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
- package/umd/src/playground/permanent/error-handling-playground.d.ts +5 -0
- package/umd/src/playground/playground.d.ts +5 -0
- package/umd/src/postprocessing/utils/extractBlock.d.ts +16 -0
- package/umd/src/postprocessing/utils/extractJsonBlock.d.ts +25 -0
- package/umd/src/postprocessing/utils/extractJsonBlock.test.d.ts +1 -0
- package/umd/src/prepare/PrepareAndScrapeOptions.d.ts +52 -0
- package/umd/src/prepare/isPipelinePrepared.d.ts +18 -0
- package/umd/src/prepare/isPipelinePrepared.test.d.ts +1 -0
- package/umd/src/prepare/preparePipeline.d.ts +22 -0
- package/umd/src/prepare/preparePipelineOnRemoteServer.d.ts +17 -0
- package/umd/src/prepare/prepareTasks.d.ts +36 -0
- package/umd/src/prepare/unpreparePipeline.d.ts +13 -0
- package/umd/src/remote-server/RemoteServer.d.ts +23 -0
- package/umd/src/remote-server/createRemoteClient.d.ts +10 -0
- package/umd/src/remote-server/openapi-types.d.ts +626 -0
- package/umd/src/remote-server/openapi.d.ts +581 -0
- package/umd/src/remote-server/socket-types/_common/PromptbookServer_Error.d.ts +7 -0
- package/umd/src/remote-server/socket-types/_subtypes/Identification.d.ts +59 -0
- package/umd/src/remote-server/socket-types/_subtypes/identificationToPromptbookToken.d.ts +11 -0
- package/umd/src/remote-server/socket-types/_subtypes/promptbookTokenToIdentification.d.ts +10 -0
- package/umd/src/remote-server/socket-types/listModels/PromptbookServer_ListModels_Request.d.ts +17 -0
- package/umd/src/remote-server/socket-types/listModels/PromptbookServer_ListModels_Response.d.ts +17 -0
- package/umd/src/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Request.d.ts +17 -0
- package/umd/src/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Response.d.ts +12 -0
- package/umd/src/remote-server/socket-types/prompt/PromptbookServer_Prompt_Request.d.ts +17 -0
- package/umd/src/remote-server/socket-types/prompt/PromptbookServer_Prompt_Response.d.ts +12 -0
- package/umd/src/remote-server/startAgentServer.d.ts +26 -0
- package/umd/src/remote-server/startRemoteServer.d.ts +28 -0
- package/umd/src/remote-server/types/RemoteClientOptions.d.ts +24 -0
- package/umd/src/remote-server/types/RemoteServerOptions.d.ts +165 -0
- package/umd/src/remote-server/ui/ServerApp.d.ts +17 -0
- package/umd/src/remote-server/ui/renderServerIndexHtml.d.ts +7 -0
- package/umd/src/remote-server/ui/types.d.ts +16 -0
- package/umd/src/scrapers/_boilerplate/BoilerplateScraper.d.ts +43 -0
- package/umd/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +9 -0
- package/umd/src/scrapers/_boilerplate/playground/boilerplate-scraper-playground.d.ts +5 -0
- package/umd/src/scrapers/_boilerplate/register-constructor.d.ts +15 -0
- package/umd/src/scrapers/_boilerplate/register-metadata.d.ts +20 -0
- package/umd/src/scrapers/_common/Converter.d.ts +25 -0
- package/umd/src/scrapers/_common/Scraper.d.ts +60 -0
- package/umd/src/scrapers/_common/ScraperIntermediateSource.d.ts +16 -0
- package/umd/src/scrapers/_common/prepareKnowledgePieces.d.ts +19 -0
- package/umd/src/scrapers/_common/prepareKnowledgePieces.test.d.ts +1 -0
- package/umd/src/scrapers/_common/register/$provideFilesystemForNode.d.ts +13 -0
- package/umd/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +15 -0
- package/umd/src/scrapers/_common/register/$provideScrapersForNode.d.ts +14 -0
- package/umd/src/scrapers/_common/register/$provideScriptingForNode.d.ts +12 -0
- package/umd/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +13 -0
- package/umd/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +13 -0
- package/umd/src/scrapers/_common/register/$scrapersRegister.d.ts +14 -0
- package/umd/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +44 -0
- package/umd/src/scrapers/_common/register/ScraperConstructor.d.ts +13 -0
- package/umd/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +35 -0
- package/umd/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
- package/umd/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +13 -0
- package/umd/src/scrapers/_common/utils/promptbookFetch.d.ts +10 -0
- package/umd/src/scrapers/_common/utils/promptbookFetch.test.d.ts +1 -0
- package/umd/src/scrapers/document/DocumentScraper.d.ts +43 -0
- package/umd/src/scrapers/document/DocumentScraper.test.d.ts +4 -0
- package/umd/src/scrapers/document/createDocumentScraper.d.ts +9 -0
- package/umd/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
- package/umd/src/scrapers/document/register-constructor.d.ts +15 -0
- package/umd/src/scrapers/document/register-metadata.d.ts +20 -0
- package/umd/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +43 -0
- package/umd/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +4 -0
- package/umd/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +10 -0
- package/umd/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
- package/umd/src/scrapers/document-legacy/register-constructor.d.ts +15 -0
- package/umd/src/scrapers/document-legacy/register-metadata.d.ts +20 -0
- package/umd/src/scrapers/markdown/MarkdownScraper.d.ts +28 -0
- package/umd/src/scrapers/markdown/MarkdownScraper.test.d.ts +4 -0
- package/umd/src/scrapers/markdown/createMarkdownScraper.d.ts +9 -0
- package/umd/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
- package/umd/src/scrapers/markdown/register-constructor.d.ts +15 -0
- package/umd/src/scrapers/markdown/register-metadata.d.ts +20 -0
- package/umd/src/scrapers/markitdown/MarkitdownScraper.d.ts +50 -0
- package/umd/src/scrapers/markitdown/createMarkitdownScraper.d.ts +11 -0
- package/umd/src/scrapers/markitdown/playground/markitdown-scraper-playground.d.ts +5 -0
- package/umd/src/scrapers/markitdown/register-constructor.d.ts +17 -0
- package/umd/src/scrapers/markitdown/register-metadata.d.ts +20 -0
- package/umd/src/scrapers/pdf/PdfScraper.d.ts +41 -0
- package/umd/src/scrapers/pdf/createPdfScraper.d.ts +10 -0
- package/umd/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
- package/umd/src/scrapers/pdf/register-constructor.d.ts +15 -0
- package/umd/src/scrapers/pdf/register-metadata.d.ts +20 -0
- package/umd/src/scrapers/website/WebsiteScraper.d.ts +50 -0
- package/umd/src/scrapers/website/createWebsiteScraper.d.ts +10 -0
- package/umd/src/scrapers/website/playground/website-scraper-playground.d.ts +5 -0
- package/umd/src/scrapers/website/register-constructor.d.ts +15 -0
- package/umd/src/scrapers/website/register-metadata.d.ts +20 -0
- package/umd/src/scrapers/website/utils/createShowdownConverter.d.ts +7 -0
- package/umd/src/scrapers/website/utils/createShowdownConverter.test.d.ts +1 -0
- package/umd/src/scripting/_test/custom-function-async.test.ts.test.d.ts +1 -0
- package/umd/src/scripting/_test/custom-function-missing.test.d.ts +1 -0
- package/umd/src/scripting/_test/custom-function-with-dependencies.test.d.ts +1 -0
- package/umd/src/scripting/_test/custom-function.test.d.ts +1 -0
- package/umd/src/scripting/_test/postprocessing.test.d.ts +1 -0
- package/umd/src/scripting/_test/script-execution-errors.test.d.ts +1 -0
- package/umd/src/scripting/_test/script-execution-tools.test.d.ts +1 -0
- package/umd/src/scripting/javascript/JavascriptEvalExecutionTools.d.ts +22 -0
- package/umd/src/scripting/javascript/JavascriptEvalExecutionTools.test.d.ts +4 -0
- package/umd/src/scripting/javascript/JavascriptExecutionTools.d.ts +8 -0
- package/umd/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +31 -0
- package/umd/src/scripting/javascript/postprocessing-functions.d.ts +56 -0
- package/umd/src/scripting/javascript/utils/extractVariablesFromJavascript.d.ts +14 -0
- package/umd/src/scripting/javascript/utils/extractVariablesFromJavascript.test.d.ts +1 -0
- package/umd/src/scripting/javascript/utils/extractVariablesFromScript.test.d.ts +1 -0
- package/umd/src/scripting/python/PythonExecutionTools.d.ts +18 -0
- package/umd/src/scripting/typescript/TypescriptExecutionTools.d.ts +18 -0
- package/umd/src/search-engines/SearchEngine.d.ts +9 -0
- package/umd/src/search-engines/SearchResult.d.ts +18 -0
- package/umd/src/search-engines/_index.d.ts +6 -0
- package/umd/src/search-engines/bing/BingSearchEngine.d.ts +15 -0
- package/umd/src/search-engines/dummy/DummySearchEngine.d.ts +15 -0
- package/umd/src/search-engines/google/GoogleSearchEngine.d.ts +18 -0
- package/umd/src/search-engines/serp/SerpSearchEngine.d.ts +15 -0
- package/umd/src/speech-recognition/BrowserSpeechRecognition.d.ts +21 -0
- package/umd/src/speech-recognition/OpenAiSpeechRecognition.d.ts +35 -0
- package/umd/src/storage/_common/PromptbookStorage.d.ts +25 -0
- package/umd/src/storage/_common/PromptbookStorage.test-type.d.ts +5 -0
- package/umd/src/storage/blackhole/BlackholeStorage.d.ts +33 -0
- package/umd/src/storage/env-storage/$EnvStorage.d.ts +41 -0
- package/umd/src/storage/file-cache-storage/FileCacheStorage.d.ts +40 -0
- package/umd/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +12 -0
- package/umd/src/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +8 -0
- package/umd/src/storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts +1 -0
- package/umd/src/storage/local-storage/getIndexedDbStorage.d.ts +11 -0
- package/umd/src/storage/local-storage/getLocalStorage.d.ts +10 -0
- package/umd/src/storage/local-storage/getSessionStorage.d.ts +10 -0
- package/umd/src/storage/local-storage/utils/IndexedDbStorageOptions.d.ts +14 -0
- package/umd/src/storage/local-storage/utils/makePromptbookStorageFromIndexedDb.d.ts +8 -0
- package/umd/src/storage/local-storage/utils/makePromptbookStorageFromWebStorage.d.ts +12 -0
- package/umd/src/storage/memory/MemoryStorage.d.ts +33 -0
- package/umd/src/storage/utils/PrefixStorage.d.ts +25 -0
- package/umd/src/transpilers/_common/BookTranspiler.d.ts +33 -0
- package/umd/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
- package/umd/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
- package/umd/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +16 -0
- package/umd/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
- package/umd/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +16 -0
- package/umd/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
- package/umd/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
- package/umd/src/transpilers/openai-sdk/register.d.ts +15 -0
- package/umd/src/types/Arrayable.d.ts +11 -0
- package/umd/src/types/IntermediateFilesStrategy.d.ts +8 -0
- package/umd/src/types/LlmCall.d.ts +20 -0
- package/umd/src/types/LlmToolDefinition.d.ts +28 -0
- package/umd/src/types/Message.d.ts +49 -0
- package/umd/src/types/ModelRequirements.d.ts +158 -0
- package/umd/src/types/ModelVariant.d.ts +15 -0
- package/umd/src/types/NonEmptyArray.d.ts +8 -0
- package/umd/src/types/Prompt.d.ts +153 -0
- package/umd/src/types/ScriptLanguage.d.ts +13 -0
- package/umd/src/types/SectionType.d.ts +21 -0
- package/umd/src/types/SpeechRecognition.d.ts +58 -0
- package/umd/src/types/TaskType.d.ts +15 -0
- package/umd/src/types/ToolCall.d.ts +116 -0
- package/umd/src/types/Updatable.d.ts +19 -0
- package/umd/src/types/typeAliasEmoji.d.ts +12 -0
- package/umd/src/types/typeAliases.d.ts +747 -0
- package/umd/src/utils/DEFAULT_THINKING_MESSAGES.d.ts +8 -0
- package/umd/src/utils/agents/resolveAgentAvatarImageUrl.d.ts +29 -0
- package/umd/src/utils/clientVersion.d.ts +65 -0
- package/umd/src/utils/color/$randomColor.d.ts +12 -0
- package/umd/src/utils/color/Color.d.ts +158 -0
- package/umd/src/utils/color/Color.test.d.ts +1 -0
- package/umd/src/utils/color/css-colors.d.ts +160 -0
- package/umd/src/utils/color/internal-utils/checkChannelValue.d.ts +11 -0
- package/umd/src/utils/color/internal-utils/hslToRgb.d.ts +17 -0
- package/umd/src/utils/color/internal-utils/rgbToHsl.d.ts +17 -0
- package/umd/src/utils/color/operators/ColorTransformer.d.ts +5 -0
- package/umd/src/utils/color/operators/darken.d.ts +10 -0
- package/umd/src/utils/color/operators/furthest.d.ts +16 -0
- package/umd/src/utils/color/operators/grayscale.d.ts +10 -0
- package/umd/src/utils/color/operators/lighten.d.ts +13 -0
- package/umd/src/utils/color/operators/mixWithColor.d.ts +12 -0
- package/umd/src/utils/color/operators/nearest.d.ts +10 -0
- package/umd/src/utils/color/operators/negative.d.ts +7 -0
- package/umd/src/utils/color/operators/negativeLightness.d.ts +7 -0
- package/umd/src/utils/color/operators/saturate.d.ts +13 -0
- package/umd/src/utils/color/operators/withAlpha.d.ts +9 -0
- package/umd/src/utils/color/parsers/ColorChannelSet.d.ts +11 -0
- package/umd/src/utils/color/parsers/parseHexColor.d.ts +11 -0
- package/umd/src/utils/color/parsers/parseHslColor.d.ts +11 -0
- package/umd/src/utils/color/parsers/parseRgbColor.d.ts +20 -0
- package/umd/src/utils/color/utils/areColorsEqual.d.ts +14 -0
- package/umd/src/utils/color/utils/colorDistance.d.ts +21 -0
- package/umd/src/utils/color/utils/colorHue.d.ts +11 -0
- package/umd/src/utils/color/utils/colorHueDistance.d.ts +11 -0
- package/umd/src/utils/color/utils/colorHueDistance.test.d.ts +1 -0
- package/umd/src/utils/color/utils/colorLuminance.d.ts +9 -0
- package/umd/src/utils/color/utils/colorSatulightion.d.ts +7 -0
- package/umd/src/utils/color/utils/colorSaturation.d.ts +9 -0
- package/umd/src/utils/color/utils/colorToDataUrl.d.ts +11 -0
- package/umd/src/utils/color/utils/mixColors.d.ts +11 -0
- package/umd/src/utils/editable/edit-pipeline-string/addPipelineCommand.d.ts +17 -0
- package/umd/src/utils/editable/edit-pipeline-string/addPipelineCommand.test.d.ts +1 -0
- package/umd/src/utils/editable/edit-pipeline-string/deflatePipeline.d.ts +13 -0
- package/umd/src/utils/editable/edit-pipeline-string/deflatePipeline.test.d.ts +1 -0
- package/umd/src/utils/editable/edit-pipeline-string/removePipelineCommand.d.ts +22 -0
- package/umd/src/utils/editable/edit-pipeline-string/removePipelineCommand.test.d.ts +1 -0
- package/umd/src/utils/editable/types/PipelineEditableSerialized.d.ts +27 -0
- package/umd/src/utils/editable/utils/isFlatPipeline.d.ts +8 -0
- package/umd/src/utils/editable/utils/isFlatPipeline.test.d.ts +1 -0
- package/umd/src/utils/editable/utils/renamePipelineParameter.d.ts +29 -0
- package/umd/src/utils/editable/utils/renamePipelineParameter.test.d.ts +1 -0
- package/umd/src/utils/editable/utils/stringifyPipelineJson.d.ts +16 -0
- package/umd/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
- package/umd/src/utils/environment/$getGlobalScope.d.ts +10 -0
- package/umd/src/utils/environment/$isRunningInBrowser.d.ts +11 -0
- package/umd/src/utils/environment/$isRunningInJest.d.ts +11 -0
- package/umd/src/utils/environment/$isRunningInNode.d.ts +11 -0
- package/umd/src/utils/environment/$isRunningInWebWorker.d.ts +11 -0
- package/umd/src/utils/execCommand/$execCommand.d.ts +17 -0
- package/umd/src/utils/execCommand/$execCommandNormalizeOptions.d.ts +11 -0
- package/umd/src/utils/execCommand/$execCommands.d.ts +19 -0
- package/umd/src/utils/execCommand/ExecCommandOptions.d.ts +51 -0
- package/umd/src/utils/execCommand/execCommand.test.d.ts +1 -0
- package/umd/src/utils/execCommand/execCommandNormalizeOptions.test.d.ts +1 -0
- package/umd/src/utils/expectation-counters/constants.d.ts +16 -0
- package/umd/src/utils/expectation-counters/countCharacters.d.ts +11 -0
- package/umd/src/utils/expectation-counters/countCharacters.test.d.ts +1 -0
- package/umd/src/utils/expectation-counters/countLines.d.ts +13 -0
- package/umd/src/utils/expectation-counters/countLines.test.d.ts +1 -0
- package/umd/src/utils/expectation-counters/countPages.d.ts +13 -0
- package/umd/src/utils/expectation-counters/countPages.test.d.ts +1 -0
- package/umd/src/utils/expectation-counters/countParagraphs.d.ts +11 -0
- package/umd/src/utils/expectation-counters/countParagraphs.test.d.ts +1 -0
- package/umd/src/utils/expectation-counters/countSentences.d.ts +17 -0
- package/umd/src/utils/expectation-counters/countSentences.test.d.ts +1 -0
- package/umd/src/utils/expectation-counters/countWords.d.ts +12 -0
- package/umd/src/utils/expectation-counters/countWords.test.d.ts +1 -0
- package/umd/src/utils/expectation-counters/index.d.ts +12 -0
- package/umd/src/utils/files/$induceBookDownload.d.ts +13 -0
- package/umd/src/utils/files/$induceFileDownload.d.ts +13 -0
- package/umd/src/utils/files/ObjectUrl.d.ts +46 -0
- package/umd/src/utils/files/extensionToMimeType.d.ts +8 -0
- package/umd/src/utils/files/extensionToMimeType.test.d.ts +1 -0
- package/umd/src/utils/files/getFileExtension.d.ts +8 -0
- package/umd/src/utils/files/getFileExtension.test.d.ts +1 -0
- package/umd/src/utils/files/isDirectoryExisting.d.ts +14 -0
- package/umd/src/utils/files/isDirectoryExisting.test.d.ts +1 -0
- package/umd/src/utils/files/isExecutable.d.ts +11 -0
- package/umd/src/utils/files/isFileExisting.d.ts +13 -0
- package/umd/src/utils/files/isFileExisting.test.d.ts +1 -0
- package/umd/src/utils/files/listAllFiles.d.ts +16 -0
- package/umd/src/utils/files/listAllFiles.test.d.ts +1 -0
- package/umd/src/utils/files/mimeTypeToExtension.d.ts +10 -0
- package/umd/src/utils/files/mimeTypeToExtension.test.d.ts +1 -0
- package/umd/src/utils/knowledge/inlineKnowledgeSource.d.ts +42 -0
- package/umd/src/utils/knowledge/inlineKnowledgeSource.test.d.ts +1 -0
- package/umd/src/utils/knowledge/simplifyKnowledgeLabel.d.ts +20 -0
- package/umd/src/utils/knowledge/simplifyKnowledgeLabel.test.d.ts +1 -0
- package/umd/src/utils/language/getBrowserPreferredSpeechRecognitionLanguage.d.ts +35 -0
- package/umd/src/utils/linguistic-hash/LinguisticHashLanguage.d.ts +41 -0
- package/umd/src/utils/linguistic-hash/linguisticHash.d.ts +14 -0
- package/umd/src/utils/linguistic-hash/linguisticHash.test.d.ts +1 -0
- package/umd/src/utils/linguistic-hash/linguisticHashTypes.d.ts +19 -0
- package/umd/src/utils/linguistic-hash/linguisticHashWordCount.d.ts +31 -0
- package/umd/src/utils/linguistic-hash/linguisticHashWordSelection.d.ts +22 -0
- package/umd/src/utils/linguistic-hash/linguisticHashWords.cs.d.ts +10 -0
- package/umd/src/utils/linguistic-hash/linguisticHashWords.en.d.ts +10 -0
- package/umd/src/utils/markdown/addAutoGeneratedSection.d.ts +14 -0
- package/umd/src/utils/markdown/addAutoGeneratedSection.test.d.ts +1 -0
- package/umd/src/utils/markdown/createMarkdownChart.d.ts +38 -0
- package/umd/src/utils/markdown/createMarkdownChart.test.d.ts +1 -0
- package/umd/src/utils/markdown/createMarkdownTable.d.ts +11 -0
- package/umd/src/utils/markdown/createMarkdownTable.test.d.ts +1 -0
- package/umd/src/utils/markdown/escapeMarkdownBlock.d.ts +13 -0
- package/umd/src/utils/markdown/escapeMarkdownBlock.test.d.ts +1 -0
- package/umd/src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts +1 -0
- package/umd/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +36 -0
- package/umd/src/utils/markdown/extractAllBlocksFromMarkdown.test.d.ts +1 -0
- package/umd/src/utils/markdown/extractAllListItemsFromMarkdown.d.ts +14 -0
- package/umd/src/utils/markdown/extractAllListItemsFromMarkdown.test.d.ts +1 -0
- package/umd/src/utils/markdown/extractOneBlockFromMarkdown.d.ts +22 -0
- package/umd/src/utils/markdown/extractOneBlockFromMarkdown.test.d.ts +1 -0
- package/umd/src/utils/markdown/flattenMarkdown.d.ts +17 -0
- package/umd/src/utils/markdown/flattenMarkdown.test.d.ts +1 -0
- package/umd/src/utils/markdown/humanizeAiText.d.ts +13 -0
- package/umd/src/utils/markdown/humanizeAiText.test.d.ts +1 -0
- package/umd/src/utils/markdown/humanizeAiTextEllipsis.d.ts +13 -0
- package/umd/src/utils/markdown/humanizeAiTextEmdashed.d.ts +13 -0
- package/umd/src/utils/markdown/humanizeAiTextQuotes.d.ts +13 -0
- package/umd/src/utils/markdown/humanizeAiTextSources.d.ts +13 -0
- package/umd/src/utils/markdown/humanizeAiTextWhitespace.d.ts +13 -0
- package/umd/src/utils/markdown/parseMarkdownSection.d.ts +32 -0
- package/umd/src/utils/markdown/parseMarkdownSection.test.d.ts +1 -0
- package/umd/src/utils/markdown/prettifyMarkdown.d.ts +19 -0
- package/umd/src/utils/markdown/promptbookifyAiText.d.ts +12 -0
- package/umd/src/utils/markdown/promptbookifyAiText.test.d.ts +1 -0
- package/umd/src/utils/markdown/removeMarkdownComments.d.ts +10 -0
- package/umd/src/utils/markdown/removeMarkdownComments.test.d.ts +1 -0
- package/umd/src/utils/markdown/removeMarkdownFormatting.d.ts +9 -0
- package/umd/src/utils/markdown/removeMarkdownFormatting.test.d.ts +1 -0
- package/umd/src/utils/markdown/removeMarkdownLinks.d.ts +11 -0
- package/umd/src/utils/markdown/removeMarkdownLinks.test.d.ts +4 -0
- package/umd/src/utils/markdown/splitMarkdownIntoSections.d.ts +14 -0
- package/umd/src/utils/markdown/splitMarkdownIntoSections.test.d.ts +1 -0
- package/umd/src/utils/markdown/trimCodeBlock.d.ts +10 -0
- package/umd/src/utils/markdown/trimCodeBlock.test.d.ts +1 -0
- package/umd/src/utils/markdown/trimEndOfCodeBlock.d.ts +9 -0
- package/umd/src/utils/markdown/trimEndOfCodeBlock.test.d.ts +1 -0
- package/umd/src/utils/misc/$Register.d.ts +40 -0
- package/umd/src/utils/misc/$getCurrentDate.d.ts +10 -0
- package/umd/src/utils/misc/FromtoItems.d.ts +19 -0
- package/umd/src/utils/misc/aboutPromptbookInformation.d.ts +27 -0
- package/umd/src/utils/misc/arrayableToArray.d.ts +11 -0
- package/umd/src/utils/misc/arrayableToArray.test.d.ts +1 -0
- package/umd/src/utils/misc/computeHash.d.ts +11 -0
- package/umd/src/utils/misc/computeHash.test.d.ts +1 -0
- package/umd/src/utils/misc/debounce.d.ts +5 -0
- package/umd/src/utils/misc/emojis.d.ts +24 -0
- package/umd/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +21 -0
- package/umd/src/utils/misc/parseNumber.d.ts +17 -0
- package/umd/src/utils/misc/parseNumber.test.d.ts +1 -0
- package/umd/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
- package/umd/src/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +12 -0
- package/umd/src/utils/normalization/IKeywords.d.ts +21 -0
- package/umd/src/utils/normalization/capitalize.d.ts +8 -0
- package/umd/src/utils/normalization/capitalize.test.d.ts +1 -0
- package/umd/src/utils/normalization/constructImageFilename.d.ts +18 -0
- package/umd/src/utils/normalization/constructImageFilename.test.d.ts +1 -0
- package/umd/src/utils/normalization/decapitalize.d.ts +8 -0
- package/umd/src/utils/normalization/decapitalize.test.d.ts +1 -0
- package/umd/src/utils/normalization/isValidKeyword.d.ts +10 -0
- package/umd/src/utils/normalization/isValidKeyword.test.d.ts +1 -0
- package/umd/src/utils/normalization/nameToUriPart.d.ts +9 -0
- package/umd/src/utils/normalization/nameToUriPart.test.d.ts +1 -0
- package/umd/src/utils/normalization/nameToUriParts.d.ts +9 -0
- package/umd/src/utils/normalization/nameToUriParts.test.d.ts +1 -0
- package/umd/src/utils/normalization/normalize-to-kebab-case.d.ts +23 -0
- package/umd/src/utils/normalization/normalize-to-kebab-case.test.d.ts +1 -0
- package/umd/src/utils/normalization/normalizeMessageText.d.ts +9 -0
- package/umd/src/utils/normalization/normalizeMessageText.test.d.ts +1 -0
- package/umd/src/utils/normalization/normalizeTo_PascalCase.d.ts +20 -0
- package/umd/src/utils/normalization/normalizeTo_PascalCase.test.d.ts +1 -0
- package/umd/src/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +28 -0
- package/umd/src/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts +1 -0
- package/umd/src/utils/normalization/normalizeTo_camelCase.d.ts +24 -0
- package/umd/src/utils/normalization/normalizeTo_camelCase.test.d.ts +1 -0
- package/umd/src/utils/normalization/normalizeTo_snake_case.d.ts +19 -0
- package/umd/src/utils/normalization/normalizeTo_snake_case.test.d.ts +1 -0
- package/umd/src/utils/normalization/normalizeWhitespaces.d.ts +8 -0
- package/umd/src/utils/normalization/normalizeWhitespaces.test.d.ts +1 -0
- package/umd/src/utils/normalization/orderJson.d.ts +21 -0
- package/umd/src/utils/normalization/orderJson.test.d.ts +4 -0
- package/umd/src/utils/normalization/parseKeywords.d.ts +16 -0
- package/umd/src/utils/normalization/parseKeywords.test.d.ts +1 -0
- package/umd/src/utils/normalization/parseKeywordsFromString.d.ts +9 -0
- package/umd/src/utils/normalization/parseKeywordsFromString.test.d.ts +1 -0
- package/umd/src/utils/normalization/removeDiacritics.d.ts +13 -0
- package/umd/src/utils/normalization/removeDiacritics.test.d.ts +1 -0
- package/umd/src/utils/normalization/removeEmojis.d.ts +10 -0
- package/umd/src/utils/normalization/removeEmojis.test.d.ts +1 -0
- package/umd/src/utils/normalization/removeQuotes.d.ts +15 -0
- package/umd/src/utils/normalization/removeQuotes.test.d.ts +1 -0
- package/umd/src/utils/normalization/searchKeywords.d.ts +13 -0
- package/umd/src/utils/normalization/searchKeywords.test.d.ts +1 -0
- package/umd/src/utils/normalization/suffixUrl.d.ts +7 -0
- package/umd/src/utils/normalization/suffixUrl.test.d.ts +1 -0
- package/umd/src/utils/normalization/titleToName.d.ts +11 -0
- package/umd/src/utils/normalization/titleToName.test.d.ts +1 -0
- package/umd/src/utils/normalization/unwrapResult.d.ts +37 -0
- package/umd/src/utils/normalization/unwrapResult.test.d.ts +1 -0
- package/umd/src/utils/organization/$sideEffect.d.ts +9 -0
- package/umd/src/utils/organization/$side_effect.d.ts +7 -0
- package/umd/src/utils/organization/TODO_USE.d.ts +12 -0
- package/umd/src/utils/organization/TODO_any.d.ts +6 -0
- package/umd/src/utils/organization/TODO_narrow.d.ts +6 -0
- package/umd/src/utils/organization/TODO_object.d.ts +6 -0
- package/umd/src/utils/organization/TODO_remove_as.d.ts +6 -0
- package/umd/src/utils/organization/TODO_string.d.ts +6 -0
- package/umd/src/utils/organization/TODO_unknown.d.ts +6 -0
- package/umd/src/utils/organization/___and___.d.ts +7 -0
- package/umd/src/utils/organization/___or___.d.ts +6 -0
- package/umd/src/utils/organization/empty_object.d.ts +10 -0
- package/umd/src/utils/organization/just.d.ts +14 -0
- package/umd/src/utils/organization/just_empty_object.d.ts +12 -0
- package/umd/src/utils/organization/keepImported.d.ts +9 -0
- package/umd/src/utils/organization/keepTypeImported.d.ts +8 -0
- package/umd/src/utils/organization/keepUnused.d.ts +16 -0
- package/umd/src/utils/organization/preserve.d.ts +21 -0
- package/umd/src/utils/organization/really_any.d.ts +13 -0
- package/umd/src/utils/organization/really_unknown.d.ts +6 -0
- package/umd/src/utils/organization/spaceTrim.d.ts +11 -0
- package/umd/src/utils/parameters/extractParameterNames.d.ts +10 -0
- package/umd/src/utils/parameters/extractParameterNames.test.d.ts +1 -0
- package/umd/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
- package/umd/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts +1 -0
- package/umd/src/utils/parameters/numberToString.d.ts +7 -0
- package/umd/src/utils/parameters/numberToString.test.d.ts +1 -0
- package/umd/src/utils/parameters/templateParameters.d.ts +15 -0
- package/umd/src/utils/parameters/templateParameters.test.d.ts +1 -0
- package/umd/src/utils/parameters/valueToString.d.ts +17 -0
- package/umd/src/utils/parameters/valueToString.test.d.ts +1 -0
- package/umd/src/utils/random/$generateBookBoilerplate.d.ts +35 -0
- package/umd/src/utils/random/$randomAgentPersona.d.ts +15 -0
- package/umd/src/utils/random/$randomAgentRule.d.ts +14 -0
- package/umd/src/utils/random/$randomBase58.d.ts +12 -0
- package/umd/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
- package/umd/src/utils/random/$randomItem.d.ts +9 -0
- package/umd/src/utils/random/$randomSeed.d.ts +13 -0
- package/umd/src/utils/random/$randomToken.d.ts +15 -0
- package/umd/src/utils/random/CzechNamePool.d.ts +7 -0
- package/umd/src/utils/random/EnglishNamePool.d.ts +7 -0
- package/umd/src/utils/random/NamePool.d.ts +17 -0
- package/umd/src/utils/random/getNamePool.d.ts +10 -0
- package/umd/src/utils/serialization/$deepFreeze.d.ts +15 -0
- package/umd/src/utils/serialization/asSerializable.d.ts +15 -0
- package/umd/src/utils/serialization/asSerializable.test.d.ts +1 -0
- package/umd/src/utils/serialization/checkSerializableAsJson.d.ts +45 -0
- package/umd/src/utils/serialization/clonePipeline.d.ts +14 -0
- package/umd/src/utils/serialization/deepClone.d.ts +15 -0
- package/umd/src/utils/serialization/deepClone.test.d.ts +1 -0
- package/umd/src/utils/serialization/exportJson.d.ts +29 -0
- package/umd/src/utils/serialization/isSerializableAsJson.d.ts +25 -0
- package/umd/src/utils/serialization/isSerializableAsJson.test.d.ts +1 -0
- package/umd/src/utils/serialization/jsonStringsToJsons.d.ts +9 -0
- package/umd/src/utils/serialization/jsonStringsToJsons.test.d.ts +1 -0
- package/umd/src/utils/serialization/serializeToPromptbookJavascript.d.ts +22 -0
- package/umd/src/utils/sets/difference.d.ts +10 -0
- package/umd/src/utils/sets/difference.test.d.ts +1 -0
- package/umd/src/utils/sets/intersection.d.ts +7 -0
- package/umd/src/utils/sets/intersection.test.d.ts +1 -0
- package/umd/src/utils/sets/union.d.ts +7 -0
- package/umd/src/utils/sets/union.test.d.ts +1 -0
- package/umd/src/utils/take/classes/TakeChain.d.ts +11 -0
- package/umd/src/utils/take/interfaces/ITakeChain.d.ts +12 -0
- package/umd/src/utils/take/interfaces/Takeable.d.ts +7 -0
- package/umd/src/utils/take/take.d.ts +12 -0
- package/umd/src/utils/take/take.test.d.ts +1 -0
- package/umd/src/utils/toolCalls/getToolCallIdentity.d.ts +10 -0
- package/umd/src/utils/validators/email/isValidEmail.d.ts +8 -0
- package/umd/src/utils/validators/email/isValidEmail.test.d.ts +1 -0
- package/umd/src/utils/validators/filePath/isRootPath.d.ts +12 -0
- package/umd/src/utils/validators/filePath/isRootPath.test.d.ts +4 -0
- package/umd/src/utils/validators/filePath/isValidFilePath.d.ts +12 -0
- package/umd/src/utils/validators/filePath/isValidFilePath.test.d.ts +1 -0
- package/umd/src/utils/validators/javascriptName/isValidJavascriptName.d.ts +10 -0
- package/umd/src/utils/validators/javascriptName/isValidJavascriptName.test.d.ts +1 -0
- package/umd/src/utils/validators/parameterName/validateParameterName.d.ts +13 -0
- package/umd/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
- package/umd/src/utils/validators/semanticVersion/isValidPromptbookVersion.d.ts +15 -0
- package/umd/src/utils/validators/semanticVersion/isValidPromptbookVersion.test.d.ts +1 -0
- package/umd/src/utils/validators/semanticVersion/isValidSemanticVersion.d.ts +12 -0
- package/umd/src/utils/validators/semanticVersion/isValidSemanticVersion.test.d.ts +1 -0
- package/umd/src/utils/validators/url/isHostnameOnPrivateNetwork.d.ts +11 -0
- package/umd/src/utils/validators/url/isHostnameOnPrivateNetwork.test.d.ts +1 -0
- package/umd/src/utils/validators/url/isUrlOnPrivateNetwork.d.ts +13 -0
- package/umd/src/utils/validators/url/isUrlOnPrivateNetwork.test.d.ts +1 -0
- package/umd/src/utils/validators/url/isValidAgentUrl.d.ts +16 -0
- package/umd/src/utils/validators/url/isValidAgentUrl.test.d.ts +1 -0
- package/umd/src/utils/validators/url/isValidPipelineUrl.d.ts +16 -0
- package/umd/src/utils/validators/url/isValidPipelineUrl.test.d.ts +1 -0
- package/umd/src/utils/validators/url/isValidUrl.d.ts +15 -0
- package/umd/src/utils/validators/url/isValidUrl.test.d.ts +1 -0
- package/umd/src/utils/validators/uuid/isValidUuid.d.ts +10 -0
- package/umd/src/utils/validators/uuid/isValidUuid.test.d.ts +1 -0
- package/umd/src/version.d.ts +26 -0
- package/umd/src/wizard/$getCompiledBook.d.ts +15 -0
- package/umd/src/wizard/wizard.d.ts +75 -0
- package/esm/typings/src/_packages/core.index.d.ts +0 -408
- package/esm/typings/src/_packages/types.index.d.ts +0 -816
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +0 -124
- package/esm/typings/src/book-components/Chat/Chat/ChatMessageItem.d.ts +0 -79
- package/esm/typings/src/book-components/Chat/Chat/ChatMessageList.d.ts +0 -41
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +0 -302
- package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +0 -87
- package/esm/typings/src/commitments/MEMORY/MEMORY.d.ts +0 -105
- package/esm/typings/src/commitments/_common/toolRuntimeContext.d.ts +0 -49
- package/esm/typings/src/commitments/index.d.ts +0 -51
- package/esm/typings/src/constants.d.ts +0 -205
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +0 -100
- package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +0 -56
- package/esm/typings/src/utils/color/Color.d.ts +0 -202
- package/esm/typings/src/version.d.ts +0 -26
- /package/esm/{typings/books → books}/index.d.ts +0 -0
- /package/esm/{typings/servers.d.ts → servers.d.ts} +0 -0
- /package/esm/{typings/src → src}/_packages/anthropic-claude.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/azure-openai.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/browser.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/cli.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/color.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/components.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/deepseek.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/documents.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/editable.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/fake-llm.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/google.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/javascript.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/legacy-documents.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/markdown-utils.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/markitdown.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/node.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/ollama.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/openai.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/pdf.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/remote-client.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/remote-server.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/templates.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/utils.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/vercel.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/website-crawler.index.d.ts +0 -0
- /package/esm/{typings/src → src}/_packages/wizard.index.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/AgentModelRequirements.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/AgentReferenceResolver.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/AgentSourceParseResult.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/BookEditable.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/CreateAgentModelRequirementsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/communication-samples.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/computeAgentHash.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/computeAgentHash.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirements.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirements.tools.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.agentReferenceResolver.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.blocks.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.closed.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.delete.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.import.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createCommitmentRegex.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/createDefaultAgentName.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/extractMetaLinks.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/normalizeAgentName.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/normalizeAgentName.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/padBook.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSource.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSource.import.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSource.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSourceWithCommitments.blocks.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/parseParameters.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/parseTeamCommitment.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/removeCommentsFromSystemMessage.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/agent-source/string_book.d.ts +0 -0
- /package/esm/{typings/src → src}/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarChip/AvatarChip.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarChip/AvatarChipFromSource.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarChip/index.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarProfile/AvatarProfileFromSource.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/AvatarProfile/AvatarProfile/AvatarProfileTooltip.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/BookEditor/BookEditor.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/BookEditor/BookEditorActionbar.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/BookEditor/BookEditorMonaco.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/AgentChat/AgentChat.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/AgentChat/AgentChat.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/AgentChat/AgentChatProps.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/AgentChip/AgentChip.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/AgentChip/index.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/Chat.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatActionsBar.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatCitationModal.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatInputArea.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatMessageMap.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatRatingModal.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatSelfLearningSummary.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatSoundToggle.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatToolCallModal.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ChatToolCallModalComponents.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ClockIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/ImagePromptRenderer.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/Chat/constants.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/CodeBlock/CodeBlock.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/LlmChat/FriendlyErrorMessage.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/LlmChat/LlmChat.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/LlmChat/LlmChat.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/LlmChat/defaults.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/MockedChat/MockedChat.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/MockedChat/constants.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/SourceChip/SourceChip.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/SourceChip/index.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/ChatEffectsSystem.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/components/ConfettiEffect.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/components/HeartsEffect.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/configs/defaultEffectConfigs.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/index.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffect.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffectConfig.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffectType.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/types/ChatEffectsSystemProps.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/effects/utils/detectEffects.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/hooks/index.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/hooks/useChatActionsOverlap.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/hooks/useChatAutoScroll.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/hooks/useChatRatings.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/hooks/useSendMessageToLlmChat.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/_common/getChatSaveFormatDefinitions.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/_common/string_chat_format_name.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/index.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/json/jsonSaveFormatDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/markdown/mdSaveFormatDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/pdf/buildChatPdf.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/react/reactSaveFormatDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/save/text/txtSaveFormatDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/types/ChatMessage.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/types/ChatParticipant.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/ChatPersistence.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/ExportFormat.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/addUtmParamsToUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/citationHelpers.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/citationHelpers.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/collectTeamToolCallSummary.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/createShortLinkForChat.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/createTeamToolNameFromUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/downloadFile.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/exportChatHistory.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/generatePdfContent.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/generateQrDataUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/getChatMessageTimingDisplay.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/getPromptbookBranding.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/getToolCallChipletInfo.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/loadAgentProfile.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToHtml.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToJson.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToMarkdown.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/messagesToText.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/parseCitationMarker.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/parseCitationsFromContent.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/parseCitationsFromContent.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/parseImagePrompts.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/parseImagePrompts.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/parseMessageButtons.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/resolveCitationUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/resolveCitationUrl.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/sanitizeStreamingMessageContent.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/sanitizeStreamingMessageContent.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/splitMessageContentIntoSegments.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/splitMessageContentIntoSegments.test.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Chat/utils/toolCallParsing.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Qr/BrandedQrCode.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Qr/GenericQrCode.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Qr/PromptbookQrCode.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/Qr/useQrCode.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/Dropdown/Dropdown.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/MenuHoisting/MenuHoistingContext.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/Modal/Modal.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/Tooltip/Tooltip.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/react-utils/classNames.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/react-utils/collectCssTextsForClass.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/react-utils/escapeHtml.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/_common/react-utils/escapeRegex.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/AboutIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/ArrowIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/AttachmentIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/CameraIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/CloseIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/DownloadIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/EmailIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/ExitFullscreenIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/FullscreenIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/MenuIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/MicIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/PauseIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/PlayIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/ResetIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/SaveIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/SendIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/TeacherIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/book-components/icons/TemplateIcon.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/_boilerplate.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/about.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/common/handleActionErrors.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/hello.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/list-models.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/list-scrapers.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/login.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/make.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/prettify.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/run.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/runInteractiveChatbot.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/start-agents-server.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/start-pipelines-server.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/cli-commands/test-command.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/common/$addGlobalOptionsToCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/common/$provideLlmToolsForCli.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/main.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/promptbookCli.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/test/ptbk.d.ts +0 -0
- /package/esm/{typings/src → src}/cli/test/ptbk.test.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/agent-collection/AgentCollection.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabaseOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/PipelineCollection.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/SimplePipelineCollection.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/constructors/createPipelineSubcollection.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/pipelineCollectionToJson.d.ts +0 -0
- /package/esm/{typings/src → src}/collection/pipeline-collection/pipelineCollectionToJson.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/BOOK_VERSION/BookVersionCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/BOOK_VERSION/bookVersionCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/BOOK_VERSION/bookVersionCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/EXPECT/ExpectCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/EXPECT/expectCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/EXPECT/expectCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FOREACH/ForeachCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FOREACH/ForeachJson.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FOREACH/foreachCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FOREACH/foreachCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FORMAT/FormatCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FORMAT/formatCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FORMAT/formatCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FORMFACTOR/FormfactorCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FORMFACTOR/formfactorCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/FORMFACTOR/formfactorCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/JOKER/JokerCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/JOKER/jokerCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/JOKER/jokerCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/KNOWLEDGE/KnowledgeCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/KNOWLEDGE/knowledgeCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/MODEL/ModelCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/MODEL/modelCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/MODEL/modelCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/PARAMETER/ParameterCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/PARAMETER/parameterCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/PARAMETER/parameterCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/PERSONA/PersonaCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/PERSONA/personaCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/PERSONA/personaCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/POSTPROCESS/PostprocessCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/POSTPROCESS/postprocessCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/POSTPROCESS/postprocessCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/SECTION/SectionCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/SECTION/sectionCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/SECTION/sectionCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/URL/UrlCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/URL/urlCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/URL/urlCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/X_ACTION/ActionCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/X_ACTION/actionCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/X_ACTION/actionCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/X_INSTRUMENT/InstrumentCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/X_INSTRUMENT/instrumentCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_BOILERPLATE/BoilerplateCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_BOILERPLATE/boilerplateCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/getParserForCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/getParserForCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/parseCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/stringifyCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/stringifyCommand.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/types/Command.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/types/CommandParser.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/types/CommandType.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/_common/types/CommandUsagePlaces.d.ts +0 -0
- /package/esm/{typings/src → src}/commands/index.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/ACTION/ACTION.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/CLOSED/CLOSED.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/CLOSED/CLOSED.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/COMPONENT/COMPONENT.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/DELETE/DELETE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/DICTIONARY/DICTIONARY.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/FORMAT/FORMAT.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/FROM/FROM.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/GOAL/GOAL.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/IMPORT/IMPORT.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/KNOWLEDGE/KNOWLEDGE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/LANGUAGE/LANGUAGE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/MEMORY/MEMORY.test.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/MESSAGE/AgentMessageCommitmentDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/MESSAGE/InitialMessageCommitmentDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/MESSAGE/MESSAGE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/MESSAGE/UserMessageCommitmentDefinition.d.ts +0 -0
- /package/esm/{typings/src/commitments/TEMPLATE/TEMPLATE.test.d.ts → src/commitments/MESSAGE_SUFFIX/MESSAGE_SUFFIX.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/commitments/META/META.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/META/META_DESCRIPTION.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/META_COLOR/META_COLOR.d.ts +0 -0
- /package/esm/{typings/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts → src/commitments/META_DISCLAIMER/META_DISCLAIMER.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/commitments/META_FONT/META_FONT.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/META_IMAGE/META_IMAGE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/META_LINK/META_LINK.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/MODEL/MODEL.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/NOTE/NOTE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/OPEN/OPEN.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/PERSONA/PERSONA.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/RULE/RULE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/SAMPLE/SAMPLE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/SCENARIO/SCENARIO.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/STYLE/STYLE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/TEAM/TEAM.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/TEMPLATE/TEMPLATE.d.ts +0 -0
- /package/esm/{typings/src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.test.d.ts → src/commitments/TEMPLATE/TEMPLATE.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/commitments/USE/USE.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/USE_BROWSER/USE_BROWSER.d.ts +0 -0
- /package/esm/{typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts → src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/commitments/USE_BROWSER/fetchUrlContent.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/USE_EMAIL/USE_EMAIL.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.d.ts +0 -0
- /package/esm/{typings/src/commitments/USE_TIME/USE_TIME.test.d.ts → src/commitments/USE_IMAGE_GENERATOR/USE_IMAGE_GENERATOR.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/commitments/USE_MCP/USE_MCP.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +0 -0
- /package/esm/{typings/src/conversion/compilePipeline.test.d.ts → src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/commitments/USE_TIME/USE_TIME.d.ts +0 -0
- /package/esm/{typings/src/conversion/parsePipeline.test.d.ts → src/commitments/USE_TIME/USE_TIME.test.d.ts} +0 -0
- /package/esm/{typings/src/conversion/utils/extractParameterNamesFromTask.test.d.ts → src/commitments/USE_USER_LOCATION/USE_USER_LOCATION.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/commitments/_base/BaseCommitmentDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_base/BookCommitment.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_base/CommitmentDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_base/NotYetImplementedCommitmentDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_base/ParsedCommitment.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_base/createEmptyAgentModelRequirements.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_base/formatOptionalInstructionBlock.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/commitmentToolFunctions.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentDefinitions.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentTypes.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentsToolFunctionsForBrowser.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentsToolFunctionsForNode.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/getAllCommitmentsToolTitles.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/getCommitmentDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/getGroupedCommitmentDefinitions.d.ts +0 -0
- /package/esm/{typings/src → src}/commitments/_common/isCommitmentSupported.d.ts +0 -0
- /package/esm/{typings/src → src}/config.d.ts +0 -0
- /package/esm/{typings/src → src}/config.test.d.ts +0 -0
- /package/esm/{typings/src → src}/constants/streaming.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/archive/loadArchive.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/archive/saveArchive.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/compilePipeline.d.ts +0 -0
- /package/esm/{typings/src/dialogs/user-interface-execution-tools.test.d.ts → src/conversion/compilePipeline.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/conversion/compilePipelineOnRemoteServer.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/parsePipeline.d.ts +0 -0
- /package/esm/{typings/src/errors/utils/deserializeError.test.d.ts → src/conversion/parsePipeline.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/conversion/pipelineJsonToString.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/prettify/PrettifyOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/prettify/prettifyPipelineString.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/prettify/renderPipelineMermaidOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/utils/extractParameterNamesFromTask.d.ts +0 -0
- /package/esm/{typings/src/errors/utils/serializeError.test.d.ts → src/conversion/utils/extractParameterNamesFromTask.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/conversion/validation/_importPipeline.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/validation/pipelineStringToJson-parseErrors.test.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/validation/validatePipeline-logicErrors.test.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/validation/validatePipeline.d.ts +0 -0
- /package/esm/{typings/src → src}/conversion/validation/validatePipeline.test.d.ts +0 -0
- /package/esm/{typings/src → src}/dialogs/callback/CallbackInterfaceTools.d.ts +0 -0
- /package/esm/{typings/src → src}/dialogs/callback/CallbackInterfaceToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/dialogs/simple-prompt/SimplePromptInterfaceTools.d.ts +0 -0
- /package/esm/{typings/src/executables/apps/locateLibreoffice.test.d.ts → src/dialogs/user-interface-execution-tools.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/errors/0-BoilerplateError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/0-index.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/AbstractFormatError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/AuthenticationError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/CollectionError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/DatabaseError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/EnvironmentMismatchError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/ExpectError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/KnowledgeScrapeError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/LimitReachedError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/MissingToolsError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/NotAllowed.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/NotFoundError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/NotYetImplementedError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/ParseError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/PipelineExecutionError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/PipelineLogicError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/PipelineUrlError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/PromptbookFetchError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/UnexpectedError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/WrappedError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/assertsError.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/utils/ErrorJson.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/utils/deserializeError.d.ts +0 -0
- /package/esm/{typings/src/executables/apps/locatePandoc.test.d.ts → src/errors/utils/deserializeError.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/errors/utils/getErrorReportUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/errors/utils/serializeError.d.ts +0 -0
- /package/esm/{typings/src/executables/locateApp.test.d.ts → src/errors/utils/serializeError.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/executables/$provideExecutablesForNode.d.ts +0 -0
- /package/esm/{typings/src → src}/executables/apps/locateLibreoffice.d.ts +0 -0
- /package/esm/{typings/src/execution/execution-report/countWorkingDuration.test.d.ts → src/executables/apps/locateLibreoffice.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/executables/apps/locatePandoc.d.ts +0 -0
- /package/esm/{typings/src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.test.d.ts → src/executables/apps/locatePandoc.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/executables/locateApp.d.ts +0 -0
- /package/esm/{typings/src/execution/utils/addUsage.test.d.ts → src/executables/locateApp.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/executables/platforms/locateAppOnLinux.d.ts +0 -0
- /package/esm/{typings/src → src}/executables/platforms/locateAppOnMacOs.d.ts +0 -0
- /package/esm/{typings/src → src}/executables/platforms/locateAppOnWindows.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/AbstractTaskResult.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/AvailableModel.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/CommonToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/EmbeddingVector.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/Executables.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/ExecutionTask.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/ExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/FilesystemTools.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/LlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/LlmExecutionToolsConstructor.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/PipelineExecutor.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/PipelineExecutorResult.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/PromptResult.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/PromptbookFetch.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/PromptbookFetch.test-type.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/ScriptExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/UncertainNumber.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/Usage.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/UserInterfaceTools.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/assertsTaskSuccessful.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/$OngoingTaskResult.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/10-executePipeline.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/20-executeTask.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/40-executeAttempts.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/computeCosineSimilarity.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/getContextForTask.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/getExamplesForTask.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/getKnowledgeForTask.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/getReservedParametersForTask.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/createPipelineExecutor/knowledgePiecesToString.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/embeddingVectorToString.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/execution-report/ExecutionPromptReportJson.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/execution-report/ExecutionReportJson.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/execution-report/ExecutionReportString.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/execution-report/ExecutionReportStringOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/execution-report/countWorkingDuration.d.ts +0 -0
- /package/esm/{typings/src/execution/utils/checkExpectations.test.d.ts → src/execution/execution-report/countWorkingDuration.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/execution/execution-report/executionReportJsonToString.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/AutomaticTranslator.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/DebugAutomaticTranslator.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/FakeAutomaticTranslator.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/TranslatorOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.d.ts +0 -0
- /package/esm/{typings/src/execution/utils/usageToWorktime.test.d.ts → src/execution/translation/automatic-translate/automatic-translators/utils/extractMultiplicatedOccurrence.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/execution/translation/automatic-translate/translateMessages.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/utils/$provideExecutionToolsForNode.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/utils/addUsage.d.ts +0 -0
- /package/esm/{typings/src/formats/csv/utils/isValidCsvString.test.d.ts → src/execution/utils/addUsage.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/execution/utils/checkExpectations.d.ts +0 -0
- /package/esm/{typings/src/formats/json/utils/isValidJsonString.test.d.ts → src/execution/utils/checkExpectations.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/execution/utils/computeUsageCounts.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/utils/forEachAsync.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/utils/uncertainNumber.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/utils/usage-constants.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/utils/usageToHuman.d.ts +0 -0
- /package/esm/{typings/src → src}/execution/utils/usageToWorktime.d.ts +0 -0
- /package/esm/{typings/src/formats/xml/utils/isValidXmlString.test.d.ts → src/execution/utils/usageToWorktime.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/execution/utils/validatePromptResult.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/_common/FormatParser.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/_common/FormatSubvalueParser.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/csv/CsvFormatError.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/csv/CsvFormatParser.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/csv/CsvSettings.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/csv/utils/csvParse.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/csv/utils/isValidCsvString.d.ts +0 -0
- /package/esm/{typings/src/llm-providers/_common/register/createLlmToolsFromConfiguration.test.d.ts → src/formats/csv/utils/isValidCsvString.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/formats/index.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/json/JsonFormatParser.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/json/utils/isValidJsonString.d.ts +0 -0
- /package/esm/{typings/src/llm-providers/_common/utils/pricing.test.d.ts → src/formats/json/utils/isValidJsonString.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/formats/json/utils/jsonParse.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/text/TextFormatParser.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/xml/XmlFormatParser.d.ts +0 -0
- /package/esm/{typings/src → src}/formats/xml/utils/isValidXmlString.d.ts +0 -0
- /package/esm/{typings/src/llm-providers/_common/utils/removeUnsupportedModelRequirements.test.d.ts → src/formats/xml/utils/isValidXmlString.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/formfactors/_boilerplate/BoilerplateFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/_common/AbstractFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/_common/FormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/_common/string_formfactor_name.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/chatbot/ChatbotFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/completion/CompletionFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/generator/GeneratorFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/generic/GenericFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/image-generator/ImageGeneratorFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/index.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/matcher/MatcherFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/sheets/SheetsFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/formfactors/translator/TranslatorFormfactorDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/high-level-abstractions/_common/HighLevelAbstraction.d.ts +0 -0
- /package/esm/{typings/src → src}/high-level-abstractions/implicit-formfactor/ImplicitFormfactorHla.d.ts +0 -0
- /package/esm/{typings/src → src}/high-level-abstractions/index.d.ts +0 -0
- /package/esm/{typings/src → src}/high-level-abstractions/quick-chatbot/QuickChatbotHla.d.ts +0 -0
- /package/esm/{typings/src → src}/import-plugins/$fileImportPlugins.d.ts +0 -0
- /package/esm/{typings/src → src}/import-plugins/AgentFileImportPlugin.d.ts +0 -0
- /package/esm/{typings/src → src}/import-plugins/FileImportPlugin.d.ts +0 -0
- /package/esm/{typings/src → src}/import-plugins/JsonFileImportPlugin.d.ts +0 -0
- /package/esm/{typings/src → src}/import-plugins/TextFileImportPlugin.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/filterModels.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$llmToolsMetadataRegister.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$llmToolsRegister.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$provideEnvFilename.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/LlmToolsConfiguration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/LlmToolsMetadata.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/LlmToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +0 -0
- /package/esm/{typings/src/llm-providers/agent/AgentLlmExecutionTools.test.d.ts → src/llm-providers/_common/register/createLlmToolsFromConfiguration.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/assertUniqueModels.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/cache/CacheItem.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/pricing.d.ts +0 -0
- /package/esm/{typings/src/llm-providers/mocked/test/fakeTextToExpectations.test.d.ts → src/llm-providers/_common/utils/pricing.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/llm-providers/_common/utils/removeUnsupportedModelRequirements.d.ts +0 -0
- /package/esm/{typings/src/llm-providers/mocked/test/faked-completion.test.d.ts → src/llm-providers/_common/utils/removeUnsupportedModelRequirements.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/llm-providers/_multiple/MultipleLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_multiple/joinLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/_multiple/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/AgentLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src/postprocessing/utils/extractJsonBlock.test.d.ts → src/llm-providers/agent/AgentLlmExecutionTools.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/AgentOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src/prepare/isPipelinePrepared.test.d.ts → src/llm-providers/agent/RemoteAgent.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/RemoteAgentOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/createAgentLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/register-configuration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/agent/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.test.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/register-configuration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/anthropic-claude/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/azure-openai/createAzureOpenAiExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/azure-openai/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/azure-openai/register-configuration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/azure-openai/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/deepseek/DeepseekExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/deepseek/createDeepseekExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/deepseek/deepseek-models.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/deepseek/register-configuration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/deepseek/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/google/GoogleExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/google/createGoogleExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/google/google-models.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/google/register-configuration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/google/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/mocked/$fakeTextToExpectations.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src/scrapers/_common/prepareKnowledgePieces.test.d.ts → src/llm-providers/mocked/test/fakeTextToExpectations.test.d.ts} +0 -0
- /package/esm/{typings/src/scrapers/_common/utils/promptbookFetch.test.d.ts → src/llm-providers/mocked/test/faked-completion.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/llm-providers/mocked/test/joker.test.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/mocked/test/mocked-chat.test.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/mocked/test/mocked-completion.test.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/ollama/OllamaExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/ollama/OllamaExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/ollama/createOllamaExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/ollama/ollama-models.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/ollama/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/ollama/register-configuration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/ollama/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAgentKitExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiCompatibleExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/OpenAiVectorStoreHandler.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/computeOpenAiUsage.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/computeOpenAiUsage.test.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/createOpenAiExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/openai-models.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/openai-models.test.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/register-configuration.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/utils/buildToolInvocationScript.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/utils/mapToolsToOpenAi.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/remote/RemoteLlmExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/remote/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/vercel/VercelExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/vercel/VercelProvider.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/vercel/createExecutionToolsFromVercelProvider.d.ts +0 -0
- /package/esm/{typings/src → src}/llm-providers/vercel/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/migrations/migratePipeline.d.ts +0 -0
- /package/esm/{typings/src → src}/other/templates/getBookTemplates.d.ts +0 -0
- /package/esm/{typings/src → src}/other/templates/getTemplatesPipelineCollection.d.ts +0 -0
- /package/esm/{typings/src → src}/personas/preparePersona.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineInterface/PipelineInterface.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineInterface/constants.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineInterface/getPipelineInterface.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineInterface/isPipelineImplementingInterface.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineInterface/isPipelineInterfacesEqual.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/CommonTaskJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/DialogTaskJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/Expectations.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/KnowledgePieceJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/KnowledgeSourceJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/ParameterJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/PersonaJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/PipelineJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/PreparationJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/PromptTaskJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/ScriptTaskJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/SimpleTaskJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineJson/TaskJson.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/PipelineString.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/book-notation.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/isValidPipelineString.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/isValidPipelineString.test.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/prompt-notation.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/prompt-notation.test.d.ts +0 -0
- /package/esm/{typings/src → src}/pipeline/validatePipelineString.d.ts +0 -0
- /package/esm/{typings/src → src}/playground/permanent/_boilerplate.d.ts +0 -0
- /package/esm/{typings/src → src}/playground/permanent/agent-with-browser-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/playground/permanent/error-handling-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/postprocessing/utils/extractBlock.d.ts +0 -0
- /package/esm/{typings/src → src}/postprocessing/utils/extractJsonBlock.d.ts +0 -0
- /package/esm/{typings/src/scrapers/website/utils/createShowdownConverter.test.d.ts → src/postprocessing/utils/extractJsonBlock.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/prepare/PrepareAndScrapeOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/prepare/isPipelinePrepared.d.ts +0 -0
- /package/esm/{typings/src/scripting/_test/custom-function-async.test.ts.test.d.ts → src/prepare/isPipelinePrepared.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/prepare/preparePipeline.d.ts +0 -0
- /package/esm/{typings/src → src}/prepare/preparePipelineOnRemoteServer.d.ts +0 -0
- /package/esm/{typings/src → src}/prepare/prepareTasks.d.ts +0 -0
- /package/esm/{typings/src → src}/prepare/unpreparePipeline.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/RemoteServer.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/createRemoteClient.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/openapi-types.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/openapi.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/_common/PromptbookServer_Error.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/_subtypes/Identification.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/_subtypes/identificationToPromptbookToken.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/_subtypes/promptbookTokenToIdentification.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/listModels/PromptbookServer_ListModels_Request.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/listModels/PromptbookServer_ListModels_Response.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Request.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/prepare/PromptbookServer_PreparePipeline_Response.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/prompt/PromptbookServer_Prompt_Request.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/socket-types/prompt/PromptbookServer_Prompt_Response.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/startAgentServer.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/startRemoteServer.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/types/RemoteClientOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/types/RemoteServerOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/ui/ServerApp.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/ui/renderServerIndexHtml.d.ts +0 -0
- /package/esm/{typings/src → src}/remote-server/ui/types.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_boilerplate/BoilerplateScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_boilerplate/createBoilerplateScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_boilerplate/playground/boilerplate-scraper-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_boilerplate/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_boilerplate/register-metadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/Converter.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/Scraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/ScraperIntermediateSource.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/prepareKnowledgePieces.d.ts +0 -0
- /package/esm/{typings/src/scripting/_test/custom-function-missing.test.d.ts → src/scrapers/_common/prepareKnowledgePieces.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/$provideFilesystemForNode.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/$provideScrapersForBrowser.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/$provideScrapersForNode.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/$provideScriptingForNode.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/$registeredScrapersMessage.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/$scrapersMetadataRegister.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/$scrapersRegister.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/register/ScraperConstructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/utils/getScraperIntermediateSource.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/_common/utils/promptbookFetch.d.ts +0 -0
- /package/esm/{typings/src/scripting/_test/custom-function-with-dependencies.test.d.ts → src/scrapers/_common/utils/promptbookFetch.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/scrapers/document/DocumentScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document/DocumentScraper.test.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document/createDocumentScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document/playground/document-scraper-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document/register-metadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document-legacy/LegacyDocumentScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document-legacy/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/document-legacy/register-metadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markdown/MarkdownScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markdown/MarkdownScraper.test.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markdown/createMarkdownScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markdown/playground/markdown-scraper-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markdown/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markdown/register-metadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markitdown/MarkitdownScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markitdown/createMarkitdownScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markitdown/playground/markitdown-scraper-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markitdown/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/markitdown/register-metadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/pdf/PdfScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/pdf/createPdfScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/pdf/playground/pdf-scraper-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/pdf/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/pdf/register-metadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/website/WebsiteScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/website/createWebsiteScraper.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/website/playground/website-scraper-playground.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/website/register-constructor.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/website/register-metadata.d.ts +0 -0
- /package/esm/{typings/src → src}/scrapers/website/utils/createShowdownConverter.d.ts +0 -0
- /package/esm/{typings/src/scripting/_test/custom-function.test.d.ts → src/scrapers/website/utils/createShowdownConverter.test.d.ts} +0 -0
- /package/esm/{typings/src/scripting/_test/postprocessing.test.d.ts → src/scripting/_test/custom-function-async.test.ts.test.d.ts} +0 -0
- /package/esm/{typings/src/scripting/_test/script-execution-errors.test.d.ts → src/scripting/_test/custom-function-missing.test.d.ts} +0 -0
- /package/esm/{typings/src/scripting/_test/script-execution-tools.test.d.ts → src/scripting/_test/custom-function-with-dependencies.test.d.ts} +0 -0
- /package/esm/{typings/src/scripting/javascript/utils/extractVariablesFromJavascript.test.d.ts → src/scripting/_test/custom-function.test.d.ts} +0 -0
- /package/esm/{typings/src/scripting/javascript/utils/extractVariablesFromScript.test.d.ts → src/scripting/_test/postprocessing.test.d.ts} +0 -0
- /package/esm/{typings/src/storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts → src/scripting/_test/script-execution-errors.test.d.ts} +0 -0
- /package/esm/{typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts → src/scripting/_test/script-execution-tools.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/scripting/javascript/JavascriptEvalExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/scripting/javascript/JavascriptEvalExecutionTools.test.d.ts +0 -0
- /package/esm/{typings/src → src}/scripting/javascript/JavascriptExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/scripting/javascript/postprocessing-functions.d.ts +0 -0
- /package/esm/{typings/src → src}/scripting/javascript/utils/extractVariablesFromJavascript.d.ts +0 -0
- /package/esm/{typings/src/utils/color/Color.test.d.ts → src/scripting/javascript/utils/extractVariablesFromJavascript.test.d.ts} +0 -0
- /package/esm/{typings/src/utils/color/utils/colorHueDistance.test.d.ts → src/scripting/javascript/utils/extractVariablesFromScript.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/scripting/python/PythonExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/scripting/typescript/TypescriptExecutionTools.d.ts +0 -0
- /package/esm/{typings/src → src}/search-engines/SearchEngine.d.ts +0 -0
- /package/esm/{typings/src → src}/search-engines/SearchResult.d.ts +0 -0
- /package/esm/{typings/src → src}/search-engines/_index.d.ts +0 -0
- /package/esm/{typings/src → src}/search-engines/bing/BingSearchEngine.d.ts +0 -0
- /package/esm/{typings/src → src}/search-engines/dummy/DummySearchEngine.d.ts +0 -0
- /package/esm/{typings/src → src}/search-engines/google/GoogleSearchEngine.d.ts +0 -0
- /package/esm/{typings/src → src}/search-engines/serp/SerpSearchEngine.d.ts +0 -0
- /package/esm/{typings/src → src}/speech-recognition/BrowserSpeechRecognition.d.ts +0 -0
- /package/esm/{typings/src → src}/speech-recognition/OpenAiSpeechRecognition.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/_common/PromptbookStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/_common/PromptbookStorage.test-type.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/blackhole/BlackholeStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/env-storage/$EnvStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/file-cache-storage/FileCacheStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/file-cache-storage/FileCacheStorageOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +0 -0
- /package/esm/{typings/src/utils/editable/edit-pipeline-string/addPipelineCommand.test.d.ts → src/storage/file-cache-storage/utils/nameToSubfolderPath.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/storage/local-storage/getIndexedDbStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/local-storage/getLocalStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/local-storage/getSessionStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/local-storage/utils/IndexedDbStorageOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/local-storage/utils/makePromptbookStorageFromIndexedDb.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/local-storage/utils/makePromptbookStorageFromWebStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/memory/MemoryStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/storage/utils/PrefixStorage.d.ts +0 -0
- /package/esm/{typings/src → src}/transpilers/_common/BookTranspiler.d.ts +0 -0
- /package/esm/{typings/src → src}/transpilers/_common/BookTranspilerOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/transpilers/_common/register/$bookTranspilersRegister.d.ts +0 -0
- /package/esm/{typings/src → src}/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +0 -0
- /package/esm/{typings/src → src}/transpilers/formatted-book-in-markdown/register.d.ts +0 -0
- /package/esm/{typings/src → src}/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +0 -0
- /package/esm/{typings/src/utils/editable/edit-pipeline-string/deflatePipeline.test.d.ts → src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/transpilers/openai-sdk/playground/playground.d.ts +0 -0
- /package/esm/{typings/src → src}/transpilers/openai-sdk/register.d.ts +0 -0
- /package/esm/{typings/src → src}/types/Arrayable.d.ts +0 -0
- /package/esm/{typings/src → src}/types/IntermediateFilesStrategy.d.ts +0 -0
- /package/esm/{typings/src → src}/types/LlmCall.d.ts +0 -0
- /package/esm/{typings/src → src}/types/LlmToolDefinition.d.ts +0 -0
- /package/esm/{typings/src → src}/types/Message.d.ts +0 -0
- /package/esm/{typings/src → src}/types/ModelRequirements.d.ts +0 -0
- /package/esm/{typings/src → src}/types/ModelVariant.d.ts +0 -0
- /package/esm/{typings/src → src}/types/NonEmptyArray.d.ts +0 -0
- /package/esm/{typings/src → src}/types/Prompt.d.ts +0 -0
- /package/esm/{typings/src → src}/types/ScriptLanguage.d.ts +0 -0
- /package/esm/{typings/src → src}/types/SectionType.d.ts +0 -0
- /package/esm/{typings/src → src}/types/SpeechRecognition.d.ts +0 -0
- /package/esm/{typings/src → src}/types/TaskType.d.ts +0 -0
- /package/esm/{typings/src → src}/types/ToolCall.d.ts +0 -0
- /package/esm/{typings/src → src}/types/Updatable.d.ts +0 -0
- /package/esm/{typings/src → src}/types/typeAliasEmoji.d.ts +0 -0
- /package/esm/{typings/src → src}/types/typeAliases.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/DEFAULT_THINKING_MESSAGES.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/agents/resolveAgentAvatarImageUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/clientVersion.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/$randomColor.d.ts +0 -0
- /package/esm/{typings/src/utils/editable/edit-pipeline-string/removePipelineCommand.test.d.ts → src/utils/color/Color.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/color/css-colors.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/internal-utils/checkChannelValue.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/internal-utils/hslToRgb.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/internal-utils/rgbToHsl.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/ColorTransformer.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/darken.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/furthest.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/grayscale.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/lighten.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/mixWithColor.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/nearest.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/negative.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/negativeLightness.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/saturate.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/operators/withAlpha.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/areColorsEqual.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/colorDistance.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/colorHue.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/colorHueDistance.d.ts +0 -0
- /package/esm/{typings/src/utils/editable/utils/isFlatPipeline.test.d.ts → src/utils/color/utils/colorHueDistance.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/colorLuminance.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/colorSatulightion.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/colorSaturation.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/colorToDataUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/color/utils/mixColors.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/editable/edit-pipeline-string/addPipelineCommand.d.ts +0 -0
- /package/esm/{typings/src/utils/editable/utils/renamePipelineParameter.test.d.ts → src/utils/editable/edit-pipeline-string/addPipelineCommand.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/editable/edit-pipeline-string/deflatePipeline.d.ts +0 -0
- /package/esm/{typings/src/utils/execCommand/execCommand.test.d.ts → src/utils/editable/edit-pipeline-string/deflatePipeline.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/editable/edit-pipeline-string/removePipelineCommand.d.ts +0 -0
- /package/esm/{typings/src/utils/execCommand/execCommandNormalizeOptions.test.d.ts → src/utils/editable/edit-pipeline-string/removePipelineCommand.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/editable/types/PipelineEditableSerialized.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/editable/utils/isFlatPipeline.d.ts +0 -0
- /package/esm/{typings/src/utils/expectation-counters/countCharacters.test.d.ts → src/utils/editable/utils/isFlatPipeline.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/editable/utils/renamePipelineParameter.d.ts +0 -0
- /package/esm/{typings/src/utils/expectation-counters/countLines.test.d.ts → src/utils/editable/utils/renamePipelineParameter.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/editable/utils/stringifyPipelineJson.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/environment/$detectRuntimeEnvironment.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/environment/$getGlobalScope.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/environment/$isRunningInBrowser.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/environment/$isRunningInJest.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/environment/$isRunningInNode.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/environment/$isRunningInWebWorker.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/execCommand/$execCommand.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/execCommand/$execCommandNormalizeOptions.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/execCommand/$execCommands.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/execCommand/ExecCommandOptions.d.ts +0 -0
- /package/esm/{typings/src/utils/expectation-counters/countPages.test.d.ts → src/utils/execCommand/execCommand.test.d.ts} +0 -0
- /package/esm/{typings/src/utils/expectation-counters/countParagraphs.test.d.ts → src/utils/execCommand/execCommandNormalizeOptions.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/constants.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/countCharacters.d.ts +0 -0
- /package/esm/{typings/src/utils/expectation-counters/countSentences.test.d.ts → src/utils/expectation-counters/countCharacters.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/countLines.d.ts +0 -0
- /package/esm/{typings/src/utils/expectation-counters/countWords.test.d.ts → src/utils/expectation-counters/countLines.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/countPages.d.ts +0 -0
- /package/esm/{typings/src/utils/files/extensionToMimeType.test.d.ts → src/utils/expectation-counters/countPages.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/countParagraphs.d.ts +0 -0
- /package/esm/{typings/src/utils/files/getFileExtension.test.d.ts → src/utils/expectation-counters/countParagraphs.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/countSentences.d.ts +0 -0
- /package/esm/{typings/src/utils/files/isDirectoryExisting.test.d.ts → src/utils/expectation-counters/countSentences.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/countWords.d.ts +0 -0
- /package/esm/{typings/src/utils/files/isFileExisting.test.d.ts → src/utils/expectation-counters/countWords.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/expectation-counters/index.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/files/$induceBookDownload.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/files/$induceFileDownload.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/files/ObjectUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/files/extensionToMimeType.d.ts +0 -0
- /package/esm/{typings/src/utils/files/listAllFiles.test.d.ts → src/utils/files/extensionToMimeType.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/files/getFileExtension.d.ts +0 -0
- /package/esm/{typings/src/utils/files/mimeTypeToExtension.test.d.ts → src/utils/files/getFileExtension.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/files/isDirectoryExisting.d.ts +0 -0
- /package/esm/{typings/src/utils/knowledge/inlineKnowledgeSource.test.d.ts → src/utils/files/isDirectoryExisting.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/files/isExecutable.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/files/isFileExisting.d.ts +0 -0
- /package/esm/{typings/src/utils/knowledge/simplifyKnowledgeLabel.test.d.ts → src/utils/files/isFileExisting.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/files/listAllFiles.d.ts +0 -0
- /package/esm/{typings/src/utils/linguistic-hash/linguisticHash.test.d.ts → src/utils/files/listAllFiles.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/files/mimeTypeToExtension.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/addAutoGeneratedSection.test.d.ts → src/utils/files/mimeTypeToExtension.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/knowledge/inlineKnowledgeSource.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/createMarkdownChart.test.d.ts → src/utils/knowledge/inlineKnowledgeSource.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/knowledge/simplifyKnowledgeLabel.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/createMarkdownTable.test.d.ts → src/utils/knowledge/simplifyKnowledgeLabel.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/language/getBrowserPreferredSpeechRecognitionLanguage.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/linguistic-hash/LinguisticHashLanguage.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHash.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/escapeMarkdownBlock.test.d.ts → src/utils/linguistic-hash/linguisticHash.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashTypes.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWordCount.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWordSelection.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWords.cs.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/linguistic-hash/linguisticHashWords.en.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/addAutoGeneratedSection.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts → src/utils/markdown/addAutoGeneratedSection.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/createMarkdownChart.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/extractAllBlocksFromMarkdown.test.d.ts → src/utils/markdown/createMarkdownChart.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/createMarkdownTable.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/extractAllListItemsFromMarkdown.test.d.ts → src/utils/markdown/createMarkdownTable.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/escapeMarkdownBlock.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/extractOneBlockFromMarkdown.test.d.ts → src/utils/markdown/escapeMarkdownBlock.test.d.ts} +0 -0
- /package/esm/{typings/src/utils/markdown/flattenMarkdown.test.d.ts → src/utils/markdown/extractAllBlocksFromMarkdown-real.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/extractAllBlocksFromMarkdown.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/humanizeAiText.test.d.ts → src/utils/markdown/extractAllBlocksFromMarkdown.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/extractAllListItemsFromMarkdown.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/parseMarkdownSection.test.d.ts → src/utils/markdown/extractAllListItemsFromMarkdown.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/extractOneBlockFromMarkdown.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/promptbookifyAiText.test.d.ts → src/utils/markdown/extractOneBlockFromMarkdown.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/flattenMarkdown.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/removeMarkdownComments.test.d.ts → src/utils/markdown/flattenMarkdown.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/humanizeAiText.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/removeMarkdownFormatting.test.d.ts → src/utils/markdown/humanizeAiText.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextEllipsis.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextEmdashed.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextQuotes.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextSources.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/humanizeAiTextWhitespace.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/parseMarkdownSection.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/splitMarkdownIntoSections.test.d.ts → src/utils/markdown/parseMarkdownSection.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/prettifyMarkdown.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/promptbookifyAiText.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/trimCodeBlock.test.d.ts → src/utils/markdown/promptbookifyAiText.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/removeMarkdownComments.d.ts +0 -0
- /package/esm/{typings/src/utils/markdown/trimEndOfCodeBlock.test.d.ts → src/utils/markdown/removeMarkdownComments.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/removeMarkdownFormatting.d.ts +0 -0
- /package/esm/{typings/src/utils/misc/arrayableToArray.test.d.ts → src/utils/markdown/removeMarkdownFormatting.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/removeMarkdownLinks.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/removeMarkdownLinks.test.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/markdown/splitMarkdownIntoSections.d.ts +0 -0
- /package/esm/{typings/src/utils/misc/computeHash.test.d.ts → src/utils/markdown/splitMarkdownIntoSections.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/trimCodeBlock.d.ts +0 -0
- /package/esm/{typings/src/utils/misc/parseNumber.test.d.ts → src/utils/markdown/trimCodeBlock.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/markdown/trimEndOfCodeBlock.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/capitalize.test.d.ts → src/utils/markdown/trimEndOfCodeBlock.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/misc/$Register.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/misc/$getCurrentDate.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/misc/FromtoItems.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/misc/aboutPromptbookInformation.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/misc/arrayableToArray.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/constructImageFilename.test.d.ts → src/utils/misc/arrayableToArray.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/misc/computeHash.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/decapitalize.test.d.ts → src/utils/misc/computeHash.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/misc/debounce.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/misc/emojis.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/misc/injectCssModuleIntoShadowRoot.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/misc/parseNumber.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/isValidKeyword.test.d.ts → src/utils/misc/parseNumber.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/misc/xAboutPromptbookInformation.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/normalization/DIACRITIC_VARIANTS_LETTERS.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/normalization/IKeywords.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/normalization/capitalize.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/nameToUriPart.test.d.ts → src/utils/normalization/capitalize.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/constructImageFilename.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/nameToUriParts.test.d.ts → src/utils/normalization/constructImageFilename.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/decapitalize.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/normalize-to-kebab-case.test.d.ts → src/utils/normalization/decapitalize.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/isValidKeyword.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/normalizeMessageText.test.d.ts → src/utils/normalization/isValidKeyword.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/nameToUriPart.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/normalizeTo_PascalCase.test.d.ts → src/utils/normalization/nameToUriPart.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/nameToUriParts.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts → src/utils/normalization/nameToUriParts.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/normalize-to-kebab-case.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/normalizeTo_camelCase.test.d.ts → src/utils/normalization/normalize-to-kebab-case.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/normalizeMessageText.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/normalizeTo_snake_case.test.d.ts → src/utils/normalization/normalizeMessageText.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/normalizeTo_PascalCase.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/normalizeWhitespaces.test.d.ts → src/utils/normalization/normalizeTo_PascalCase.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/parseKeywords.test.d.ts → src/utils/normalization/normalizeTo_SCREAMING_CASE.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/normalizeTo_camelCase.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/parseKeywordsFromString.test.d.ts → src/utils/normalization/normalizeTo_camelCase.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/normalizeTo_snake_case.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/removeDiacritics.test.d.ts → src/utils/normalization/normalizeTo_snake_case.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/normalizeWhitespaces.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/removeEmojis.test.d.ts → src/utils/normalization/normalizeWhitespaces.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/orderJson.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/normalization/orderJson.test.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/normalization/parseKeywords.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/removeQuotes.test.d.ts → src/utils/normalization/parseKeywords.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/parseKeywordsFromString.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/searchKeywords.test.d.ts → src/utils/normalization/parseKeywordsFromString.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/removeDiacritics.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/suffixUrl.test.d.ts → src/utils/normalization/removeDiacritics.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/removeEmojis.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/titleToName.test.d.ts → src/utils/normalization/removeEmojis.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/removeQuotes.d.ts +0 -0
- /package/esm/{typings/src/utils/normalization/unwrapResult.test.d.ts → src/utils/normalization/removeQuotes.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/searchKeywords.d.ts +0 -0
- /package/esm/{typings/src/utils/parameters/extractParameterNames.test.d.ts → src/utils/normalization/searchKeywords.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/suffixUrl.d.ts +0 -0
- /package/esm/{typings/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts → src/utils/normalization/suffixUrl.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/titleToName.d.ts +0 -0
- /package/esm/{typings/src/utils/parameters/numberToString.test.d.ts → src/utils/normalization/titleToName.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/normalization/unwrapResult.d.ts +0 -0
- /package/esm/{typings/src/utils/parameters/templateParameters.test.d.ts → src/utils/normalization/unwrapResult.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/organization/$sideEffect.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/$side_effect.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/TODO_USE.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/TODO_any.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/TODO_narrow.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/TODO_object.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/TODO_remove_as.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/TODO_string.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/TODO_unknown.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/___and___.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/___or___.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/empty_object.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/just.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/just_empty_object.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/keepImported.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/keepTypeImported.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/keepUnused.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/preserve.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/really_any.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/really_unknown.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/organization/spaceTrim.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/parameters/extractParameterNames.d.ts +0 -0
- /package/esm/{typings/src/utils/parameters/valueToString.test.d.ts → src/utils/parameters/extractParameterNames.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/parameters/mapAvailableToExpectedParameters.d.ts +0 -0
- /package/esm/{typings/src/utils/serialization/asSerializable.test.d.ts → src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/parameters/numberToString.d.ts +0 -0
- /package/esm/{typings/src/utils/serialization/deepClone.test.d.ts → src/utils/parameters/numberToString.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/parameters/templateParameters.d.ts +0 -0
- /package/esm/{typings/src/utils/serialization/isSerializableAsJson.test.d.ts → src/utils/parameters/templateParameters.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/parameters/valueToString.d.ts +0 -0
- /package/esm/{typings/src/utils/serialization/jsonStringsToJsons.test.d.ts → src/utils/parameters/valueToString.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/random/$generateBookBoilerplate.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/$randomAgentPersona.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/$randomAgentRule.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/$randomBase58.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/$randomFullnameWithColor.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/$randomItem.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/$randomSeed.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/$randomToken.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/CzechNamePool.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/EnglishNamePool.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/NamePool.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/random/getNamePool.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/serialization/$deepFreeze.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/serialization/asSerializable.d.ts +0 -0
- /package/esm/{typings/src/utils/sets/difference.test.d.ts → src/utils/serialization/asSerializable.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/serialization/checkSerializableAsJson.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/serialization/clonePipeline.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/serialization/deepClone.d.ts +0 -0
- /package/esm/{typings/src/utils/sets/intersection.test.d.ts → src/utils/serialization/deepClone.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/serialization/exportJson.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/serialization/isSerializableAsJson.d.ts +0 -0
- /package/esm/{typings/src/utils/sets/union.test.d.ts → src/utils/serialization/isSerializableAsJson.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/serialization/jsonStringsToJsons.d.ts +0 -0
- /package/esm/{typings/src/utils/take/take.test.d.ts → src/utils/serialization/jsonStringsToJsons.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/serialization/serializeToPromptbookJavascript.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/sets/difference.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/email/isValidEmail.test.d.ts → src/utils/sets/difference.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/sets/intersection.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/filePath/isValidFilePath.test.d.ts → src/utils/sets/intersection.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/sets/union.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/javascriptName/isValidJavascriptName.test.d.ts → src/utils/sets/union.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/take/classes/TakeChain.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/take/interfaces/ITakeChain.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/take/interfaces/Takeable.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/take/take.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/parameterName/validateParameterName.test.d.ts → src/utils/take/take.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/toolCalls/getToolCallIdentity.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/validators/email/isValidEmail.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/semanticVersion/isValidPromptbookVersion.test.d.ts → src/utils/validators/email/isValidEmail.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/filePath/isRootPath.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/validators/filePath/isRootPath.test.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/validators/filePath/isValidFilePath.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/semanticVersion/isValidSemanticVersion.test.d.ts → src/utils/validators/filePath/isValidFilePath.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/javascriptName/isValidJavascriptName.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/url/isHostnameOnPrivateNetwork.test.d.ts → src/utils/validators/javascriptName/isValidJavascriptName.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/parameterName/validateParameterName.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/url/isUrlOnPrivateNetwork.test.d.ts → src/utils/validators/parameterName/validateParameterName.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/semanticVersion/isValidPromptbookVersion.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/url/isValidAgentUrl.test.d.ts → src/utils/validators/semanticVersion/isValidPromptbookVersion.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/semanticVersion/isValidSemanticVersion.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/url/isValidPipelineUrl.test.d.ts → src/utils/validators/semanticVersion/isValidSemanticVersion.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/url/isHostnameOnPrivateNetwork.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/url/isValidUrl.test.d.ts → src/utils/validators/url/isHostnameOnPrivateNetwork.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/url/isUrlOnPrivateNetwork.d.ts +0 -0
- /package/esm/{typings/src/utils/validators/uuid/isValidUuid.test.d.ts → src/utils/validators/url/isUrlOnPrivateNetwork.test.d.ts} +0 -0
- /package/esm/{typings/src → src}/utils/validators/url/isValidAgentUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/validators/url/isValidPipelineUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/validators/url/isValidUrl.d.ts +0 -0
- /package/esm/{typings/src → src}/utils/validators/uuid/isValidUuid.d.ts +0 -0
- /package/esm/{typings/src → src}/wizard/$getCompiledBook.d.ts +0 -0
- /package/esm/{typings/src → src}/wizard/wizard.d.ts +0 -0
package/umd/index.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('spacetrim'), require('crypto-js'), require('crypto-js/enc-hex'), require('path'), require('crypto'), require('moment'), require('react-dom'), require('@monaco-editor/react'), require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', 'spacetrim', 'crypto-js', 'crypto-js/enc-hex', 'path', 'crypto', 'moment', 'react-dom', '@monaco-editor/react', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-components"] = {}, global.jsxRuntime, global.react, global.spaceTrim$1, global.cryptoJs, global.hexEncoder, global.path, global.crypto$1, global.moment, global.reactDom, global.Editor, global.
|
|
5
|
-
})(this, (function (exports, jsxRuntime, react, spaceTrim$1, cryptoJs, hexEncoder, path, crypto$1, moment, reactDom, Editor,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('spacetrim'), require('crypto-js'), require('crypto-js/enc-hex'), require('path'), require('crypto'), require('moment'), require('react-dom'), require('@monaco-editor/react'), require('destroyable'), require('katex'), require('react-dom/client'), require('showdown'), require('rxjs'), require('jspdf'), require('lucide-react'), require('waitasecond'), require('crypto-js/sha256'), require('mime-types'), require('papaparse'), require('colors'), require('@openai/agents'), require('bottleneck'), require('openai'), require('leaflet/dist/leaflet.css'), require('leaflet'), require('qrcode')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', 'spacetrim', 'crypto-js', 'crypto-js/enc-hex', 'path', 'crypto', 'moment', 'react-dom', '@monaco-editor/react', 'destroyable', 'katex', 'react-dom/client', 'showdown', 'rxjs', 'jspdf', 'lucide-react', 'waitasecond', 'crypto-js/sha256', 'mime-types', 'papaparse', 'colors', '@openai/agents', 'bottleneck', 'openai', 'leaflet/dist/leaflet.css', 'leaflet', 'qrcode'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-components"] = {}, global.jsxRuntime, global.react, global.spaceTrim$1, global.cryptoJs, global.hexEncoder, global.path, global.crypto$1, global.moment, global.reactDom, global.Editor, global.destroyable, global.katex, global.client, global.showdown, global.rxjs, global.jspdf, global.lucideReact, global.waitasecond, global.sha256, global.mimeTypes, global.papaparse, global.colors, global.agents, global.Bottleneck, global.OpenAI, null, global.L, global.QRCode));
|
|
5
|
+
})(this, (function (exports, jsxRuntime, react, spaceTrim$1, cryptoJs, hexEncoder, path, crypto$1, moment, reactDom, Editor, destroyable, katex, client, showdown, rxjs, jspdf, lucideReact, waitasecond, sha256, mimeTypes, papaparse, colors, agents, Bottleneck, OpenAI, leaflet_css, L, QRCode) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
* @generated
|
|
33
33
|
* @see https://github.com/webgptorg/promptbook
|
|
34
34
|
*/
|
|
35
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.111.0-
|
|
35
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.111.0-7';
|
|
36
36
|
/**
|
|
37
37
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
38
38
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -516,6 +516,188 @@
|
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
518
|
|
|
519
|
+
const SHORT_HEX_LENGTHS = new Set([3, 4]);
|
|
520
|
+
const LONG_HEX_LENGTHS = new Set([6, 8]);
|
|
521
|
+
/**
|
|
522
|
+
* Parses a hex string into RGBA channel values.
|
|
523
|
+
*
|
|
524
|
+
* @param hex - Hex value such as `#09d`, `009edd`, `#009eddff`.
|
|
525
|
+
* @returns RGBA channel values.
|
|
526
|
+
*
|
|
527
|
+
* @private function of Color
|
|
528
|
+
*/
|
|
529
|
+
function parseHexColor(hex) {
|
|
530
|
+
const sanitized = hex.startsWith('#') ? hex.substring(1) : hex;
|
|
531
|
+
const throwInvalidHex = () => {
|
|
532
|
+
throw new Error(`Can not parse color from hex string "${hex}"`);
|
|
533
|
+
};
|
|
534
|
+
if (SHORT_HEX_LENGTHS.has(sanitized.length)) {
|
|
535
|
+
return {
|
|
536
|
+
red: parseShortHexChannel(sanitized.charAt(0), throwInvalidHex),
|
|
537
|
+
green: parseShortHexChannel(sanitized.charAt(1), throwInvalidHex),
|
|
538
|
+
blue: parseShortHexChannel(sanitized.charAt(2), throwInvalidHex),
|
|
539
|
+
alpha: sanitized.length === 4 ? parseShortHexChannel(sanitized.charAt(3), throwInvalidHex) : 255,
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
if (LONG_HEX_LENGTHS.has(sanitized.length)) {
|
|
543
|
+
return {
|
|
544
|
+
red: parseLongHexChannel(sanitized, 0, throwInvalidHex),
|
|
545
|
+
green: parseLongHexChannel(sanitized, 2, throwInvalidHex),
|
|
546
|
+
blue: parseLongHexChannel(sanitized, 4, throwInvalidHex),
|
|
547
|
+
alpha: sanitized.length === 8 ? parseLongHexChannel(sanitized, 6, throwInvalidHex) : 255,
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
return throwInvalidHex();
|
|
551
|
+
}
|
|
552
|
+
function parseShortHexChannel(char, onError) {
|
|
553
|
+
if (!char) {
|
|
554
|
+
return onError();
|
|
555
|
+
}
|
|
556
|
+
const parsed = parseInt(char, 16);
|
|
557
|
+
if (Number.isNaN(parsed)) {
|
|
558
|
+
return onError();
|
|
559
|
+
}
|
|
560
|
+
return parsed * 16;
|
|
561
|
+
}
|
|
562
|
+
function parseLongHexChannel(hex, start, onError) {
|
|
563
|
+
const segment = hex.substr(start, 2);
|
|
564
|
+
if (segment.length < 2) {
|
|
565
|
+
return onError();
|
|
566
|
+
}
|
|
567
|
+
const parsed = parseInt(segment, 16);
|
|
568
|
+
if (Number.isNaN(parsed)) {
|
|
569
|
+
return onError();
|
|
570
|
+
}
|
|
571
|
+
return parsed;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
const HSL_REGEX = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
|
|
575
|
+
/**
|
|
576
|
+
* Parses an HSL string into RGBA channel values.
|
|
577
|
+
*
|
|
578
|
+
* @param hsl - HSL string such as `hsl(197.1, 100%, 43.3%)`.
|
|
579
|
+
* @returns RGBA channel values.
|
|
580
|
+
*
|
|
581
|
+
* @private function of Color
|
|
582
|
+
*/
|
|
583
|
+
function parseHslColor(hsl) {
|
|
584
|
+
const match = hsl.match(HSL_REGEX);
|
|
585
|
+
if (!match) {
|
|
586
|
+
throw new Error(`Invalid hsl string format: "${hsl}"`);
|
|
587
|
+
}
|
|
588
|
+
const hue = parseFloat(match[1]);
|
|
589
|
+
const saturation = parseFloat(match[2]) / 100;
|
|
590
|
+
const lightness = parseFloat(match[3]) / 100;
|
|
591
|
+
const { red, green, blue } = convertHslToRgb(hue, saturation, lightness);
|
|
592
|
+
return {
|
|
593
|
+
red,
|
|
594
|
+
green,
|
|
595
|
+
blue,
|
|
596
|
+
alpha: 255,
|
|
597
|
+
};
|
|
598
|
+
}
|
|
599
|
+
function convertHslToRgb(h, s, l) {
|
|
600
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
601
|
+
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
602
|
+
const m = l - c / 2;
|
|
603
|
+
let r1 = 0;
|
|
604
|
+
let g1 = 0;
|
|
605
|
+
let b1 = 0;
|
|
606
|
+
if (h >= 0 && h < 60) {
|
|
607
|
+
r1 = c;
|
|
608
|
+
g1 = x;
|
|
609
|
+
}
|
|
610
|
+
else if (h >= 60 && h < 120) {
|
|
611
|
+
r1 = x;
|
|
612
|
+
g1 = c;
|
|
613
|
+
}
|
|
614
|
+
else if (h >= 120 && h < 180) {
|
|
615
|
+
g1 = c;
|
|
616
|
+
b1 = x;
|
|
617
|
+
}
|
|
618
|
+
else if (h >= 180 && h < 240) {
|
|
619
|
+
g1 = x;
|
|
620
|
+
b1 = c;
|
|
621
|
+
}
|
|
622
|
+
else if (h >= 240 && h < 300) {
|
|
623
|
+
r1 = x;
|
|
624
|
+
b1 = c;
|
|
625
|
+
}
|
|
626
|
+
else if (h >= 300 && h < 360) {
|
|
627
|
+
r1 = c;
|
|
628
|
+
b1 = x;
|
|
629
|
+
}
|
|
630
|
+
return {
|
|
631
|
+
red: Math.round((r1 + m) * 255),
|
|
632
|
+
green: Math.round((g1 + m) * 255),
|
|
633
|
+
blue: Math.round((b1 + m) * 255),
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
const RGB_REGEX = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
638
|
+
const RGBA_REGEX = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
639
|
+
/**
|
|
640
|
+
* Parses an RGB string into RGBA channel values.
|
|
641
|
+
*
|
|
642
|
+
* @param rgb - RGB string such as `rgb(0%, 62%, 86.7%)`.
|
|
643
|
+
* @returns RGBA channel values.
|
|
644
|
+
*
|
|
645
|
+
* @private function of Color
|
|
646
|
+
*/
|
|
647
|
+
function parseRgbColor(rgb) {
|
|
648
|
+
const match = rgb.match(RGB_REGEX);
|
|
649
|
+
if (!match) {
|
|
650
|
+
throw new Error(`Invalid rgb string format: "${rgb}"`);
|
|
651
|
+
}
|
|
652
|
+
return {
|
|
653
|
+
red: parseChannelValue(match[1]),
|
|
654
|
+
green: parseChannelValue(match[2]),
|
|
655
|
+
blue: parseChannelValue(match[3]),
|
|
656
|
+
alpha: 255,
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
/**
|
|
660
|
+
* Parses an RGBA string into RGBA channel values.
|
|
661
|
+
*
|
|
662
|
+
* @param rgba - RGBA string such as `rgba(0, 158, 221, 0.5)`.
|
|
663
|
+
* @returns RGBA channel values.
|
|
664
|
+
*
|
|
665
|
+
* @private function of Color
|
|
666
|
+
*/
|
|
667
|
+
function parseRgbaColor(rgba) {
|
|
668
|
+
const match = rgba.match(RGBA_REGEX);
|
|
669
|
+
if (!match) {
|
|
670
|
+
throw new Error(`Invalid rgba string format: "${rgba}"`);
|
|
671
|
+
}
|
|
672
|
+
return {
|
|
673
|
+
red: parseChannelValue(match[1]),
|
|
674
|
+
green: parseChannelValue(match[2]),
|
|
675
|
+
blue: parseChannelValue(match[3]),
|
|
676
|
+
alpha: parseAlphaValue(match[4]),
|
|
677
|
+
};
|
|
678
|
+
}
|
|
679
|
+
function parseChannelValue(value) {
|
|
680
|
+
if (value.endsWith('%')) {
|
|
681
|
+
const percent = parseFloat(value);
|
|
682
|
+
return Math.round((percent / 100) * 255);
|
|
683
|
+
}
|
|
684
|
+
return Math.round(parseFloat(value));
|
|
685
|
+
}
|
|
686
|
+
function parseAlphaValue(value) {
|
|
687
|
+
if (value.endsWith('%')) {
|
|
688
|
+
const percent = parseFloat(value);
|
|
689
|
+
return Math.round((percent / 100) * 255);
|
|
690
|
+
}
|
|
691
|
+
const parsed = parseFloat(value);
|
|
692
|
+
if (parsed <= 1) {
|
|
693
|
+
return Math.round(parsed * 255);
|
|
694
|
+
}
|
|
695
|
+
return Math.round(parsed);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
const HSL_REGEX_PATTERN = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
|
|
699
|
+
const RGB_REGEX_PATTERN = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
700
|
+
const RGBA_REGEX_PATTERN = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
519
701
|
/**
|
|
520
702
|
* Color object represents an RGB color with alpha channel
|
|
521
703
|
*
|
|
@@ -596,29 +778,24 @@
|
|
|
596
778
|
* @returns Color object
|
|
597
779
|
*/
|
|
598
780
|
static fromString(color) {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
781
|
+
const trimmed = color.trim();
|
|
782
|
+
if (CSS_COLORS[trimmed]) {
|
|
783
|
+
return Color.fromString(CSS_COLORS[trimmed]);
|
|
602
784
|
}
|
|
603
|
-
else if (Color.isHexColorString(
|
|
604
|
-
return Color.fromHex(
|
|
605
|
-
// -----
|
|
785
|
+
else if (Color.isHexColorString(trimmed)) {
|
|
786
|
+
return Color.fromHex(trimmed);
|
|
606
787
|
}
|
|
607
|
-
|
|
608
|
-
return Color.fromHsl(
|
|
609
|
-
// -----
|
|
788
|
+
if (HSL_REGEX_PATTERN.test(trimmed)) {
|
|
789
|
+
return Color.fromHsl(trimmed);
|
|
610
790
|
}
|
|
611
|
-
else if (
|
|
612
|
-
|
|
613
|
-
return Color.fromRgbString(color);
|
|
614
|
-
// -----
|
|
791
|
+
else if (RGB_REGEX_PATTERN.test(trimmed)) {
|
|
792
|
+
return Color.fromRgbString(trimmed);
|
|
615
793
|
}
|
|
616
|
-
else if (
|
|
617
|
-
return Color.fromRgbaString(
|
|
618
|
-
// -----
|
|
794
|
+
else if (RGBA_REGEX_PATTERN.test(trimmed)) {
|
|
795
|
+
return Color.fromRgbaString(trimmed);
|
|
619
796
|
}
|
|
620
797
|
else {
|
|
621
|
-
throw new Error(`Can not create a new Color instance from string "${
|
|
798
|
+
throw new Error(`Can not create a new Color instance from string "${trimmed}".`);
|
|
622
799
|
}
|
|
623
800
|
}
|
|
624
801
|
/**
|
|
@@ -649,73 +826,8 @@
|
|
|
649
826
|
* @returns Color object
|
|
650
827
|
*/
|
|
651
828
|
static fromHex(hex) {
|
|
652
|
-
const
|
|
653
|
-
|
|
654
|
-
hex = hex.substring(1);
|
|
655
|
-
}
|
|
656
|
-
if (hex.length === 3) {
|
|
657
|
-
return Color.fromHex3(hex);
|
|
658
|
-
}
|
|
659
|
-
if (hex.length === 4) {
|
|
660
|
-
return Color.fromHex4(hex);
|
|
661
|
-
}
|
|
662
|
-
if (hex.length === 6) {
|
|
663
|
-
return Color.fromHex6(hex);
|
|
664
|
-
}
|
|
665
|
-
if (hex.length === 8) {
|
|
666
|
-
return Color.fromHex8(hex);
|
|
667
|
-
}
|
|
668
|
-
throw new Error(`Can not parse color from hex string "${hexOriginal}"`);
|
|
669
|
-
}
|
|
670
|
-
/**
|
|
671
|
-
* Creates a new Color instance from color in hex format with 3 color digits (without alpha channel)
|
|
672
|
-
*
|
|
673
|
-
* @param color in hex for example `09d`
|
|
674
|
-
* @returns Color object
|
|
675
|
-
*/
|
|
676
|
-
static fromHex3(hex) {
|
|
677
|
-
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
678
|
-
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
679
|
-
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
680
|
-
return take(new Color(r, g, b));
|
|
681
|
-
}
|
|
682
|
-
/**
|
|
683
|
-
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
684
|
-
*
|
|
685
|
-
* @param color in hex for example `09df`
|
|
686
|
-
* @returns Color object
|
|
687
|
-
*/
|
|
688
|
-
static fromHex4(hex) {
|
|
689
|
-
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
690
|
-
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
691
|
-
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
692
|
-
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
693
|
-
return take(new Color(r, g, b, a));
|
|
694
|
-
}
|
|
695
|
-
/**
|
|
696
|
-
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
697
|
-
*
|
|
698
|
-
* @param color in hex for example `009edd`
|
|
699
|
-
* @returns Color object
|
|
700
|
-
*/
|
|
701
|
-
static fromHex6(hex) {
|
|
702
|
-
const r = parseInt(hex.substr(0, 2), 16);
|
|
703
|
-
const g = parseInt(hex.substr(2, 2), 16);
|
|
704
|
-
const b = parseInt(hex.substr(4, 2), 16);
|
|
705
|
-
return take(new Color(r, g, b));
|
|
706
|
-
}
|
|
707
|
-
/**
|
|
708
|
-
* Creates a new Color instance from color in hex format with 8 color digits (with alpha channel)
|
|
709
|
-
*
|
|
710
|
-
* @param color in hex for example `009edd`
|
|
711
|
-
* @returns Color object
|
|
712
|
-
*/
|
|
713
|
-
static fromHex8(hex) {
|
|
714
|
-
const r = parseInt(hex.substr(0, 2), 16);
|
|
715
|
-
const g = parseInt(hex.substr(2, 2), 16);
|
|
716
|
-
const b = parseInt(hex.substr(4, 2), 16);
|
|
717
|
-
const a = parseInt(hex.substr(6, 2), 16);
|
|
718
|
-
return take(new Color(r, g, b, a));
|
|
829
|
+
const { red, green, blue, alpha } = parseHexColor(hex);
|
|
830
|
+
return take(new Color(red, green, blue, alpha));
|
|
719
831
|
}
|
|
720
832
|
/**
|
|
721
833
|
* Creates a new Color instance from color in hsl format
|
|
@@ -724,52 +836,8 @@
|
|
|
724
836
|
* @returns Color object
|
|
725
837
|
*/
|
|
726
838
|
static fromHsl(hsl) {
|
|
727
|
-
const
|
|
728
|
-
|
|
729
|
-
throw new Error(`Invalid hsl string format: "${hsl}"`);
|
|
730
|
-
}
|
|
731
|
-
const h = parseFloat(match[1]);
|
|
732
|
-
const s = parseFloat(match[2]) / 100;
|
|
733
|
-
const l = parseFloat(match[3]) / 100;
|
|
734
|
-
// HSL to RGB conversion
|
|
735
|
-
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
736
|
-
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
737
|
-
const m = l - c / 2;
|
|
738
|
-
let r1 = 0, g1 = 0, b1 = 0;
|
|
739
|
-
if (h >= 0 && h < 60) {
|
|
740
|
-
r1 = c;
|
|
741
|
-
g1 = x;
|
|
742
|
-
b1 = 0;
|
|
743
|
-
}
|
|
744
|
-
else if (h >= 60 && h < 120) {
|
|
745
|
-
r1 = x;
|
|
746
|
-
g1 = c;
|
|
747
|
-
b1 = 0;
|
|
748
|
-
}
|
|
749
|
-
else if (h >= 120 && h < 180) {
|
|
750
|
-
r1 = 0;
|
|
751
|
-
g1 = c;
|
|
752
|
-
b1 = x;
|
|
753
|
-
}
|
|
754
|
-
else if (h >= 180 && h < 240) {
|
|
755
|
-
r1 = 0;
|
|
756
|
-
g1 = x;
|
|
757
|
-
b1 = c;
|
|
758
|
-
}
|
|
759
|
-
else if (h >= 240 && h < 300) {
|
|
760
|
-
r1 = x;
|
|
761
|
-
g1 = 0;
|
|
762
|
-
b1 = c;
|
|
763
|
-
}
|
|
764
|
-
else if (h >= 300 && h < 360) {
|
|
765
|
-
r1 = c;
|
|
766
|
-
g1 = 0;
|
|
767
|
-
b1 = x;
|
|
768
|
-
}
|
|
769
|
-
const r = Math.round((r1 + m) * 255);
|
|
770
|
-
const g = Math.round((g1 + m) * 255);
|
|
771
|
-
const b = Math.round((b1 + m) * 255);
|
|
772
|
-
return take(new Color(r, g, b));
|
|
839
|
+
const { red, green, blue, alpha } = parseHslColor(hsl);
|
|
840
|
+
return take(new Color(red, green, blue, alpha));
|
|
773
841
|
}
|
|
774
842
|
/**
|
|
775
843
|
* Creates a new Color instance from color in rgb format
|
|
@@ -778,25 +846,8 @@
|
|
|
778
846
|
* @returns Color object
|
|
779
847
|
*/
|
|
780
848
|
static fromRgbString(rgb) {
|
|
781
|
-
const
|
|
782
|
-
|
|
783
|
-
throw new Error(`Invalid rgb string format: "${rgb}"`);
|
|
784
|
-
}
|
|
785
|
-
const parseChannel = (value) => {
|
|
786
|
-
if (value.endsWith('%')) {
|
|
787
|
-
// Percentage value
|
|
788
|
-
const percent = parseFloat(value);
|
|
789
|
-
return Math.round((percent / 100) * 255);
|
|
790
|
-
}
|
|
791
|
-
else {
|
|
792
|
-
// Numeric value
|
|
793
|
-
return Math.round(parseFloat(value));
|
|
794
|
-
}
|
|
795
|
-
};
|
|
796
|
-
const r = parseChannel(match[1]);
|
|
797
|
-
const g = parseChannel(match[2]);
|
|
798
|
-
const b = parseChannel(match[3]);
|
|
799
|
-
return take(new Color(r, g, b));
|
|
849
|
+
const { red, green, blue, alpha } = parseRgbColor(rgb);
|
|
850
|
+
return take(new Color(red, green, blue, alpha));
|
|
800
851
|
}
|
|
801
852
|
/**
|
|
802
853
|
* Creates a new Color instance from color in rbga format
|
|
@@ -805,39 +856,8 @@
|
|
|
805
856
|
* @returns Color object
|
|
806
857
|
*/
|
|
807
858
|
static fromRgbaString(rgba) {
|
|
808
|
-
const
|
|
809
|
-
|
|
810
|
-
throw new Error(`Invalid rgba string format: "${rgba}"`);
|
|
811
|
-
}
|
|
812
|
-
const parseChannel = (value) => {
|
|
813
|
-
if (value.endsWith('%')) {
|
|
814
|
-
const percent = parseFloat(value);
|
|
815
|
-
return Math.round((percent / 100) * 255);
|
|
816
|
-
}
|
|
817
|
-
else {
|
|
818
|
-
return Math.round(parseFloat(value));
|
|
819
|
-
}
|
|
820
|
-
};
|
|
821
|
-
const parseAlpha = (value) => {
|
|
822
|
-
if (value.endsWith('%')) {
|
|
823
|
-
const percent = parseFloat(value);
|
|
824
|
-
return Math.round((percent / 100) * 255);
|
|
825
|
-
}
|
|
826
|
-
else {
|
|
827
|
-
const alphaFloat = parseFloat(value);
|
|
828
|
-
// If alpha is between 0 and 1, treat as float
|
|
829
|
-
if (alphaFloat <= 1) {
|
|
830
|
-
return Math.round(alphaFloat * 255);
|
|
831
|
-
}
|
|
832
|
-
// Otherwise, treat as 0-255
|
|
833
|
-
return Math.round(alphaFloat);
|
|
834
|
-
}
|
|
835
|
-
};
|
|
836
|
-
const r = parseChannel(match[1]);
|
|
837
|
-
const g = parseChannel(match[2]);
|
|
838
|
-
const b = parseChannel(match[3]);
|
|
839
|
-
const a = parseAlpha(match[4]);
|
|
840
|
-
return take(new Color(r, g, b, a));
|
|
859
|
+
const { red, green, blue, alpha } = parseRgbaColor(rgba);
|
|
860
|
+
return take(new Color(red, green, blue, alpha));
|
|
841
861
|
}
|
|
842
862
|
/**
|
|
843
863
|
* Creates a new Color for color channels values
|
|
@@ -959,14 +979,16 @@
|
|
|
959
979
|
}
|
|
960
980
|
toHex() {
|
|
961
981
|
if (this.alpha === 255) {
|
|
962
|
-
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
982
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
963
983
|
.toString(16)
|
|
964
|
-
.padStart(2, '0')}`;
|
|
984
|
+
.padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}`;
|
|
965
985
|
}
|
|
966
986
|
else {
|
|
967
|
-
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
987
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
968
988
|
.toString(16)
|
|
969
|
-
.padStart(2, '0')}${this.
|
|
989
|
+
.padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}${this.alpha
|
|
990
|
+
.toString(16)
|
|
991
|
+
.padStart(2, '0')}`;
|
|
970
992
|
}
|
|
971
993
|
}
|
|
972
994
|
toRgb() {
|
|
@@ -981,22 +1003,6 @@
|
|
|
981
1003
|
throw new Error(`Getting HSL is not implemented`);
|
|
982
1004
|
}
|
|
983
1005
|
}
|
|
984
|
-
/**
|
|
985
|
-
* TODO: [🥻] Split Color class and color type
|
|
986
|
-
* TODO: For each method a corresponding static method should be created
|
|
987
|
-
* Like clone can be done by color.clone() OR Color.clone(color)
|
|
988
|
-
* TODO: Probably as an independent LIB OR add to LIB xyzt (ask @roseckyj)
|
|
989
|
-
* TODO: !! Transfer back to Collboard (whole directory)
|
|
990
|
-
* TODO: Maybe [🏌️♂️] change ACRY toString => (toHex) toRgb when there will be toRgb and toRgba united
|
|
991
|
-
* TODO: Convert getters to methods - getters only for values
|
|
992
|
-
* TODO: Write tests
|
|
993
|
-
* TODO: Getters for alpha, opacity, transparency, r, b, g, h, s, l, a,...
|
|
994
|
-
* TODO: [0] Should be fromRgbString and fromRgbaString one or two functions + one or two regex
|
|
995
|
-
* TODO: Use rgb, rgba, hsl for testing and parsing with the same regex
|
|
996
|
-
* TODO: Regex for rgb, rgba, hsl does not support all options like deg, rad, turn,...
|
|
997
|
-
* TODO: Convolution matrix
|
|
998
|
-
* TODO: Maybe connect with textures
|
|
999
|
-
*/
|
|
1000
1006
|
|
|
1001
1007
|
/**
|
|
1002
1008
|
* Makes color transformer which returns a grayscale version of the color
|
|
@@ -1988,6 +1994,12 @@
|
|
|
1988
1994
|
// <- TODO: Add [emoji] + instructions ACRY when adding new reserved parameter
|
|
1989
1995
|
],
|
|
1990
1996
|
});
|
|
1997
|
+
/**
|
|
1998
|
+
* Prompt parameter that toggles whether the agent runs self-learning after each chat.
|
|
1999
|
+
*
|
|
2000
|
+
* @public exported from `@promptbook/core`
|
|
2001
|
+
*/
|
|
2002
|
+
const PROMPT_PARAMETER_SELF_LEARNING_ENABLED = 'selfLearningEnabled';
|
|
1991
2003
|
/**
|
|
1992
2004
|
* Limits for IDs, names, and other strings
|
|
1993
2005
|
*
|
|
@@ -3086,13 +3098,29 @@
|
|
|
3086
3098
|
return replacedTemplates;
|
|
3087
3099
|
}
|
|
3088
3100
|
|
|
3101
|
+
/**
|
|
3102
|
+
* Unsafe characters that prevent an inline parameter.
|
|
3103
|
+
*
|
|
3104
|
+
* @private constant of ParameterEscaping
|
|
3105
|
+
*/
|
|
3089
3106
|
const INLINE_UNSAFE_PARAMETER_PATTERN = /[\r\n`$'"|<>{};()-*/~+!@#$%^&*\\/[\]]/;
|
|
3107
|
+
/**
|
|
3108
|
+
* Characters that always need escaping for inline placeholders.
|
|
3109
|
+
*
|
|
3110
|
+
* @private constant of ParameterEscaping
|
|
3111
|
+
*/
|
|
3090
3112
|
const PROMPT_PARAMETER_ESCAPE_PATTERN = /[`$]/g;
|
|
3113
|
+
/**
|
|
3114
|
+
* Characters that always need escaping when braces are included.
|
|
3115
|
+
*
|
|
3116
|
+
* @private constant of ParameterEscaping
|
|
3117
|
+
*/
|
|
3091
3118
|
const PROMPT_PARAMETER_ESCAPE_WITH_BRACES_PATTERN = /[{}$`]/g;
|
|
3092
3119
|
/**
|
|
3093
3120
|
* Normalizes a JSON string so it can be safely rendered without double escaping.
|
|
3094
3121
|
*
|
|
3095
3122
|
* @param value Candidate JSON string.
|
|
3123
|
+
* @private function of ParameterEscaping
|
|
3096
3124
|
*/
|
|
3097
3125
|
function normalizeJsonString(value) {
|
|
3098
3126
|
try {
|
|
@@ -3104,59 +3132,35 @@
|
|
|
3104
3132
|
}
|
|
3105
3133
|
/**
|
|
3106
3134
|
* Hides brackets in a string to avoid confusion with template parameters.
|
|
3107
|
-
*/
|
|
3108
|
-
function hideBrackets(value) {
|
|
3109
|
-
return value.split('{').join(`${REPLACING_NONCE}beginbracket`).split('}').join(`${REPLACING_NONCE}endbracket`);
|
|
3110
|
-
}
|
|
3111
|
-
/**
|
|
3112
|
-
* Restores brackets in a string.
|
|
3113
|
-
*/
|
|
3114
|
-
function restoreBrackets(value) {
|
|
3115
|
-
return value.split(`${REPLACING_NONCE}beginbracket`).join('{').split(`${REPLACING_NONCE}endbracket`).join('}');
|
|
3116
|
-
}
|
|
3117
|
-
/**
|
|
3118
|
-
* Prompt string wrapper to retain prompt context across interpolations.
|
|
3119
3135
|
*
|
|
3120
|
-
* @
|
|
3136
|
+
* @param value Input string with literal brackets.
|
|
3137
|
+
* @private function of ParameterEscaping
|
|
3121
3138
|
*/
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
}
|
|
3129
|
-
/**
|
|
3130
|
-
* Returns the prompt as a primitive string.
|
|
3131
|
-
*/
|
|
3132
|
-
toString() {
|
|
3133
|
-
return super.toString();
|
|
3134
|
-
}
|
|
3135
|
-
/**
|
|
3136
|
-
* Returns the prompt as a primitive string for implicit coercion.
|
|
3137
|
-
*/
|
|
3138
|
-
valueOf() {
|
|
3139
|
-
return super.valueOf();
|
|
3140
|
-
}
|
|
3141
|
-
/**
|
|
3142
|
-
* Ensures template literal coercion returns the raw string.
|
|
3143
|
-
*/
|
|
3144
|
-
[Symbol.toPrimitive]() {
|
|
3145
|
-
return this.toString();
|
|
3146
|
-
}
|
|
3139
|
+
function hideBrackets(value) {
|
|
3140
|
+
return value
|
|
3141
|
+
.split('{')
|
|
3142
|
+
.join(`${REPLACING_NONCE}beginbracket`)
|
|
3143
|
+
.split('}')
|
|
3144
|
+
.join(`${REPLACING_NONCE}endbracket`);
|
|
3147
3145
|
}
|
|
3148
3146
|
/**
|
|
3149
|
-
*
|
|
3147
|
+
* Restores hidden brackets.
|
|
3150
3148
|
*
|
|
3151
|
-
* @param value
|
|
3149
|
+
* @param value String with hidden brackets.
|
|
3150
|
+
* @private function of ParameterEscaping
|
|
3152
3151
|
*/
|
|
3153
|
-
function
|
|
3154
|
-
return value
|
|
3152
|
+
function restoreBrackets(value) {
|
|
3153
|
+
return value
|
|
3154
|
+
.split(`${REPLACING_NONCE}beginbracket`)
|
|
3155
|
+
.join('{')
|
|
3156
|
+
.split(`${REPLACING_NONCE}endbracket`)
|
|
3157
|
+
.join('}');
|
|
3155
3158
|
}
|
|
3156
3159
|
/**
|
|
3157
|
-
* Decides whether a
|
|
3160
|
+
* Decides whether a parameter can be inlined safely.
|
|
3158
3161
|
*
|
|
3159
|
-
* @param value Parameter
|
|
3162
|
+
* @param value Parameter rendered as string.
|
|
3163
|
+
* @private function of ParameterEscaping
|
|
3160
3164
|
*/
|
|
3161
3165
|
function shouldInlineParameterValue(value) {
|
|
3162
3166
|
if (value.trim() === '') {
|
|
@@ -3165,10 +3169,11 @@
|
|
|
3165
3169
|
return !INLINE_UNSAFE_PARAMETER_PATTERN.test(value);
|
|
3166
3170
|
}
|
|
3167
3171
|
/**
|
|
3168
|
-
* Escapes parameter content to avoid breaking
|
|
3172
|
+
* Escapes prompt parameter content to avoid breaking the template structure.
|
|
3169
3173
|
*
|
|
3170
3174
|
* @param value Parameter value to escape.
|
|
3171
3175
|
* @param options Escape options for additional characters.
|
|
3176
|
+
* @private function of ParameterEscaping
|
|
3172
3177
|
*/
|
|
3173
3178
|
function escapePromptParameterValue(value, options) {
|
|
3174
3179
|
const pattern = options.includeBraces
|
|
@@ -3177,17 +3182,32 @@
|
|
|
3177
3182
|
return value.replace(pattern, '\\$&');
|
|
3178
3183
|
}
|
|
3179
3184
|
/**
|
|
3180
|
-
*
|
|
3185
|
+
* Collection of utilities that keep prompt parameters safe during interpolation.
|
|
3186
|
+
*
|
|
3187
|
+
* @private helper of prompt notation
|
|
3188
|
+
*/
|
|
3189
|
+
const ParameterEscaping = {
|
|
3190
|
+
normalizeJsonString,
|
|
3191
|
+
hideBrackets,
|
|
3192
|
+
restoreBrackets,
|
|
3193
|
+
shouldInlineParameterValue,
|
|
3194
|
+
escapePromptParameterValue,
|
|
3195
|
+
};
|
|
3196
|
+
|
|
3197
|
+
/**
|
|
3198
|
+
* Builds numeric parameter names (1, 2, ...).
|
|
3181
3199
|
*
|
|
3182
3200
|
* @param index Zero-based parameter index.
|
|
3201
|
+
* @private function of ParameterNaming
|
|
3183
3202
|
*/
|
|
3184
3203
|
function buildNumericParameterName(index) {
|
|
3185
3204
|
return `${index + 1}`;
|
|
3186
3205
|
}
|
|
3187
3206
|
/**
|
|
3188
|
-
* Builds alphabetic parameter
|
|
3207
|
+
* Builds alphabetic parameter names (a, b, ..., aa).
|
|
3189
3208
|
*
|
|
3190
3209
|
* @param index Zero-based parameter index.
|
|
3210
|
+
* @private function of ParameterNaming
|
|
3191
3211
|
*/
|
|
3192
3212
|
function buildAlphabeticParameterName(index) {
|
|
3193
3213
|
const alphabet = 'abcdefghijklmnopqrstuvwxyz';
|
|
@@ -3203,6 +3223,7 @@
|
|
|
3203
3223
|
* Converts a positive integer into a Roman numeral string.
|
|
3204
3224
|
*
|
|
3205
3225
|
* @param value Positive integer value.
|
|
3226
|
+
* @private function of ParameterNaming
|
|
3206
3227
|
*/
|
|
3207
3228
|
function toRomanNumeral(value) {
|
|
3208
3229
|
const romanTable = [
|
|
@@ -3231,24 +3252,28 @@
|
|
|
3231
3252
|
return result;
|
|
3232
3253
|
}
|
|
3233
3254
|
/**
|
|
3234
|
-
* Builds Roman numeral parameter
|
|
3255
|
+
* Builds Roman numeral parameter names (I, II, ...).
|
|
3235
3256
|
*
|
|
3236
3257
|
* @param index Zero-based parameter index.
|
|
3258
|
+
* @private function of ParameterNaming
|
|
3237
3259
|
*/
|
|
3238
3260
|
function buildRomanParameterName(index) {
|
|
3239
3261
|
return toRomanNumeral(index + 1);
|
|
3240
3262
|
}
|
|
3241
3263
|
/**
|
|
3242
|
-
* Creates a
|
|
3264
|
+
* Creates a prefixed naming strategy.
|
|
3243
3265
|
*
|
|
3244
|
-
* @param prefix Prefix
|
|
3245
|
-
* @param builder Base builder
|
|
3266
|
+
* @param prefix Prefix string.
|
|
3267
|
+
* @param builder Base builder function.
|
|
3268
|
+
* @private function of ParameterNaming
|
|
3246
3269
|
*/
|
|
3247
3270
|
function buildPrefixedParameterName(prefix, builder) {
|
|
3248
3271
|
return (index) => `${prefix}${builder(index)}`;
|
|
3249
3272
|
}
|
|
3250
3273
|
/**
|
|
3251
|
-
*
|
|
3274
|
+
* Available strategies that try to avoid placeholder conflicts.
|
|
3275
|
+
*
|
|
3276
|
+
* @private constant of ParameterNaming
|
|
3252
3277
|
*/
|
|
3253
3278
|
const PARAMETER_NAME_STRATEGIES = [
|
|
3254
3279
|
{ buildName: buildNumericParameterName },
|
|
@@ -3261,6 +3286,7 @@
|
|
|
3261
3286
|
* Collects bracketed tokens from parameter values to avoid placeholder collisions.
|
|
3262
3287
|
*
|
|
3263
3288
|
* @param values Parameter values to scan.
|
|
3289
|
+
* @private function of ParameterNaming
|
|
3264
3290
|
*/
|
|
3265
3291
|
function collectBracketedParameterTokens(values) {
|
|
3266
3292
|
const tokens = new Set();
|
|
@@ -3277,9 +3303,10 @@
|
|
|
3277
3303
|
return tokens;
|
|
3278
3304
|
}
|
|
3279
3305
|
/**
|
|
3280
|
-
* Builds
|
|
3306
|
+
* Builds placeholder names while avoiding collisions with parameter content.
|
|
3281
3307
|
*
|
|
3282
3308
|
* @param values Parameter values to scan for conflicting tokens.
|
|
3309
|
+
* @private function of ParameterNaming
|
|
3283
3310
|
*/
|
|
3284
3311
|
function buildParameterNames(values) {
|
|
3285
3312
|
const count = values.length;
|
|
@@ -3296,28 +3323,40 @@
|
|
|
3296
3323
|
}
|
|
3297
3324
|
return Array.from({ length: count }, (_, index) => `${REPLACING_NONCE}${index + 1}`);
|
|
3298
3325
|
}
|
|
3326
|
+
/**
|
|
3327
|
+
* Provides naming utilities for prompt parameters.
|
|
3328
|
+
*
|
|
3329
|
+
* @private helper of prompt notation
|
|
3330
|
+
*/
|
|
3331
|
+
const ParameterNaming = {
|
|
3332
|
+
buildParameterNames,
|
|
3333
|
+
};
|
|
3334
|
+
|
|
3299
3335
|
/**
|
|
3300
3336
|
* Formats the placeholder used in the prompt body for a parameter.
|
|
3301
3337
|
*
|
|
3302
3338
|
* @param name Parameter placeholder name.
|
|
3339
|
+
* @private function of ParameterSection
|
|
3303
3340
|
*/
|
|
3304
3341
|
function formatParameterPlaceholder(name) {
|
|
3305
3342
|
return `{${name}}`;
|
|
3306
3343
|
}
|
|
3307
3344
|
/**
|
|
3308
|
-
* Formats a
|
|
3345
|
+
* Formats a single line entry for structured parameters.
|
|
3309
3346
|
*
|
|
3310
3347
|
* @param item Parameter entry data.
|
|
3348
|
+
* @private function of ParameterSection
|
|
3311
3349
|
*/
|
|
3312
3350
|
function formatParameterListItem(item) {
|
|
3313
3351
|
var _a;
|
|
3314
|
-
const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(escapePromptParameterValue(item.value, { includeBraces: true }));
|
|
3352
|
+
const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(ParameterEscaping.escapePromptParameterValue(item.value, { includeBraces: true }));
|
|
3315
3353
|
return `${item.name}) ${formattedValue}`;
|
|
3316
3354
|
}
|
|
3317
3355
|
/**
|
|
3318
3356
|
* Builds the structured parameters section appended to the prompt.
|
|
3319
3357
|
*
|
|
3320
3358
|
* @param items Parameter entries to include.
|
|
3359
|
+
* @private function of ParameterSection
|
|
3321
3360
|
*/
|
|
3322
3361
|
function buildParametersSection(items) {
|
|
3323
3362
|
const entries = items
|
|
@@ -3332,6 +3371,55 @@
|
|
|
3332
3371
|
- Parameter values are escaped in JSON structures to avoid breaking the prompt structure.
|
|
3333
3372
|
`);
|
|
3334
3373
|
}
|
|
3374
|
+
/**
|
|
3375
|
+
* Provides helpers for rendering structured parameter placeholders.
|
|
3376
|
+
*
|
|
3377
|
+
* @private helper of prompt notation
|
|
3378
|
+
*/
|
|
3379
|
+
const ParameterSection = {
|
|
3380
|
+
formatParameterPlaceholder,
|
|
3381
|
+
buildParametersSection,
|
|
3382
|
+
};
|
|
3383
|
+
|
|
3384
|
+
/**
|
|
3385
|
+
* Prompt string wrapper to retain prompt context across interpolations.
|
|
3386
|
+
*
|
|
3387
|
+
* @public exported from `@promptbook/utils`
|
|
3388
|
+
*/
|
|
3389
|
+
class PromptString extends String {
|
|
3390
|
+
/**
|
|
3391
|
+
* @param value Prompt content.
|
|
3392
|
+
*/
|
|
3393
|
+
constructor(value) {
|
|
3394
|
+
super(value);
|
|
3395
|
+
}
|
|
3396
|
+
/**
|
|
3397
|
+
* Returns the prompt as a primitive string.
|
|
3398
|
+
*/
|
|
3399
|
+
toString() {
|
|
3400
|
+
return super.toString();
|
|
3401
|
+
}
|
|
3402
|
+
/**
|
|
3403
|
+
* Returns the prompt as a primitive string for implicit coercion.
|
|
3404
|
+
*/
|
|
3405
|
+
valueOf() {
|
|
3406
|
+
return super.valueOf();
|
|
3407
|
+
}
|
|
3408
|
+
/**
|
|
3409
|
+
* Ensures template literal coercion returns the raw string.
|
|
3410
|
+
*/
|
|
3411
|
+
[Symbol.toPrimitive]() {
|
|
3412
|
+
return this.toString();
|
|
3413
|
+
}
|
|
3414
|
+
}
|
|
3415
|
+
/**
|
|
3416
|
+
* Checks whether a value is a PromptString instance.
|
|
3417
|
+
*
|
|
3418
|
+
* @param value Candidate value.
|
|
3419
|
+
*/
|
|
3420
|
+
function isPromptString(value) {
|
|
3421
|
+
return value instanceof PromptString;
|
|
3422
|
+
}
|
|
3335
3423
|
/**
|
|
3336
3424
|
* Tag function for notating a prompt as template literal
|
|
3337
3425
|
*
|
|
@@ -3349,24 +3437,24 @@
|
|
|
3349
3437
|
if (values.length === 0) {
|
|
3350
3438
|
return new PromptString(spaceTrim__default["default"](strings.join('')));
|
|
3351
3439
|
}
|
|
3352
|
-
const stringsWithHiddenParameters = strings.map((stringsItem) => hideBrackets(stringsItem));
|
|
3440
|
+
const stringsWithHiddenParameters = strings.map((stringsItem) => ParameterEscaping.hideBrackets(stringsItem));
|
|
3353
3441
|
const parameterMetadata = values.map((value) => {
|
|
3354
3442
|
const isPrompt = isPromptString(value);
|
|
3355
3443
|
const stringValue = isPrompt ? value.toString() : valueToString(value);
|
|
3356
|
-
const isInline = isPrompt ? true : shouldInlineParameterValue(stringValue);
|
|
3357
|
-
const jsonValue = !isPrompt && !isInline ? normalizeJsonString(stringValue) : null;
|
|
3444
|
+
const isInline = isPrompt ? true : ParameterEscaping.shouldInlineParameterValue(stringValue);
|
|
3445
|
+
const jsonValue = !isPrompt && !isInline ? ParameterEscaping.normalizeJsonString(stringValue) : null;
|
|
3358
3446
|
return { isPrompt, stringValue, isInline, jsonValue };
|
|
3359
3447
|
});
|
|
3360
|
-
const parameterNames = buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
|
|
3448
|
+
const parameterNames = ParameterNaming.buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
|
|
3361
3449
|
const parameterEntries = parameterMetadata.map((entry, index) => {
|
|
3362
3450
|
var _a;
|
|
3363
|
-
const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a :
|
|
3451
|
+
const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a : `${index + 1}`;
|
|
3364
3452
|
const promptMarker = `${REPLACING_NONCE}prompt-${index}`;
|
|
3365
3453
|
const parameterMarker = `${REPLACING_NONCE}parameter-${index}`;
|
|
3366
3454
|
const templateValue = entry.isPrompt
|
|
3367
3455
|
? promptMarker
|
|
3368
3456
|
: entry.isInline
|
|
3369
|
-
? escapePromptParameterValue(entry.stringValue, { includeBraces: false })
|
|
3457
|
+
? ParameterEscaping.escapePromptParameterValue(entry.stringValue, { includeBraces: false })
|
|
3370
3458
|
: parameterMarker;
|
|
3371
3459
|
return {
|
|
3372
3460
|
name,
|
|
@@ -3386,7 +3474,7 @@
|
|
|
3386
3474
|
const parameterName = parameterNamesOrdered[i];
|
|
3387
3475
|
return parameterName === undefined
|
|
3388
3476
|
? `${result}${stringsItem}`
|
|
3389
|
-
: `${result}${stringsItem}${formatParameterPlaceholder(parameterName)}`;
|
|
3477
|
+
: `${result}${stringsItem}${ParameterSection.formatParameterPlaceholder(parameterName)}`;
|
|
3390
3478
|
}, '');
|
|
3391
3479
|
pipelineString = spaceTrim__default["default"](pipelineString);
|
|
3392
3480
|
try {
|
|
@@ -3404,14 +3492,16 @@
|
|
|
3404
3492
|
|
|
3405
3493
|
`));
|
|
3406
3494
|
}
|
|
3407
|
-
pipelineString = restoreBrackets(pipelineString);
|
|
3495
|
+
pipelineString = ParameterEscaping.restoreBrackets(pipelineString);
|
|
3408
3496
|
for (const entry of parameterEntries) {
|
|
3409
3497
|
if (entry.isPrompt) {
|
|
3410
3498
|
pipelineString = pipelineString.split(entry.promptMarker).join(entry.stringValue);
|
|
3411
3499
|
continue;
|
|
3412
3500
|
}
|
|
3413
3501
|
if (!entry.isInline) {
|
|
3414
|
-
pipelineString = pipelineString
|
|
3502
|
+
pipelineString = pipelineString
|
|
3503
|
+
.split(entry.parameterMarker)
|
|
3504
|
+
.join(ParameterSection.formatParameterPlaceholder(entry.name));
|
|
3415
3505
|
}
|
|
3416
3506
|
}
|
|
3417
3507
|
const structuredParameters = parameterEntries.filter((entry) => !entry.isPrompt && !entry.isInline);
|
|
@@ -3421,7 +3511,7 @@
|
|
|
3421
3511
|
value: entry.stringValue,
|
|
3422
3512
|
jsonValue: entry.jsonValue,
|
|
3423
3513
|
}));
|
|
3424
|
-
pipelineString = `${pipelineString}\n\n${buildParametersSection(parameterItems)}`;
|
|
3514
|
+
pipelineString = `${pipelineString}\n\n${ParameterSection.buildParametersSection(parameterItems)}`;
|
|
3425
3515
|
}
|
|
3426
3516
|
return new PromptString(pipelineString);
|
|
3427
3517
|
}
|
|
@@ -7085,6 +7175,7 @@
|
|
|
7085
7175
|
agentId: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentId,
|
|
7086
7176
|
agentName: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentName,
|
|
7087
7177
|
isTeamConversation: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isTeamConversation) === true,
|
|
7178
|
+
isPrivateMode: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isPrivateMode) === true,
|
|
7088
7179
|
};
|
|
7089
7180
|
}
|
|
7090
7181
|
/**
|
|
@@ -7130,12 +7221,15 @@
|
|
|
7130
7221
|
* @private utility of MEMORY commitment
|
|
7131
7222
|
*/
|
|
7132
7223
|
function getRuntimeAdapterOrDisabledResult(action, runtimeContext) {
|
|
7133
|
-
if (!runtimeContext.enabled || runtimeContext.isTeamConversation) {
|
|
7224
|
+
if (!runtimeContext.enabled || runtimeContext.isTeamConversation || runtimeContext.isPrivateMode) {
|
|
7225
|
+
const message = runtimeContext.isPrivateMode
|
|
7226
|
+
? 'Memory is disabled because private mode is active.'
|
|
7227
|
+
: runtimeContext.isTeamConversation
|
|
7228
|
+
? 'Memory is disabled for TEAM conversations.'
|
|
7229
|
+
: 'Memory is disabled for unauthenticated users.';
|
|
7134
7230
|
return {
|
|
7135
7231
|
adapter: null,
|
|
7136
|
-
disabledResult: createDisabledMemoryResult(action,
|
|
7137
|
-
? 'Memory is disabled for TEAM conversations.'
|
|
7138
|
-
: 'Memory is disabled for unauthenticated users.'),
|
|
7232
|
+
disabledResult: createDisabledMemoryResult(action, message),
|
|
7139
7233
|
};
|
|
7140
7234
|
}
|
|
7141
7235
|
{
|
|
@@ -7859,71 +7953,137 @@
|
|
|
7859
7953
|
}
|
|
7860
7954
|
|
|
7861
7955
|
/**
|
|
7862
|
-
*
|
|
7863
|
-
*
|
|
7864
|
-
* The META commitment handles all meta-information about the agent such as:
|
|
7865
|
-
* - META IMAGE: Sets the agent's avatar/profile image URL
|
|
7866
|
-
* - META LINK: Provides profile/source links for the person the agent models
|
|
7867
|
-
* - META TITLE: Sets the agent's display title
|
|
7868
|
-
* - META DESCRIPTION: Sets the agent's description
|
|
7869
|
-
* - META [ANYTHING]: Any other meta information in uppercase format
|
|
7956
|
+
* MESSAGE SUFFIX commitment definition
|
|
7870
7957
|
*
|
|
7871
|
-
*
|
|
7872
|
-
*
|
|
7958
|
+
* The MESSAGE SUFFIX commitment stores a hardcoded message that is appended
|
|
7959
|
+
* to every assistant response in Agents Server runtimes.
|
|
7873
7960
|
*
|
|
7874
7961
|
* Example usage in agent source:
|
|
7875
7962
|
*
|
|
7876
7963
|
* ```book
|
|
7877
|
-
*
|
|
7878
|
-
* META LINK https://twitter.com/username
|
|
7879
|
-
* META TITLE Professional Assistant
|
|
7880
|
-
* META DESCRIPTION An AI assistant specialized in business tasks
|
|
7881
|
-
* META AUTHOR John Doe
|
|
7882
|
-
* META VERSION 1.0
|
|
7964
|
+
* MESSAGE SUFFIX This message was generated by Promptbook.
|
|
7883
7965
|
* ```
|
|
7884
7966
|
*
|
|
7885
7967
|
* @private [🪔] Maybe export the commitments through some package
|
|
7886
7968
|
*/
|
|
7887
|
-
class
|
|
7969
|
+
class MessageSuffixCommitmentDefinition extends BaseCommitmentDefinition {
|
|
7888
7970
|
constructor() {
|
|
7889
|
-
super('
|
|
7971
|
+
super('MESSAGE SUFFIX');
|
|
7890
7972
|
}
|
|
7891
7973
|
/**
|
|
7892
|
-
* Short one-line description of
|
|
7974
|
+
* Short one-line description of MESSAGE SUFFIX.
|
|
7893
7975
|
*/
|
|
7894
7976
|
get description() {
|
|
7895
|
-
return 'Set
|
|
7977
|
+
return 'Set a hardcoded suffix appended to every assistant response.';
|
|
7896
7978
|
}
|
|
7897
7979
|
/**
|
|
7898
7980
|
* Icon for this commitment.
|
|
7899
7981
|
*/
|
|
7900
7982
|
get icon() {
|
|
7901
|
-
return '
|
|
7983
|
+
return '🏷️';
|
|
7902
7984
|
}
|
|
7903
7985
|
/**
|
|
7904
|
-
* Markdown documentation for
|
|
7986
|
+
* Markdown documentation for MESSAGE SUFFIX commitment.
|
|
7905
7987
|
*/
|
|
7906
7988
|
get documentation() {
|
|
7907
7989
|
return spaceTrim$1.spaceTrim(`
|
|
7908
|
-
#
|
|
7909
|
-
|
|
7910
|
-
Sets meta-information about the agent that is used for display and attribution purposes.
|
|
7990
|
+
# MESSAGE SUFFIX
|
|
7911
7991
|
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
- **META IMAGE** - Sets the agent's avatar/profile image URL
|
|
7915
|
-
- **META LINK** - Provides profile/source links for the person the agent models
|
|
7916
|
-
- **META TITLE** - Sets the agent's display title
|
|
7917
|
-
- **META DESCRIPTION** - Sets the agent's description
|
|
7918
|
-
- **META [ANYTHING]** - Any other meta information in uppercase format
|
|
7992
|
+
Defines a hardcoded message appended to every assistant response.
|
|
7919
7993
|
|
|
7920
7994
|
## Key aspects
|
|
7921
7995
|
|
|
7922
|
-
- Does not modify the
|
|
7923
|
-
-
|
|
7924
|
-
-
|
|
7925
|
-
-
|
|
7926
|
-
|
|
7996
|
+
- Does not modify the system message or model requirements.
|
|
7997
|
+
- Supports multiline markdown content.
|
|
7998
|
+
- Useful for branding, legal notes, and disclosure notices.
|
|
7999
|
+
- If multiple \`MESSAGE SUFFIX\` commitments are present, the last one takes precedence.
|
|
8000
|
+
|
|
8001
|
+
## Example
|
|
8002
|
+
|
|
8003
|
+
\`\`\`book
|
|
8004
|
+
Branded Assistant
|
|
8005
|
+
|
|
8006
|
+
MESSAGE SUFFIX
|
|
8007
|
+
This was generated by Promptbook, the best tool to create AI agents.
|
|
8008
|
+
\`\`\`
|
|
8009
|
+
`);
|
|
8010
|
+
}
|
|
8011
|
+
applyToAgentModelRequirements(requirements, content) {
|
|
8012
|
+
// MESSAGE SUFFIX does not modify model requirements.
|
|
8013
|
+
// It is consumed by parsing/runtime layers in Agents Server.
|
|
8014
|
+
return requirements;
|
|
8015
|
+
}
|
|
8016
|
+
}
|
|
8017
|
+
/**
|
|
8018
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
8019
|
+
*/
|
|
8020
|
+
|
|
8021
|
+
/**
|
|
8022
|
+
* META commitment definition
|
|
8023
|
+
*
|
|
8024
|
+
* The META commitment handles all meta-information about the agent such as:
|
|
8025
|
+
* - META IMAGE: Sets the agent's avatar/profile image URL
|
|
8026
|
+
* - META LINK: Provides profile/source links for the person the agent models
|
|
8027
|
+
* - META TITLE: Sets the agent's display title
|
|
8028
|
+
* - META DESCRIPTION: Sets the agent's description
|
|
8029
|
+
* - META [ANYTHING]: Any other meta information in uppercase format
|
|
8030
|
+
*
|
|
8031
|
+
* These commitments are special because they don't affect the system message,
|
|
8032
|
+
* but are handled separately in the parsing logic for profile display.
|
|
8033
|
+
*
|
|
8034
|
+
* Example usage in agent source:
|
|
8035
|
+
*
|
|
8036
|
+
* ```book
|
|
8037
|
+
* META IMAGE https://example.com/avatar.jpg
|
|
8038
|
+
* META LINK https://twitter.com/username
|
|
8039
|
+
* META TITLE Professional Assistant
|
|
8040
|
+
* META DESCRIPTION An AI assistant specialized in business tasks
|
|
8041
|
+
* META AUTHOR John Doe
|
|
8042
|
+
* META VERSION 1.0
|
|
8043
|
+
* ```
|
|
8044
|
+
*
|
|
8045
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
8046
|
+
*/
|
|
8047
|
+
class MetaCommitmentDefinition extends BaseCommitmentDefinition {
|
|
8048
|
+
constructor() {
|
|
8049
|
+
super('META');
|
|
8050
|
+
}
|
|
8051
|
+
/**
|
|
8052
|
+
* Short one-line description of META commitments.
|
|
8053
|
+
*/
|
|
8054
|
+
get description() {
|
|
8055
|
+
return 'Set meta-information about the agent (IMAGE, LINK, TITLE, DESCRIPTION, etc.).';
|
|
8056
|
+
}
|
|
8057
|
+
/**
|
|
8058
|
+
* Icon for this commitment.
|
|
8059
|
+
*/
|
|
8060
|
+
get icon() {
|
|
8061
|
+
return 'ℹ️';
|
|
8062
|
+
}
|
|
8063
|
+
/**
|
|
8064
|
+
* Markdown documentation for META commitment.
|
|
8065
|
+
*/
|
|
8066
|
+
get documentation() {
|
|
8067
|
+
return spaceTrim$1.spaceTrim(`
|
|
8068
|
+
# META
|
|
8069
|
+
|
|
8070
|
+
Sets meta-information about the agent that is used for display and attribution purposes.
|
|
8071
|
+
|
|
8072
|
+
## Supported META types
|
|
8073
|
+
|
|
8074
|
+
- **META IMAGE** - Sets the agent's avatar/profile image URL
|
|
8075
|
+
- **META LINK** - Provides profile/source links for the person the agent models
|
|
8076
|
+
- **META TITLE** - Sets the agent's display title
|
|
8077
|
+
- **META DESCRIPTION** - Sets the agent's description
|
|
8078
|
+
- **META [ANYTHING]** - Any other meta information in uppercase format
|
|
8079
|
+
|
|
8080
|
+
## Key aspects
|
|
8081
|
+
|
|
8082
|
+
- Does not modify the agent's behavior or responses
|
|
8083
|
+
- Used for visual representation and attribution in user interfaces
|
|
8084
|
+
- Multiple META commitments of different types can be used
|
|
8085
|
+
- Multiple META LINK commitments can be used for different social profiles
|
|
8086
|
+
- If multiple META commitments of the same type are specified, the last one takes precedence (except for LINK)
|
|
7927
8087
|
|
|
7928
8088
|
## Examples
|
|
7929
8089
|
|
|
@@ -8099,6 +8259,76 @@
|
|
|
8099
8259
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
8100
8260
|
*/
|
|
8101
8261
|
|
|
8262
|
+
/**
|
|
8263
|
+
* META DISCLAIMER commitment definition
|
|
8264
|
+
*
|
|
8265
|
+
* The META DISCLAIMER commitment stores markdown text that must be acknowledged
|
|
8266
|
+
* by the user before they can chat with the agent.
|
|
8267
|
+
*
|
|
8268
|
+
* Example usage in agent source:
|
|
8269
|
+
*
|
|
8270
|
+
* ```book
|
|
8271
|
+
* META DISCLAIMER
|
|
8272
|
+
*
|
|
8273
|
+
* This agent may provide information that is **not legally binding**.
|
|
8274
|
+
* ```
|
|
8275
|
+
*
|
|
8276
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
8277
|
+
*/
|
|
8278
|
+
class MetaDisclaimerCommitmentDefinition extends BaseCommitmentDefinition {
|
|
8279
|
+
constructor() {
|
|
8280
|
+
super('META DISCLAIMER');
|
|
8281
|
+
}
|
|
8282
|
+
/**
|
|
8283
|
+
* Short one-line description of META DISCLAIMER.
|
|
8284
|
+
*/
|
|
8285
|
+
get description() {
|
|
8286
|
+
return 'Set markdown disclaimer text that users must agree with before chat.';
|
|
8287
|
+
}
|
|
8288
|
+
/**
|
|
8289
|
+
* Icon for this commitment.
|
|
8290
|
+
*/
|
|
8291
|
+
get icon() {
|
|
8292
|
+
return '⚠️';
|
|
8293
|
+
}
|
|
8294
|
+
/**
|
|
8295
|
+
* Markdown documentation for META DISCLAIMER commitment.
|
|
8296
|
+
*/
|
|
8297
|
+
get documentation() {
|
|
8298
|
+
return spaceTrim$1.spaceTrim(`
|
|
8299
|
+
# META DISCLAIMER
|
|
8300
|
+
|
|
8301
|
+
Defines a markdown disclaimer shown to users before they can start chatting with the agent.
|
|
8302
|
+
|
|
8303
|
+
## Key aspects
|
|
8304
|
+
|
|
8305
|
+
- Does not modify the system message or model requirements.
|
|
8306
|
+
- Supports multiline markdown content.
|
|
8307
|
+
- Intended for legal warnings, safety notices, and mandatory acknowledgements.
|
|
8308
|
+
- If multiple \`META DISCLAIMER\` commitments are present, the last one takes precedence.
|
|
8309
|
+
|
|
8310
|
+
## Example
|
|
8311
|
+
|
|
8312
|
+
\`\`\`book
|
|
8313
|
+
Legal Assistant
|
|
8314
|
+
|
|
8315
|
+
META DISCLAIMER
|
|
8316
|
+
|
|
8317
|
+
This assistant provides **informational content only** and does not
|
|
8318
|
+
replace professional legal advice.
|
|
8319
|
+
\`\`\`
|
|
8320
|
+
`);
|
|
8321
|
+
}
|
|
8322
|
+
applyToAgentModelRequirements(requirements, content) {
|
|
8323
|
+
// META DISCLAIMER does not modify model requirements.
|
|
8324
|
+
// It is consumed by parsing/UI layers in Agents Server.
|
|
8325
|
+
return requirements;
|
|
8326
|
+
}
|
|
8327
|
+
}
|
|
8328
|
+
/**
|
|
8329
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
8330
|
+
*/
|
|
8331
|
+
|
|
8102
8332
|
/**
|
|
8103
8333
|
* META FONT commitment definition
|
|
8104
8334
|
*
|
|
@@ -10996,75 +11226,290 @@
|
|
|
10996
11226
|
*/
|
|
10997
11227
|
|
|
10998
11228
|
/**
|
|
10999
|
-
*
|
|
11229
|
+
* Tool name used by the USE USER LOCATION commitment.
|
|
11000
11230
|
*
|
|
11001
|
-
*
|
|
11002
|
-
|
|
11231
|
+
* @private internal USE USER LOCATION constant
|
|
11232
|
+
*/
|
|
11233
|
+
const GET_USER_LOCATION_TOOL_NAME = 'get_user_location';
|
|
11234
|
+
/**
|
|
11235
|
+
* Returns a finite number when valid.
|
|
11003
11236
|
*
|
|
11004
|
-
* @
|
|
11237
|
+
* @private utility of USE USER LOCATION commitment
|
|
11005
11238
|
*/
|
|
11006
|
-
|
|
11007
|
-
|
|
11008
|
-
|
|
11239
|
+
function normalizeFiniteNumber(value) {
|
|
11240
|
+
if (typeof value !== 'number') {
|
|
11241
|
+
return undefined;
|
|
11242
|
+
}
|
|
11243
|
+
return Number.isFinite(value) ? value : undefined;
|
|
11244
|
+
}
|
|
11245
|
+
/**
|
|
11246
|
+
* Returns a finite number or null when explicitly null.
|
|
11247
|
+
*
|
|
11248
|
+
* @private utility of USE USER LOCATION commitment
|
|
11249
|
+
*/
|
|
11250
|
+
function normalizeNullableFiniteNumber(value) {
|
|
11251
|
+
if (value === null) {
|
|
11252
|
+
return null;
|
|
11253
|
+
}
|
|
11254
|
+
return normalizeFiniteNumber(value);
|
|
11255
|
+
}
|
|
11256
|
+
/**
|
|
11257
|
+
* Normalizes raw runtime location payload into a safe location object.
|
|
11258
|
+
*
|
|
11259
|
+
* @private utility of USE USER LOCATION commitment
|
|
11260
|
+
*/
|
|
11261
|
+
function normalizeUserLocation(location) {
|
|
11262
|
+
return {
|
|
11263
|
+
permission: location.permission,
|
|
11264
|
+
latitude: normalizeFiniteNumber(location.latitude),
|
|
11265
|
+
longitude: normalizeFiniteNumber(location.longitude),
|
|
11266
|
+
accuracyMeters: normalizeFiniteNumber(location.accuracyMeters),
|
|
11267
|
+
altitudeMeters: normalizeNullableFiniteNumber(location.altitudeMeters),
|
|
11268
|
+
headingDegrees: normalizeNullableFiniteNumber(location.headingDegrees),
|
|
11269
|
+
speedMetersPerSecond: normalizeNullableFiniteNumber(location.speedMetersPerSecond),
|
|
11270
|
+
timestamp: typeof location.timestamp === 'string' ? location.timestamp : undefined,
|
|
11271
|
+
};
|
|
11272
|
+
}
|
|
11273
|
+
/**
|
|
11274
|
+
* Resolves the user location payload from hidden tool runtime context.
|
|
11275
|
+
*
|
|
11276
|
+
* @private utility of USE USER LOCATION commitment
|
|
11277
|
+
*/
|
|
11278
|
+
function resolveUserLocationFromRuntimeContext(args) {
|
|
11279
|
+
const runtimeContext = readToolRuntimeContextFromToolArgs(args);
|
|
11280
|
+
const location = runtimeContext === null || runtimeContext === void 0 ? void 0 : runtimeContext.userLocation;
|
|
11281
|
+
if (!location || typeof location !== 'object') {
|
|
11282
|
+
return null;
|
|
11283
|
+
}
|
|
11284
|
+
return normalizeUserLocation(location);
|
|
11285
|
+
}
|
|
11286
|
+
/**
|
|
11287
|
+
* Creates a standard "unavailable location" tool result.
|
|
11288
|
+
*
|
|
11289
|
+
* @private utility of USE USER LOCATION commitment
|
|
11290
|
+
*/
|
|
11291
|
+
function createUnavailableLocationResult() {
|
|
11292
|
+
return {
|
|
11293
|
+
status: 'unavailable',
|
|
11294
|
+
message: 'User location is not available in this runtime context. Ask the user to allow location sharing in browser, or ask for their city manually.',
|
|
11295
|
+
};
|
|
11296
|
+
}
|
|
11297
|
+
/**
|
|
11298
|
+
* Creates a standard "permission denied" tool result.
|
|
11299
|
+
*
|
|
11300
|
+
* @private utility of USE USER LOCATION commitment
|
|
11301
|
+
*/
|
|
11302
|
+
function createPermissionDeniedResult() {
|
|
11303
|
+
return {
|
|
11304
|
+
status: 'permission-denied',
|
|
11305
|
+
message: 'Location access is denied by the user/browser. Ask the user to enable location access or provide their location manually.',
|
|
11306
|
+
};
|
|
11307
|
+
}
|
|
11308
|
+
/**
|
|
11309
|
+
* USE USER LOCATION commitment definition.
|
|
11310
|
+
*
|
|
11311
|
+
* The `USE USER LOCATION` commitment enables an agent to retrieve user location from runtime context.
|
|
11312
|
+
*
|
|
11313
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
11314
|
+
*/
|
|
11315
|
+
class UseUserLocationCommitmentDefinition extends BaseCommitmentDefinition {
|
|
11316
|
+
constructor() {
|
|
11317
|
+
super('USE USER LOCATION', ['USER LOCATION']);
|
|
11318
|
+
}
|
|
11319
|
+
get requiresContent() {
|
|
11320
|
+
return false;
|
|
11009
11321
|
}
|
|
11010
11322
|
/**
|
|
11011
|
-
* Short one-line description of
|
|
11323
|
+
* Short one-line description of USE USER LOCATION.
|
|
11012
11324
|
*/
|
|
11013
11325
|
get description() {
|
|
11014
|
-
return '
|
|
11326
|
+
return 'Enable the agent to determine the user location when browser permission is granted.';
|
|
11015
11327
|
}
|
|
11016
11328
|
/**
|
|
11017
11329
|
* Icon for this commitment.
|
|
11018
11330
|
*/
|
|
11019
11331
|
get icon() {
|
|
11020
|
-
return '
|
|
11332
|
+
return '📍';
|
|
11021
11333
|
}
|
|
11022
11334
|
/**
|
|
11023
|
-
* Markdown documentation
|
|
11335
|
+
* Markdown documentation for USE USER LOCATION commitment.
|
|
11024
11336
|
*/
|
|
11025
11337
|
get documentation() {
|
|
11026
11338
|
return spaceTrim$1.spaceTrim(`
|
|
11027
|
-
#
|
|
11339
|
+
# USE USER LOCATION
|
|
11028
11340
|
|
|
11029
|
-
|
|
11341
|
+
Enables the agent to retrieve the user's location from runtime context.
|
|
11030
11342
|
|
|
11031
11343
|
## Key aspects
|
|
11032
11344
|
|
|
11033
|
-
-
|
|
11034
|
-
-
|
|
11035
|
-
-
|
|
11345
|
+
- The location is requested by the browser runtime (with user permission).
|
|
11346
|
+
- Use the tool \`get_user_location\` when an answer depends on user's location.
|
|
11347
|
+
- If location is unavailable or denied, ask the user to enable location sharing or provide location manually.
|
|
11348
|
+
- The content following \`USE USER LOCATION\` can define additional location usage instructions.
|
|
11036
11349
|
|
|
11037
|
-
##
|
|
11350
|
+
## Examples
|
|
11038
11351
|
|
|
11039
|
-
|
|
11040
|
-
|
|
11041
|
-
- **Future:** Will be replaced with specialized logic
|
|
11352
|
+
\`\`\`book
|
|
11353
|
+
Local Assistant
|
|
11042
11354
|
|
|
11043
|
-
|
|
11355
|
+
PERSONA You help with local recommendations.
|
|
11356
|
+
USE USER LOCATION
|
|
11357
|
+
\`\`\`
|
|
11044
11358
|
|
|
11045
11359
|
\`\`\`book
|
|
11046
|
-
|
|
11360
|
+
Travel Assistant
|
|
11047
11361
|
|
|
11048
|
-
PERSONA You
|
|
11049
|
-
|
|
11050
|
-
RULE Always be helpful
|
|
11362
|
+
PERSONA You help users with nearby transport and weather.
|
|
11363
|
+
USE USER LOCATION Use location only when strictly needed.
|
|
11051
11364
|
\`\`\`
|
|
11052
11365
|
`);
|
|
11053
11366
|
}
|
|
11054
11367
|
applyToAgentModelRequirements(requirements, content) {
|
|
11055
|
-
const
|
|
11056
|
-
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
|
|
11061
|
-
|
|
11368
|
+
const extraInstructions = formatOptionalInstructionBlock('User location instructions', content);
|
|
11369
|
+
const existingTools = requirements.tools || [];
|
|
11370
|
+
const tools = existingTools.some((tool) => tool.name === GET_USER_LOCATION_TOOL_NAME)
|
|
11371
|
+
? existingTools
|
|
11372
|
+
: [
|
|
11373
|
+
...existingTools,
|
|
11374
|
+
{
|
|
11375
|
+
name: GET_USER_LOCATION_TOOL_NAME,
|
|
11376
|
+
description: spaceTrim$1.spaceTrim(`
|
|
11377
|
+
Retrieves user location shared by browser runtime (if permission is granted).
|
|
11378
|
+
Returns JSON status with coordinates and metadata when available.
|
|
11379
|
+
`),
|
|
11380
|
+
parameters: {
|
|
11381
|
+
type: 'object',
|
|
11382
|
+
properties: {},
|
|
11383
|
+
required: [],
|
|
11384
|
+
},
|
|
11385
|
+
},
|
|
11386
|
+
];
|
|
11387
|
+
return this.appendToSystemMessage({
|
|
11388
|
+
...requirements,
|
|
11389
|
+
tools,
|
|
11390
|
+
_metadata: {
|
|
11391
|
+
...requirements._metadata,
|
|
11392
|
+
useUserLocation: content || true,
|
|
11393
|
+
},
|
|
11394
|
+
}, spaceTrim$1.spaceTrim((block) => `
|
|
11395
|
+
User location:
|
|
11396
|
+
- Use "${GET_USER_LOCATION_TOOL_NAME}" only when location is needed for a better answer.
|
|
11397
|
+
- If the tool returns "unavailable" or "permission-denied", ask user to share location or provide city manually.
|
|
11398
|
+
- Do not invent coordinates or local facts when location is unavailable.
|
|
11399
|
+
${block(extraInstructions)}
|
|
11400
|
+
`));
|
|
11401
|
+
}
|
|
11402
|
+
/**
|
|
11403
|
+
* Gets human-readable titles for tool functions provided by this commitment.
|
|
11404
|
+
*/
|
|
11405
|
+
getToolTitles() {
|
|
11406
|
+
return {
|
|
11407
|
+
[GET_USER_LOCATION_TOOL_NAME]: 'Get user location',
|
|
11408
|
+
};
|
|
11409
|
+
}
|
|
11410
|
+
/**
|
|
11411
|
+
* Gets the `get_user_location` tool function implementation.
|
|
11412
|
+
*/
|
|
11413
|
+
getToolFunctions() {
|
|
11414
|
+
return {
|
|
11415
|
+
async [GET_USER_LOCATION_TOOL_NAME](args) {
|
|
11416
|
+
const location = resolveUserLocationFromRuntimeContext(args);
|
|
11417
|
+
if (!location) {
|
|
11418
|
+
return JSON.stringify(createUnavailableLocationResult());
|
|
11419
|
+
}
|
|
11420
|
+
if (location.permission === 'denied') {
|
|
11421
|
+
return JSON.stringify(createPermissionDeniedResult());
|
|
11422
|
+
}
|
|
11423
|
+
if (location.latitude === undefined || location.longitude === undefined) {
|
|
11424
|
+
return JSON.stringify(createUnavailableLocationResult());
|
|
11425
|
+
}
|
|
11426
|
+
const result = {
|
|
11427
|
+
status: 'ok',
|
|
11428
|
+
location: {
|
|
11429
|
+
...location,
|
|
11430
|
+
permission: location.permission || 'granted',
|
|
11431
|
+
},
|
|
11432
|
+
message: 'User location is available.',
|
|
11433
|
+
};
|
|
11434
|
+
return JSON.stringify(result);
|
|
11435
|
+
},
|
|
11436
|
+
};
|
|
11062
11437
|
}
|
|
11063
11438
|
}
|
|
11064
|
-
|
|
11065
|
-
// Import all commitment definition classes
|
|
11066
11439
|
/**
|
|
11067
|
-
*
|
|
11440
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
11441
|
+
*/
|
|
11442
|
+
|
|
11443
|
+
/**
|
|
11444
|
+
* Placeholder commitment definition for commitments that are not yet implemented
|
|
11445
|
+
*
|
|
11446
|
+
* This commitment simply adds its content 1:1 into the system message,
|
|
11447
|
+
* preserving the original behavior until proper implementation is added.
|
|
11448
|
+
*
|
|
11449
|
+
* @public exported from `@promptbook/core`
|
|
11450
|
+
*/
|
|
11451
|
+
class NotYetImplementedCommitmentDefinition extends BaseCommitmentDefinition {
|
|
11452
|
+
constructor(type) {
|
|
11453
|
+
super(type);
|
|
11454
|
+
}
|
|
11455
|
+
/**
|
|
11456
|
+
* Short one-line description of a placeholder commitment.
|
|
11457
|
+
*/
|
|
11458
|
+
get description() {
|
|
11459
|
+
return 'Placeholder commitment that appends content verbatim to the system message.';
|
|
11460
|
+
}
|
|
11461
|
+
/**
|
|
11462
|
+
* Icon for this commitment.
|
|
11463
|
+
*/
|
|
11464
|
+
get icon() {
|
|
11465
|
+
return '🚧';
|
|
11466
|
+
}
|
|
11467
|
+
/**
|
|
11468
|
+
* Markdown documentation available at runtime.
|
|
11469
|
+
*/
|
|
11470
|
+
get documentation() {
|
|
11471
|
+
return spaceTrim$1.spaceTrim(`
|
|
11472
|
+
# ${this.type}
|
|
11473
|
+
|
|
11474
|
+
This commitment is not yet fully implemented.
|
|
11475
|
+
|
|
11476
|
+
## Key aspects
|
|
11477
|
+
|
|
11478
|
+
- Content is appended directly to the system message.
|
|
11479
|
+
- No special processing or validation is performed.
|
|
11480
|
+
- Behavior preserved until proper implementation is added.
|
|
11481
|
+
|
|
11482
|
+
## Status
|
|
11483
|
+
|
|
11484
|
+
- **Status:** Placeholder implementation
|
|
11485
|
+
- **Effect:** Appends content prefixed by commitment type
|
|
11486
|
+
- **Future:** Will be replaced with specialized logic
|
|
11487
|
+
|
|
11488
|
+
## Examples
|
|
11489
|
+
|
|
11490
|
+
\`\`\`book
|
|
11491
|
+
Example Agent
|
|
11492
|
+
|
|
11493
|
+
PERSONA You are a helpful assistant
|
|
11494
|
+
${this.type} Your content here
|
|
11495
|
+
RULE Always be helpful
|
|
11496
|
+
\`\`\`
|
|
11497
|
+
`);
|
|
11498
|
+
}
|
|
11499
|
+
applyToAgentModelRequirements(requirements, content) {
|
|
11500
|
+
const trimmedContent = content.trim();
|
|
11501
|
+
if (!trimmedContent) {
|
|
11502
|
+
return requirements;
|
|
11503
|
+
}
|
|
11504
|
+
// Add the commitment content 1:1 to the system message
|
|
11505
|
+
const commitmentLine = `${this.type} ${trimmedContent}`;
|
|
11506
|
+
return this.appendToSystemMessage(requirements, commitmentLine, '\n\n');
|
|
11507
|
+
}
|
|
11508
|
+
}
|
|
11509
|
+
|
|
11510
|
+
// Import all commitment definition classes
|
|
11511
|
+
/**
|
|
11512
|
+
* Registry of all available commitment definitions
|
|
11068
11513
|
* This array contains instances of all commitment definitions
|
|
11069
11514
|
* This is the single source of truth for all commitments in the system
|
|
11070
11515
|
*
|
|
@@ -11101,6 +11546,7 @@
|
|
|
11101
11546
|
new MetaColorCommitmentDefinition(),
|
|
11102
11547
|
new MetaFontCommitmentDefinition(),
|
|
11103
11548
|
new MetaLinkCommitmentDefinition(),
|
|
11549
|
+
new MetaDisclaimerCommitmentDefinition(),
|
|
11104
11550
|
new MetaCommitmentDefinition(),
|
|
11105
11551
|
new NoteCommitmentDefinition('NOTE'),
|
|
11106
11552
|
new NoteCommitmentDefinition('NOTES'),
|
|
@@ -11112,6 +11558,7 @@
|
|
|
11112
11558
|
new InitialMessageCommitmentDefinition(),
|
|
11113
11559
|
new UserMessageCommitmentDefinition(),
|
|
11114
11560
|
new AgentMessageCommitmentDefinition(),
|
|
11561
|
+
new MessageSuffixCommitmentDefinition(),
|
|
11115
11562
|
new MessageCommitmentDefinition('MESSAGE'),
|
|
11116
11563
|
new MessageCommitmentDefinition('MESSAGES'),
|
|
11117
11564
|
new ScenarioCommitmentDefinition('SCENARIO'),
|
|
@@ -11127,6 +11574,7 @@
|
|
|
11127
11574
|
new UseBrowserCommitmentDefinition(),
|
|
11128
11575
|
new UseSearchEngineCommitmentDefinition(),
|
|
11129
11576
|
new UseTimeCommitmentDefinition(),
|
|
11577
|
+
new UseUserLocationCommitmentDefinition(),
|
|
11130
11578
|
new UseEmailCommitmentDefinition(),
|
|
11131
11579
|
new UseImageGeneratorCommitmentDefinition('USE IMAGE GENERATOR'),
|
|
11132
11580
|
new UseMcpCommitmentDefinition(),
|
|
@@ -11478,6 +11926,14 @@
|
|
|
11478
11926
|
});
|
|
11479
11927
|
continue;
|
|
11480
11928
|
}
|
|
11929
|
+
if (commitment.type === 'USE USER LOCATION') {
|
|
11930
|
+
capabilities.push({
|
|
11931
|
+
type: 'user-location',
|
|
11932
|
+
label: 'User location',
|
|
11933
|
+
iconName: 'MapPin',
|
|
11934
|
+
});
|
|
11935
|
+
continue;
|
|
11936
|
+
}
|
|
11481
11937
|
if (commitment.type === 'USE EMAIL' /* || commitment.type === 'EMAIL' || commitment.type === 'MAIL' */) {
|
|
11482
11938
|
capabilities.push({
|
|
11483
11939
|
type: 'email',
|
|
@@ -11612,6 +12068,14 @@
|
|
|
11612
12068
|
meta.description = spaceTrim__default["default"](commitment.content);
|
|
11613
12069
|
continue;
|
|
11614
12070
|
}
|
|
12071
|
+
if (commitment.type === 'META DISCLAIMER') {
|
|
12072
|
+
meta.disclaimer = commitment.content;
|
|
12073
|
+
continue;
|
|
12074
|
+
}
|
|
12075
|
+
if (commitment.type === 'MESSAGE SUFFIX') {
|
|
12076
|
+
meta.messageSuffix = commitment.content;
|
|
12077
|
+
continue;
|
|
12078
|
+
}
|
|
11615
12079
|
if (commitment.type === 'META COLOR') {
|
|
11616
12080
|
meta.color = normalizeSeparator(commitment.content);
|
|
11617
12081
|
continue;
|
|
@@ -11818,73 +12282,6 @@
|
|
|
11818
12282
|
var styles$d = {"BookEditor":"BookEditor-module_BookEditor__s-0PU","bookEditorContainer":"BookEditor-module_bookEditorContainer__wLMwM","isVerbose":"BookEditor-module_isVerbose__VQ6iL","bookEditorWrapper":"BookEditor-module_bookEditorWrapper__twppD","isBorderRadiusDisabled":"BookEditor-module_isBorderRadiusDisabled__h1I3v","dropOverlay":"BookEditor-module_dropOverlay__xWWoX","bookEditorActionbar":"BookEditor-module_bookEditorActionbar__KW6dc","fullscreen":"BookEditor-module_fullscreen__rktsl","button":"BookEditor-module_button__hS390","savedNotification":"BookEditor-module_savedNotification__OiX9L","fadeOut":"BookEditor-module_fadeOut__q8JnR","uploadPanel":"BookEditor-module_uploadPanel__2JJtD","uploadPanelHeader":"BookEditor-module_uploadPanelHeader__pdJd2","uploadPanelTitle":"BookEditor-module_uploadPanelTitle__TJIVF","uploadPanelHeaderMeta":"BookEditor-module_uploadPanelHeaderMeta__Xw0uI","uploadPanelSummary":"BookEditor-module_uploadPanelSummary__rwSbG","uploadPanelProgressBar":"BookEditor-module_uploadPanelProgressBar__a6pjf","uploadPanelProgressFill":"BookEditor-module_uploadPanelProgressFill__l-TKR","uploadPanelList":"BookEditor-module_uploadPanelList__VxEd5","uploadRow":"BookEditor-module_uploadRow__QiSFg","uploadRowHeader":"BookEditor-module_uploadRowHeader__po0j5","uploadRowName":"BookEditor-module_uploadRowName__doQRO","uploadRowStatus":"BookEditor-module_uploadRowStatus__jsUb-","uploadRowMeta":"BookEditor-module_uploadRowMeta__1lz9h","uploadRowProgressBar":"BookEditor-module_uploadRowProgressBar__NoBA7","uploadRowProgressFill":"BookEditor-module_uploadRowProgressFill__TrP7e","uploadRowActions":"BookEditor-module_uploadRowActions__5Y1Mq","uploadActionButton":"BookEditor-module_uploadActionButton__CqJrr","uploadRowError":"BookEditor-module_uploadRowError__eEHWw"};
|
|
11819
12283
|
styleInject(css_248z$d);
|
|
11820
12284
|
|
|
11821
|
-
/**
|
|
11822
|
-
* Helper for manipulating agent books in-memory.
|
|
11823
|
-
*
|
|
11824
|
-
* @private internal helper for `@promptbook/core`
|
|
11825
|
-
*/
|
|
11826
|
-
class BookEditable {
|
|
11827
|
-
/**
|
|
11828
|
-
* Creates a mutable view over the supplied book content.
|
|
11829
|
-
*
|
|
11830
|
-
* @param book - Agent source text to work with.
|
|
11831
|
-
*/
|
|
11832
|
-
constructor(book) {
|
|
11833
|
-
this.lines = book.split(/\r?\n/);
|
|
11834
|
-
}
|
|
11835
|
-
/**
|
|
11836
|
-
* Creates a new instance from the supplied book text.
|
|
11837
|
-
*
|
|
11838
|
-
* @param book - Agent source text to work with.
|
|
11839
|
-
* @returns Editable view over the book content.
|
|
11840
|
-
*/
|
|
11841
|
-
static from(book) {
|
|
11842
|
-
return new BookEditable(book);
|
|
11843
|
-
}
|
|
11844
|
-
/**
|
|
11845
|
-
* Returns the editable content as a string_book.
|
|
11846
|
-
*
|
|
11847
|
-
* @returns Current book content with original line breaks preserved.
|
|
11848
|
-
*/
|
|
11849
|
-
toString() {
|
|
11850
|
-
return this.lines.join('\n');
|
|
11851
|
-
}
|
|
11852
|
-
/**
|
|
11853
|
-
* Checks whether the book contains any non-empty lines.
|
|
11854
|
-
*
|
|
11855
|
-
* @returns `true` when the book has meaningful content beyond blank lines.
|
|
11856
|
-
*/
|
|
11857
|
-
hasNonEmptyContent() {
|
|
11858
|
-
return this.lines.some((line) => line.trim() !== '');
|
|
11859
|
-
}
|
|
11860
|
-
/**
|
|
11861
|
-
* Finds the last line index whose trimmed text matches the commitment name.
|
|
11862
|
-
*
|
|
11863
|
-
* @param commitment - Commitment keyword to locate (for example `CLOSED`).
|
|
11864
|
-
* @returns Zero-based line index or `null` when the commitment is absent.
|
|
11865
|
-
*/
|
|
11866
|
-
findLastCommitmentLineIndex(commitment) {
|
|
11867
|
-
const normalized = commitment.trim().toUpperCase();
|
|
11868
|
-
for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
|
|
11869
|
-
const line = this.lines[lineIndex];
|
|
11870
|
-
if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
|
|
11871
|
-
return lineIndex;
|
|
11872
|
-
}
|
|
11873
|
-
}
|
|
11874
|
-
return null;
|
|
11875
|
-
}
|
|
11876
|
-
}
|
|
11877
|
-
|
|
11878
|
-
/**
|
|
11879
|
-
* Gets all available commitment definitions
|
|
11880
|
-
* @returns Array of all commitment definitions
|
|
11881
|
-
*
|
|
11882
|
-
* @public exported from `@promptbook/core`
|
|
11883
|
-
*/
|
|
11884
|
-
function getAllCommitmentDefinitions() {
|
|
11885
|
-
return $deepFreeze([...COMMITMENT_REGISTRY]);
|
|
11886
|
-
}
|
|
11887
|
-
|
|
11888
12285
|
/**
|
|
11889
12286
|
* Renders a save icon.
|
|
11890
12287
|
*
|
|
@@ -12918,122 +13315,164 @@
|
|
|
12918
13315
|
}, children: jsxRuntime.jsx(AboutPromptbookInformation, {}) }))] }));
|
|
12919
13316
|
}
|
|
12920
13317
|
|
|
12921
|
-
const BOOK_LANGUAGE_ID = 'book';
|
|
12922
|
-
const LINE_HEIGHT = 28;
|
|
12923
|
-
const CONTENT_PADDING_LEFT = 20;
|
|
12924
|
-
const VERTICAL_LINE_LEFT = 0; // <- TODO: This value is weird
|
|
12925
|
-
const UPLOAD_EDIT_DEBOUNCE_MS = 300;
|
|
12926
|
-
const UPLOAD_PROGRESS_DEBOUNCE_MS = 150;
|
|
12927
|
-
/**
|
|
12928
|
-
* Monaco marker owner used for external diagnostics injected into the editor.
|
|
12929
|
-
*/
|
|
12930
|
-
const DIAGNOSTIC_MARKER_OWNER = 'book-editor-diagnostics';
|
|
12931
|
-
/**
|
|
12932
|
-
* Matches absolute agent URLs (only `/agents/...` paths).
|
|
12933
|
-
*/
|
|
12934
|
-
const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
|
|
12935
|
-
/**
|
|
12936
|
-
* Matches all clickable agent-reference token variants in Book text.
|
|
12937
|
-
*/
|
|
12938
|
-
const AGENT_REFERENCE_TOKEN_REGEX = /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}|\{[A-Za-z0-9_-]{6,}\}|\{[^{}\r\n]*\s+[^{}\r\n]*\}|@[A-Za-z0-9_-]+|https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/g;
|
|
12939
13318
|
/**
|
|
12940
|
-
*
|
|
12941
|
-
|
|
12942
|
-
|
|
12943
|
-
/**
|
|
12944
|
-
* Regex rules reused by Monaco tokenization for agent-reference highlighting.
|
|
13319
|
+
* Shared constants for `BookEditorMonaco`.
|
|
13320
|
+
*
|
|
13321
|
+
* @private function of BookEditorMonaco
|
|
12945
13322
|
*/
|
|
12946
|
-
const
|
|
12947
|
-
|
|
12948
|
-
|
|
12949
|
-
|
|
12950
|
-
|
|
12951
|
-
|
|
12952
|
-
|
|
12953
|
-
|
|
12954
|
-
const UPLOAD_STATUS_LABELS = {
|
|
12955
|
-
queued: 'Queued',
|
|
12956
|
-
uploading: 'Uploading',
|
|
12957
|
-
paused: 'Paused',
|
|
12958
|
-
completed: 'Completed',
|
|
12959
|
-
failed: 'Failed',
|
|
13323
|
+
const BookEditorMonacoConstants = {
|
|
13324
|
+
BOOK_LANGUAGE_ID: 'book',
|
|
13325
|
+
LINE_HEIGHT: 28,
|
|
13326
|
+
CONTENT_PADDING_LEFT: 20,
|
|
13327
|
+
VERTICAL_LINE_LEFT: 0,
|
|
13328
|
+
UPLOAD_EDIT_DEBOUNCE_MS: 300,
|
|
13329
|
+
UPLOAD_PROGRESS_DEBOUNCE_MS: 150,
|
|
13330
|
+
DIAGNOSTIC_MARKER_OWNER: 'book-editor-diagnostics',
|
|
12960
13331
|
};
|
|
13332
|
+
|
|
12961
13333
|
/**
|
|
12962
|
-
*
|
|
13334
|
+
* Adds visual decorations for separators and code blocks inside `BookEditorMonaco`.
|
|
13335
|
+
*
|
|
13336
|
+
* @private function of BookEditorMonaco
|
|
12963
13337
|
*/
|
|
12964
|
-
|
|
13338
|
+
function useBookEditorMonacoDecorations({ editor, monaco }) {
|
|
13339
|
+
const decorationIdsRef = react.useRef([]);
|
|
13340
|
+
const codeBlockDecorationIdsRef = react.useRef([]);
|
|
13341
|
+
react.useEffect(() => {
|
|
13342
|
+
if (!editor || !monaco) {
|
|
13343
|
+
return;
|
|
13344
|
+
}
|
|
13345
|
+
const updateDecorations = () => {
|
|
13346
|
+
const model = editor.getModel();
|
|
13347
|
+
if (!model) {
|
|
13348
|
+
return;
|
|
13349
|
+
}
|
|
13350
|
+
const text = model.getValue();
|
|
13351
|
+
const matches = text.matchAll(/^---[-]*$/gm);
|
|
13352
|
+
const newDecorations = [];
|
|
13353
|
+
for (const match of matches) {
|
|
13354
|
+
if (match.index === undefined) {
|
|
13355
|
+
continue;
|
|
13356
|
+
}
|
|
13357
|
+
const startPos = model.getPositionAt(match.index);
|
|
13358
|
+
const endPos = model.getPositionAt(match.index + match[0].length);
|
|
13359
|
+
newDecorations.push({
|
|
13360
|
+
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13361
|
+
options: {
|
|
13362
|
+
isWholeLine: true,
|
|
13363
|
+
className: 'separator-line',
|
|
13364
|
+
inlineClassName: 'transparent-text',
|
|
13365
|
+
},
|
|
13366
|
+
});
|
|
13367
|
+
}
|
|
13368
|
+
decorationIdsRef.current = editor.deltaDecorations(decorationIdsRef.current, newDecorations);
|
|
13369
|
+
const lines = text.split(/\r?\n/);
|
|
13370
|
+
const codeBlockDecorations = [];
|
|
13371
|
+
let inCodeBlock = false;
|
|
13372
|
+
let codeBlockStartLine = 0;
|
|
13373
|
+
for (let i = 0; i < lines.length; i++) {
|
|
13374
|
+
const line = lines[i];
|
|
13375
|
+
if (line === null || line === void 0 ? void 0 : line.trim().startsWith('```')) {
|
|
13376
|
+
if (!inCodeBlock) {
|
|
13377
|
+
inCodeBlock = true;
|
|
13378
|
+
codeBlockStartLine = i + 1;
|
|
13379
|
+
}
|
|
13380
|
+
else {
|
|
13381
|
+
inCodeBlock = false;
|
|
13382
|
+
const endLine = i + 1;
|
|
13383
|
+
for (let j = codeBlockStartLine; j <= endLine; j++) {
|
|
13384
|
+
const isFirst = j === codeBlockStartLine;
|
|
13385
|
+
const isLast = j === endLine;
|
|
13386
|
+
codeBlockDecorations.push({
|
|
13387
|
+
range: new monaco.Range(j, 1, j, 1),
|
|
13388
|
+
options: {
|
|
13389
|
+
isWholeLine: true,
|
|
13390
|
+
className: `code-block-box${isFirst ? ' code-block-top' : ''}${isLast ? ' code-block-bottom' : ''}`,
|
|
13391
|
+
},
|
|
13392
|
+
});
|
|
13393
|
+
}
|
|
13394
|
+
}
|
|
13395
|
+
}
|
|
13396
|
+
}
|
|
13397
|
+
codeBlockDecorationIdsRef.current = editor.deltaDecorations(codeBlockDecorationIdsRef.current, codeBlockDecorations);
|
|
13398
|
+
};
|
|
13399
|
+
updateDecorations();
|
|
13400
|
+
const changeListener = editor.onDidChangeModelContent(() => {
|
|
13401
|
+
updateDecorations();
|
|
13402
|
+
});
|
|
13403
|
+
return () => {
|
|
13404
|
+
changeListener.dispose();
|
|
13405
|
+
};
|
|
13406
|
+
}, [editor, monaco]);
|
|
13407
|
+
}
|
|
13408
|
+
|
|
13409
|
+
const toMonacoMarkerSeverity = (monaco, severity) => {
|
|
12965
13410
|
if (severity === 'warning') {
|
|
12966
|
-
return
|
|
13411
|
+
return monaco.MarkerSeverity.Warning;
|
|
12967
13412
|
}
|
|
12968
13413
|
if (severity === 'info') {
|
|
12969
|
-
return
|
|
13414
|
+
return monaco.MarkerSeverity.Info;
|
|
12970
13415
|
}
|
|
12971
13416
|
if (severity === 'hint') {
|
|
12972
|
-
return
|
|
12973
|
-
}
|
|
12974
|
-
return monacoEditor.MarkerSeverity.Error;
|
|
12975
|
-
};
|
|
12976
|
-
/**
|
|
12977
|
-
* Builds the placeholder text for an in-progress upload entry.
|
|
12978
|
-
*/
|
|
12979
|
-
const getUploadPlaceholderText = (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`;
|
|
12980
|
-
/**
|
|
12981
|
-
* Formats a byte size into a readable string.
|
|
12982
|
-
*/
|
|
12983
|
-
const formatBytes = (bytes) => {
|
|
12984
|
-
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
12985
|
-
return '0 B';
|
|
12986
|
-
}
|
|
12987
|
-
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
12988
|
-
const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
|
|
12989
|
-
const value = bytes / Math.pow(1024, exponent);
|
|
12990
|
-
const precision = value >= 10 || exponent === 0 ? 0 : 1;
|
|
12991
|
-
return `${value.toFixed(precision)} ${units[exponent]}`;
|
|
12992
|
-
};
|
|
12993
|
-
/**
|
|
12994
|
-
* Formats a duration in milliseconds into a readable timer string.
|
|
12995
|
-
*/
|
|
12996
|
-
const formatDuration = (durationMs) => {
|
|
12997
|
-
if (!Number.isFinite(durationMs) || durationMs <= 0) {
|
|
12998
|
-
return '0:00';
|
|
12999
|
-
}
|
|
13000
|
-
const totalSeconds = Math.floor(durationMs / 1000);
|
|
13001
|
-
const seconds = totalSeconds % 60;
|
|
13002
|
-
const minutes = Math.floor(totalSeconds / 60) % 60;
|
|
13003
|
-
const hours = Math.floor(totalSeconds / 3600);
|
|
13004
|
-
const paddedSeconds = `${seconds}`.padStart(2, '0');
|
|
13005
|
-
if (hours > 0) {
|
|
13006
|
-
const paddedMinutes = `${minutes}`.padStart(2, '0');
|
|
13007
|
-
return `${hours}:${paddedMinutes}:${paddedSeconds}`;
|
|
13417
|
+
return monaco.MarkerSeverity.Hint;
|
|
13008
13418
|
}
|
|
13009
|
-
return
|
|
13419
|
+
return monaco.MarkerSeverity.Error;
|
|
13010
13420
|
};
|
|
13011
13421
|
/**
|
|
13012
|
-
*
|
|
13422
|
+
* Synchronizes Monaco markers with the diagnostics provided to `BookEditorMonaco`.
|
|
13423
|
+
*
|
|
13424
|
+
* @private function of BookEditorMonaco
|
|
13013
13425
|
*/
|
|
13014
|
-
|
|
13015
|
-
|
|
13016
|
-
|
|
13017
|
-
|
|
13018
|
-
|
|
13019
|
-
|
|
13020
|
-
|
|
13426
|
+
function useBookEditorMonacoDiagnostics({ editor, monaco, diagnostics }) {
|
|
13427
|
+
react.useEffect(() => {
|
|
13428
|
+
if (!editor || !monaco) {
|
|
13429
|
+
return;
|
|
13430
|
+
}
|
|
13431
|
+
const model = editor.getModel();
|
|
13432
|
+
if (!model) {
|
|
13433
|
+
return;
|
|
13434
|
+
}
|
|
13435
|
+
const markers = (diagnostics || []).map((diagnostic) => ({
|
|
13436
|
+
startLineNumber: diagnostic.startLineNumber,
|
|
13437
|
+
startColumn: diagnostic.startColumn,
|
|
13438
|
+
endLineNumber: diagnostic.endLineNumber,
|
|
13439
|
+
endColumn: diagnostic.endColumn,
|
|
13440
|
+
message: diagnostic.message,
|
|
13441
|
+
source: diagnostic.source,
|
|
13442
|
+
severity: toMonacoMarkerSeverity(monaco, diagnostic.severity),
|
|
13443
|
+
}));
|
|
13444
|
+
monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, markers);
|
|
13445
|
+
return () => {
|
|
13446
|
+
monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, []);
|
|
13447
|
+
};
|
|
13448
|
+
}, [diagnostics, editor, monaco]);
|
|
13449
|
+
}
|
|
13450
|
+
|
|
13021
13451
|
/**
|
|
13022
|
-
*
|
|
13452
|
+
* Gets all available commitment definitions
|
|
13453
|
+
* @returns Array of all commitment definitions
|
|
13454
|
+
*
|
|
13455
|
+
* @public exported from `@promptbook/core`
|
|
13023
13456
|
*/
|
|
13024
|
-
|
|
13025
|
-
|
|
13026
|
-
|
|
13027
|
-
|
|
13028
|
-
if (typeof error === 'object' && 'name' in error) {
|
|
13029
|
-
return error.name === 'AbortError';
|
|
13030
|
-
}
|
|
13031
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
13032
|
-
return message.toLowerCase().includes('abort');
|
|
13033
|
-
};
|
|
13457
|
+
function getAllCommitmentDefinitions() {
|
|
13458
|
+
return $deepFreeze([...COMMITMENT_REGISTRY]);
|
|
13459
|
+
}
|
|
13460
|
+
|
|
13034
13461
|
/**
|
|
13035
|
-
*
|
|
13462
|
+
* Agent reference helpers for `BookEditorMonaco`.
|
|
13463
|
+
*
|
|
13464
|
+
* @private function of BookEditorMonaco
|
|
13036
13465
|
*/
|
|
13466
|
+
const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
|
|
13467
|
+
const AGENT_REFERENCE_TOKEN_REGEX = /\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}|\{[A-Za-z0-9_-]{6,}\}|\{[^{}\r\n]*\s+[^{}\r\n]*\}|@[A-Za-z0-9_-]+|https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/g;
|
|
13468
|
+
const AGENT_REFERENCE_BRACED_REGEX = /^\{([\s\S]+)\}$/;
|
|
13469
|
+
const AGENT_REFERENCE_HIGHLIGHT_REGEXES = [
|
|
13470
|
+
/\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}/,
|
|
13471
|
+
/https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/,
|
|
13472
|
+
/\{[A-Za-z0-9_-]{6,}\}/,
|
|
13473
|
+
/\{[^{}\r\n]*\s+[^{}\r\n]*\}/,
|
|
13474
|
+
/@[A-Za-z0-9_-]+/,
|
|
13475
|
+
];
|
|
13037
13476
|
const extractAgentReferenceValue = (token) => {
|
|
13038
13477
|
if (token.startsWith('@')) {
|
|
13039
13478
|
return token.slice(1).trim();
|
|
@@ -13044,9 +13483,6 @@
|
|
|
13044
13483
|
}
|
|
13045
13484
|
return token.trim();
|
|
13046
13485
|
};
|
|
13047
|
-
/**
|
|
13048
|
-
* Resolves a compact or absolute reference token into a clickable agent URL.
|
|
13049
|
-
*/
|
|
13050
13486
|
const resolveAgentReferenceToUrl = (referenceValue) => {
|
|
13051
13487
|
const normalizedReferenceValue = referenceValue.replace(/[),.;!?]+$/g, '').trim();
|
|
13052
13488
|
if (!normalizedReferenceValue) {
|
|
@@ -13062,9 +13498,6 @@
|
|
|
13062
13498
|
const origin = typeof window !== 'undefined' ? window.location.origin : '';
|
|
13063
13499
|
return `${origin}/agents/${encoded}`;
|
|
13064
13500
|
};
|
|
13065
|
-
/**
|
|
13066
|
-
* Finds all agent references that should be highlighted and ctrl/cmd-clickable.
|
|
13067
|
-
*/
|
|
13068
13501
|
const extractAgentReferenceMatches = (content) => {
|
|
13069
13502
|
const matches = [];
|
|
13070
13503
|
let match;
|
|
@@ -13096,138 +13529,414 @@
|
|
|
13096
13529
|
return matches;
|
|
13097
13530
|
};
|
|
13098
13531
|
/**
|
|
13099
|
-
*
|
|
13532
|
+
* Agent reference helpers for `BookEditorMonaco`.
|
|
13533
|
+
*
|
|
13534
|
+
* @private function of BookEditorMonaco
|
|
13100
13535
|
*/
|
|
13101
|
-
|
|
13536
|
+
const BookEditorMonacoTokenization = {
|
|
13537
|
+
AGENT_URL_REFERENCE_REGEX,
|
|
13538
|
+
AGENT_REFERENCE_TOKEN_REGEX,
|
|
13539
|
+
AGENT_REFERENCE_BRACED_REGEX,
|
|
13540
|
+
AGENT_REFERENCE_HIGHLIGHT_REGEXES,
|
|
13541
|
+
extractAgentReferenceValue,
|
|
13542
|
+
resolveAgentReferenceToUrl,
|
|
13543
|
+
extractAgentReferenceMatches,
|
|
13544
|
+
};
|
|
13545
|
+
|
|
13102
13546
|
/**
|
|
13103
|
-
*
|
|
13547
|
+
* Registers the language helpers that power Monaco inside `BookEditorMonaco`.
|
|
13548
|
+
*
|
|
13549
|
+
* @private function of BookEditorMonaco
|
|
13104
13550
|
*/
|
|
13105
|
-
function
|
|
13106
|
-
|
|
13107
|
-
|
|
13108
|
-
} = props;
|
|
13109
|
-
const zoomLevel = zoom;
|
|
13110
|
-
const scaledLineHeight = Math.round(LINE_HEIGHT * zoomLevel);
|
|
13111
|
-
const scaledContentPaddingLeft = Math.max(8, Math.round(CONTENT_PADDING_LEFT * zoomLevel));
|
|
13112
|
-
const scaledVerticalLineLeft = Math.max(0, Math.round(VERTICAL_LINE_LEFT * zoomLevel));
|
|
13113
|
-
const baseFontSize = 20;
|
|
13114
|
-
const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
|
|
13115
|
-
const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
|
|
13116
|
-
const [isDragOver, setIsDragOver] = react.useState(false);
|
|
13117
|
-
const [editor, setEditor] = react.useState(null);
|
|
13118
|
-
const [isFocused, setIsFocused] = react.useState(false);
|
|
13119
|
-
const [isTouchDevice, setIsTouchDevice] = react.useState(false);
|
|
13120
|
-
const [isSavedShown, setIsSavedShown] = react.useState(false);
|
|
13121
|
-
const [uploadItems, setUploadItemsState] = react.useState([]);
|
|
13122
|
-
const monaco = Editor.useMonaco();
|
|
13123
|
-
// stable unique id for this instance
|
|
13124
|
-
const instanceIdRef = react.useRef(++notebookStyleCounter);
|
|
13125
|
-
const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
|
|
13126
|
-
// [1] Track touch start position to differentiate tap from drag
|
|
13127
|
-
const touchStartRef = react.useRef(null);
|
|
13128
|
-
const fileUploadInputRef = react.useRef(null);
|
|
13129
|
-
const cameraInputRef = react.useRef(null);
|
|
13130
|
-
const uploadItemsRef = react.useRef([]);
|
|
13131
|
-
const uploadFilesRef = react.useRef(new Map());
|
|
13132
|
-
const uploadDecorationIdsRef = react.useRef(new Map());
|
|
13133
|
-
const uploadControllersRef = react.useRef(new Map());
|
|
13134
|
-
const uploadQueueTimerRef = react.useRef(null);
|
|
13135
|
-
const editorUpdateTimerRef = react.useRef(null);
|
|
13136
|
-
const progressUpdateTimerRef = react.useRef(null);
|
|
13137
|
-
const pendingReplacementsRef = react.useRef([]);
|
|
13138
|
-
const pendingProgressUpdatesRef = react.useRef(new Map());
|
|
13139
|
-
const processUploadQueueRef = react.useRef(() => undefined);
|
|
13140
|
-
/*
|
|
13141
|
-
Note+TODO: [🚱] Yjs logic is commented out because it causes errors in the build of Next.js projects:
|
|
13142
|
-
> ▲ Next.js 15.4.5
|
|
13143
|
-
> - Experiments (use with caution):
|
|
13144
|
-
> ✓ externalDir
|
|
13145
|
-
>
|
|
13146
|
-
> Creating an optimized production build ...
|
|
13147
|
-
> ✓ Compiled successfully in 17.0s
|
|
13148
|
-
> ✓ Linting and checking validity of types
|
|
13149
|
-
> ✓ Collecting page data
|
|
13150
|
-
> Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
|
|
13151
|
-
> ReferenceError: window is not defined
|
|
13152
|
-
> at 27132 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\134.js:1:525485)
|
|
13153
|
-
> at c (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128)
|
|
13154
|
-
> at 89192 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\462.js:711:10466)
|
|
13155
|
-
> at Object.c [as require] (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128) {
|
|
13156
|
-
> digest: '2500543835'
|
|
13157
|
-
> }
|
|
13158
|
-
> Export encountered an error on /page: /, exiting the build.
|
|
13159
|
-
> ⨯ Next.js build worker exited with code: 1 and signal: null
|
|
13160
|
-
|
|
13161
|
-
|
|
13162
|
-
const [editor, setEditor] = useState<TODO_any>(null);
|
|
13163
|
-
|
|
13164
|
-
useEffect(() => {
|
|
13165
|
-
if (!monaco || !editor || !sync) {
|
|
13551
|
+
function useBookEditorMonacoLanguage({ monaco }) {
|
|
13552
|
+
react.useEffect(() => {
|
|
13553
|
+
if (!monaco) {
|
|
13166
13554
|
return;
|
|
13167
13555
|
}
|
|
13168
|
-
|
|
13169
|
-
const
|
|
13170
|
-
const
|
|
13171
|
-
|
|
13172
|
-
|
|
13173
|
-
|
|
13174
|
-
|
|
13556
|
+
monaco.languages.register({ id: BookEditorMonacoConstants.BOOK_LANGUAGE_ID });
|
|
13557
|
+
const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
|
|
13558
|
+
const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
|
|
13559
|
+
.sort((a, b) => b.length - a.length)
|
|
13560
|
+
.map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
|
|
13561
|
+
.join('|')})(?=\\s|$)`);
|
|
13562
|
+
const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
|
|
13563
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13564
|
+
const bookRules = [
|
|
13565
|
+
[/^---[-]*$/, ''],
|
|
13566
|
+
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13567
|
+
...BookEditorMonacoTokenization.AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [
|
|
13568
|
+
regex,
|
|
13569
|
+
'agent-reference',
|
|
13570
|
+
]),
|
|
13571
|
+
[parameterRegex, 'parameter'],
|
|
13572
|
+
[/\{[^}]+\}/, 'parameter'],
|
|
13573
|
+
[commitmentRegex, 'commitment'],
|
|
13574
|
+
];
|
|
13575
|
+
const tokenProvider = monaco.languages.setMonarchTokensProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
|
|
13576
|
+
ignoreCase: true,
|
|
13577
|
+
tokenizer: {
|
|
13578
|
+
root: [
|
|
13579
|
+
[/^\s*$/, 'empty'],
|
|
13580
|
+
[/^-*$/, 'line'],
|
|
13581
|
+
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13582
|
+
[/^.*$/, 'title', '@body'],
|
|
13583
|
+
[commitmentRegex, 'commitment'],
|
|
13584
|
+
],
|
|
13585
|
+
body: bookRules,
|
|
13586
|
+
codeblock: [
|
|
13587
|
+
[/^```.*$/, 'code-block', '@pop'],
|
|
13588
|
+
[/^.*$/, 'code-block'],
|
|
13589
|
+
],
|
|
13590
|
+
},
|
|
13591
|
+
});
|
|
13592
|
+
const completionProvider = monaco.languages.registerCompletionItemProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
|
|
13593
|
+
provideCompletionItems: (model, position) => {
|
|
13594
|
+
const word = model.getWordUntilPosition(position);
|
|
13595
|
+
const range = {
|
|
13596
|
+
startLineNumber: position.lineNumber,
|
|
13597
|
+
endLineNumber: position.lineNumber,
|
|
13598
|
+
startColumn: word.startColumn,
|
|
13599
|
+
endColumn: word.endColumn,
|
|
13600
|
+
};
|
|
13601
|
+
const suggestions = commitmentTypes.map((type) => ({
|
|
13602
|
+
label: type,
|
|
13603
|
+
kind: monaco.languages.CompletionItemKind.Keyword,
|
|
13604
|
+
insertText: type,
|
|
13605
|
+
range,
|
|
13606
|
+
}));
|
|
13607
|
+
return { suggestions };
|
|
13608
|
+
},
|
|
13609
|
+
});
|
|
13610
|
+
const linkProvider = monaco.languages.registerLinkProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
|
|
13611
|
+
provideLinks: (model) => {
|
|
13612
|
+
const content = model.getValue();
|
|
13613
|
+
const links = BookEditorMonacoTokenization.extractAgentReferenceMatches(content).map((reference) => {
|
|
13614
|
+
const startPos = model.getPositionAt(reference.index);
|
|
13615
|
+
const endPos = model.getPositionAt(reference.index + reference.length);
|
|
13616
|
+
return {
|
|
13617
|
+
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13618
|
+
url: reference.url,
|
|
13619
|
+
tooltip: `Open agent: ${reference.value}`,
|
|
13620
|
+
};
|
|
13621
|
+
});
|
|
13622
|
+
return { links };
|
|
13623
|
+
},
|
|
13624
|
+
});
|
|
13625
|
+
monaco.editor.defineTheme('book-theme', {
|
|
13626
|
+
base: 'vs',
|
|
13627
|
+
inherit: true,
|
|
13628
|
+
rules: [
|
|
13629
|
+
{
|
|
13630
|
+
token: 'title',
|
|
13631
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
|
|
13632
|
+
fontStyle: 'bold underline',
|
|
13633
|
+
},
|
|
13634
|
+
{
|
|
13635
|
+
token: 'commitment',
|
|
13636
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13637
|
+
fontStyle: 'bold',
|
|
13638
|
+
},
|
|
13639
|
+
{
|
|
13640
|
+
token: 'parameter',
|
|
13641
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
|
|
13642
|
+
fontStyle: 'italic',
|
|
13643
|
+
},
|
|
13644
|
+
{
|
|
13645
|
+
token: 'agent-reference',
|
|
13646
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13647
|
+
fontStyle: 'underline',
|
|
13648
|
+
},
|
|
13649
|
+
{
|
|
13650
|
+
token: 'code-block',
|
|
13651
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
|
|
13652
|
+
},
|
|
13653
|
+
],
|
|
13654
|
+
colors: {
|
|
13655
|
+
'editor.scrollbarSlider.background': '#E0E0E0',
|
|
13656
|
+
'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
|
|
13657
|
+
'editor.scrollbarSlider.activeBackground': '#C0C0C0',
|
|
13658
|
+
},
|
|
13659
|
+
});
|
|
13660
|
+
monaco.editor.setTheme('book-theme');
|
|
13175
13661
|
return () => {
|
|
13176
|
-
|
|
13177
|
-
|
|
13662
|
+
tokenProvider.dispose();
|
|
13663
|
+
completionProvider.dispose();
|
|
13664
|
+
linkProvider.dispose();
|
|
13178
13665
|
};
|
|
13179
|
-
}, [monaco
|
|
13180
|
-
|
|
13666
|
+
}, [monaco]);
|
|
13667
|
+
}
|
|
13668
|
+
|
|
13669
|
+
/**
|
|
13670
|
+
* Relative Y offset multiplier for aligning line background with Monaco rendering.
|
|
13671
|
+
*
|
|
13672
|
+
* @private function of BookEditorMonaco
|
|
13673
|
+
*/
|
|
13674
|
+
const BACKGROUND_POSITION_Y_MULTIPLIER = -0.1;
|
|
13675
|
+
/**
|
|
13676
|
+
* Injects notebook-inspired styling that is unique per `BookEditorMonaco` instance.
|
|
13677
|
+
*
|
|
13678
|
+
* @private function of BookEditorMonaco
|
|
13679
|
+
*/
|
|
13680
|
+
function useBookEditorMonacoStyles({ instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel, }) {
|
|
13181
13681
|
react.useEffect(() => {
|
|
13182
|
-
|
|
13183
|
-
|
|
13184
|
-
|
|
13185
|
-
|
|
13186
|
-
|
|
13187
|
-
|
|
13188
|
-
const setUploadItems = react.useCallback((updater) => {
|
|
13189
|
-
const next = updater(uploadItemsRef.current);
|
|
13190
|
-
uploadItemsRef.current = next;
|
|
13191
|
-
setUploadItemsState(next);
|
|
13192
|
-
}, []);
|
|
13193
|
-
/**
|
|
13194
|
-
* Batches upload progress updates to reduce render churn.
|
|
13195
|
-
*/
|
|
13196
|
-
const queueProgressUpdate = react.useCallback((uploadId, progress, loadedBytes, totalBytes) => {
|
|
13197
|
-
pendingProgressUpdatesRef.current.set(uploadId, {
|
|
13198
|
-
progress,
|
|
13199
|
-
loadedBytes,
|
|
13200
|
-
totalBytes,
|
|
13201
|
-
});
|
|
13202
|
-
if (progressUpdateTimerRef.current !== null) {
|
|
13203
|
-
return;
|
|
13682
|
+
const styleId = `notebook-margin-line-style-${instanceClass}`;
|
|
13683
|
+
let style = document.getElementById(styleId);
|
|
13684
|
+
if (!style) {
|
|
13685
|
+
style = document.createElement('style');
|
|
13686
|
+
style.id = styleId;
|
|
13687
|
+
document.head.appendChild(style);
|
|
13204
13688
|
}
|
|
13205
|
-
|
|
13206
|
-
|
|
13207
|
-
|
|
13208
|
-
|
|
13209
|
-
|
|
13210
|
-
|
|
13211
|
-
|
|
13212
|
-
|
|
13213
|
-
|
|
13214
|
-
|
|
13215
|
-
...item,
|
|
13216
|
-
progress: update.progress,
|
|
13217
|
-
loadedBytes: update.loadedBytes,
|
|
13218
|
-
totalBytes: update.totalBytes,
|
|
13219
|
-
};
|
|
13220
|
-
}));
|
|
13221
|
-
}, UPLOAD_PROGRESS_DEBOUNCE_MS);
|
|
13222
|
-
}, [setUploadItems]);
|
|
13223
|
-
/**
|
|
13224
|
-
* Applies queued placeholder replacements in a single editor edit batch.
|
|
13225
|
-
*/
|
|
13226
|
-
const flushEditorReplacements = react.useCallback(() => {
|
|
13227
|
-
if (!editor) {
|
|
13228
|
-
return;
|
|
13689
|
+
style.innerHTML = `
|
|
13690
|
+
|
|
13691
|
+
@import url('https://fonts.googleapis.com/css2?family=Bitcount+Grid+Single:wght@100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
|
|
13692
|
+
/* <- [🚚] */
|
|
13693
|
+
|
|
13694
|
+
.${instanceClass} .monaco-editor .view-lines {
|
|
13695
|
+
background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
|
|
13696
|
+
background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
|
|
13697
|
+
background-position-x: -${scaledContentPaddingLeft}px;
|
|
13698
|
+
background-position-y: ${scaledLineHeight * BACKGROUND_POSITION_Y_MULTIPLIER}px;
|
|
13229
13699
|
}
|
|
13230
|
-
|
|
13700
|
+
.${instanceClass} .monaco-editor .overflow-guard::before {
|
|
13701
|
+
content: '';
|
|
13702
|
+
position: absolute;
|
|
13703
|
+
left: ${scaledVerticalLineLeft}px;
|
|
13704
|
+
top: 0;
|
|
13705
|
+
bottom: 0;
|
|
13706
|
+
width: 1px;
|
|
13707
|
+
background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
|
|
13708
|
+
z-index: 10;
|
|
13709
|
+
}
|
|
13710
|
+
|
|
13711
|
+
.${instanceClass} .monaco-editor .separator-line {
|
|
13712
|
+
background: linear-gradient(
|
|
13713
|
+
to bottom,
|
|
13714
|
+
transparent ${scaledLineHeight * 0.9 - 2}px,
|
|
13715
|
+
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
|
|
13716
|
+
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
|
|
13717
|
+
transparent ${scaledLineHeight * 0.9 + 1}px
|
|
13718
|
+
);
|
|
13719
|
+
}
|
|
13720
|
+
|
|
13721
|
+
.${instanceClass} .monaco-editor .transparent-text {
|
|
13722
|
+
color: transparent !important;
|
|
13723
|
+
}
|
|
13724
|
+
|
|
13725
|
+
.${instanceClass} .monaco-editor .code-block-box {
|
|
13726
|
+
background-color: #f5f5f566;
|
|
13727
|
+
border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13728
|
+
border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13729
|
+
padding-left: ${Math.round(8 * zoomLevel)}px;
|
|
13730
|
+
padding-right: ${Math.round(8 * zoomLevel)}px;
|
|
13731
|
+
}
|
|
13732
|
+
|
|
13733
|
+
.${instanceClass} .monaco-editor .code-block-top {
|
|
13734
|
+
border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13735
|
+
border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13736
|
+
border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13737
|
+
overflow: hidden;
|
|
13738
|
+
}
|
|
13739
|
+
|
|
13740
|
+
.${instanceClass} .monaco-editor .code-block-bottom {
|
|
13741
|
+
border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13742
|
+
border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13743
|
+
border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13744
|
+
overflow: hidden;
|
|
13745
|
+
}
|
|
13746
|
+
`;
|
|
13747
|
+
return () => {
|
|
13748
|
+
// Style intentionally persists to avoid flash of unstyled content when using fast refresh.
|
|
13749
|
+
};
|
|
13750
|
+
}, [instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel]);
|
|
13751
|
+
}
|
|
13752
|
+
|
|
13753
|
+
/**
|
|
13754
|
+
* Helper for manipulating agent books in-memory.
|
|
13755
|
+
*
|
|
13756
|
+
* @private internal helper for `@promptbook/core`
|
|
13757
|
+
*/
|
|
13758
|
+
class BookEditable {
|
|
13759
|
+
/**
|
|
13760
|
+
* Creates a mutable view over the supplied book content.
|
|
13761
|
+
*
|
|
13762
|
+
* @param book - Agent source text to work with.
|
|
13763
|
+
*/
|
|
13764
|
+
constructor(book) {
|
|
13765
|
+
this.lines = book.split(/\r?\n/);
|
|
13766
|
+
}
|
|
13767
|
+
/**
|
|
13768
|
+
* Creates a new instance from the supplied book text.
|
|
13769
|
+
*
|
|
13770
|
+
* @param book - Agent source text to work with.
|
|
13771
|
+
* @returns Editable view over the book content.
|
|
13772
|
+
*/
|
|
13773
|
+
static from(book) {
|
|
13774
|
+
return new BookEditable(book);
|
|
13775
|
+
}
|
|
13776
|
+
/**
|
|
13777
|
+
* Returns the editable content as a string_book.
|
|
13778
|
+
*
|
|
13779
|
+
* @returns Current book content with original line breaks preserved.
|
|
13780
|
+
*/
|
|
13781
|
+
toString() {
|
|
13782
|
+
return this.lines.join('\n');
|
|
13783
|
+
}
|
|
13784
|
+
/**
|
|
13785
|
+
* Checks whether the book contains any non-empty lines.
|
|
13786
|
+
*
|
|
13787
|
+
* @returns `true` when the book has meaningful content beyond blank lines.
|
|
13788
|
+
*/
|
|
13789
|
+
hasNonEmptyContent() {
|
|
13790
|
+
return this.lines.some((line) => line.trim() !== '');
|
|
13791
|
+
}
|
|
13792
|
+
/**
|
|
13793
|
+
* Finds the last line index whose trimmed text matches the commitment name.
|
|
13794
|
+
*
|
|
13795
|
+
* @param commitment - Commitment keyword to locate (for example `CLOSED`).
|
|
13796
|
+
* @returns Zero-based line index or `null` when the commitment is absent.
|
|
13797
|
+
*/
|
|
13798
|
+
findLastCommitmentLineIndex(commitment) {
|
|
13799
|
+
const normalized = commitment.trim().toUpperCase();
|
|
13800
|
+
for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
|
|
13801
|
+
const line = this.lines[lineIndex];
|
|
13802
|
+
if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
|
|
13803
|
+
return lineIndex;
|
|
13804
|
+
}
|
|
13805
|
+
}
|
|
13806
|
+
return null;
|
|
13807
|
+
}
|
|
13808
|
+
}
|
|
13809
|
+
|
|
13810
|
+
/**
|
|
13811
|
+
* Number of seconds in one hour.
|
|
13812
|
+
*
|
|
13813
|
+
* @private function of BookEditorMonaco
|
|
13814
|
+
*/
|
|
13815
|
+
const SECONDS_IN_HOUR = 3600;
|
|
13816
|
+
/**
|
|
13817
|
+
* Formatting helpers for `BookEditorMonaco`.
|
|
13818
|
+
*
|
|
13819
|
+
* @private function of BookEditorMonaco
|
|
13820
|
+
*/
|
|
13821
|
+
const BookEditorMonacoFormatting = {
|
|
13822
|
+
getUploadPlaceholderText: (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`,
|
|
13823
|
+
formatBytes: (bytes) => {
|
|
13824
|
+
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
13825
|
+
return '0 B';
|
|
13826
|
+
}
|
|
13827
|
+
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
13828
|
+
const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
|
|
13829
|
+
const value = bytes / Math.pow(1024, exponent);
|
|
13830
|
+
const precision = value >= 10 || exponent === 0 ? 0 : 1;
|
|
13831
|
+
return `${value.toFixed(precision)} ${units[exponent]}`;
|
|
13832
|
+
},
|
|
13833
|
+
formatDuration: (durationMs) => {
|
|
13834
|
+
if (!Number.isFinite(durationMs) || durationMs <= 0) {
|
|
13835
|
+
return '0:00';
|
|
13836
|
+
}
|
|
13837
|
+
const totalSeconds = Math.floor(durationMs / 1000);
|
|
13838
|
+
const seconds = totalSeconds % 60;
|
|
13839
|
+
const minutes = Math.floor(totalSeconds / 60) % 60;
|
|
13840
|
+
const hours = Math.floor(totalSeconds / SECONDS_IN_HOUR);
|
|
13841
|
+
const paddedSeconds = `${seconds}`.padStart(2, '0');
|
|
13842
|
+
if (hours > 0) {
|
|
13843
|
+
const paddedMinutes = `${minutes}`.padStart(2, '0');
|
|
13844
|
+
return `${hours}:${paddedMinutes}:${paddedSeconds}`;
|
|
13845
|
+
}
|
|
13846
|
+
return `${minutes}:${paddedSeconds}`;
|
|
13847
|
+
},
|
|
13848
|
+
};
|
|
13849
|
+
|
|
13850
|
+
/**
|
|
13851
|
+
* Delay before clearing completed uploads from UI.
|
|
13852
|
+
*
|
|
13853
|
+
* @private function of BookEditorMonaco
|
|
13854
|
+
*/
|
|
13855
|
+
const COMPLETED_UPLOADS_CLEAR_DELAY_MS = 1500;
|
|
13856
|
+
/**
|
|
13857
|
+
* Generates deterministic ids for uploads that support server preloading.
|
|
13858
|
+
*
|
|
13859
|
+
* @private function of BookEditorMonaco
|
|
13860
|
+
*/
|
|
13861
|
+
const createUploadId = (() => {
|
|
13862
|
+
let sequence = 0;
|
|
13863
|
+
return () => {
|
|
13864
|
+
if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
|
|
13865
|
+
return crypto.randomUUID();
|
|
13866
|
+
}
|
|
13867
|
+
sequence += 1;
|
|
13868
|
+
return `upload-${Date.now()}-${sequence}`;
|
|
13869
|
+
};
|
|
13870
|
+
})();
|
|
13871
|
+
/**
|
|
13872
|
+
* Recognizes abort signals that should pause but not mark uploads as failed.
|
|
13873
|
+
*
|
|
13874
|
+
* @private function of BookEditorMonaco
|
|
13875
|
+
*/
|
|
13876
|
+
const isAbortError = (error) => {
|
|
13877
|
+
if (!error) {
|
|
13878
|
+
return false;
|
|
13879
|
+
}
|
|
13880
|
+
if (typeof error === 'object' && 'name' in error) {
|
|
13881
|
+
return error.name === 'AbortError';
|
|
13882
|
+
}
|
|
13883
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
13884
|
+
return message.toLowerCase().includes('abort');
|
|
13885
|
+
};
|
|
13886
|
+
/**
|
|
13887
|
+
* Handles file uploads and placeholder rendering inside `BookEditorMonaco`.
|
|
13888
|
+
*
|
|
13889
|
+
* @private function of BookEditorMonaco
|
|
13890
|
+
*/
|
|
13891
|
+
function useBookEditorMonacoUploads({ editor, monaco, onFileUpload }) {
|
|
13892
|
+
const [uploadItems, setUploadItemsState] = react.useState([]);
|
|
13893
|
+
const uploadItemsRef = react.useRef([]);
|
|
13894
|
+
const uploadFilesRef = react.useRef(new Map());
|
|
13895
|
+
const uploadDecorationIdsRef = react.useRef(new Map());
|
|
13896
|
+
const uploadControllersRef = react.useRef(new Map());
|
|
13897
|
+
const uploadQueueTimerRef = react.useRef(null);
|
|
13898
|
+
const editorUpdateTimerRef = react.useRef(null);
|
|
13899
|
+
const progressUpdateTimerRef = react.useRef(null);
|
|
13900
|
+
const pendingReplacementsRef = react.useRef([]);
|
|
13901
|
+
const pendingProgressUpdatesRef = react.useRef(new Map());
|
|
13902
|
+
const processUploadQueueRef = react.useRef(() => undefined);
|
|
13903
|
+
const setUploadItems = react.useCallback((updater) => {
|
|
13904
|
+
const next = updater(uploadItemsRef.current);
|
|
13905
|
+
uploadItemsRef.current = next;
|
|
13906
|
+
setUploadItemsState(next);
|
|
13907
|
+
}, []);
|
|
13908
|
+
const queueProgressUpdate = react.useCallback((uploadId, progress, loadedBytes, totalBytes) => {
|
|
13909
|
+
pendingProgressUpdatesRef.current.set(uploadId, {
|
|
13910
|
+
progress,
|
|
13911
|
+
loadedBytes,
|
|
13912
|
+
totalBytes,
|
|
13913
|
+
});
|
|
13914
|
+
if (progressUpdateTimerRef.current !== null) {
|
|
13915
|
+
return;
|
|
13916
|
+
}
|
|
13917
|
+
progressUpdateTimerRef.current = window.setTimeout(() => {
|
|
13918
|
+
progressUpdateTimerRef.current = null;
|
|
13919
|
+
const updates = pendingProgressUpdatesRef.current;
|
|
13920
|
+
pendingProgressUpdatesRef.current = new Map();
|
|
13921
|
+
setUploadItems((items) => items.map((item) => {
|
|
13922
|
+
const update = updates.get(item.id);
|
|
13923
|
+
if (!update) {
|
|
13924
|
+
return item;
|
|
13925
|
+
}
|
|
13926
|
+
return {
|
|
13927
|
+
...item,
|
|
13928
|
+
progress: update.progress,
|
|
13929
|
+
loadedBytes: update.loadedBytes,
|
|
13930
|
+
totalBytes: update.totalBytes,
|
|
13931
|
+
};
|
|
13932
|
+
}));
|
|
13933
|
+
}, BookEditorMonacoConstants.UPLOAD_PROGRESS_DEBOUNCE_MS);
|
|
13934
|
+
}, [setUploadItems]);
|
|
13935
|
+
const flushEditorReplacements = react.useCallback(() => {
|
|
13936
|
+
if (!editor) {
|
|
13937
|
+
return;
|
|
13938
|
+
}
|
|
13939
|
+
const model = editor.getModel();
|
|
13231
13940
|
if (!model) {
|
|
13232
13941
|
return;
|
|
13233
13942
|
}
|
|
@@ -13256,9 +13965,6 @@
|
|
|
13256
13965
|
editor.deltaDecorations(decorationsToRemove, []);
|
|
13257
13966
|
}
|
|
13258
13967
|
}, [editor]);
|
|
13259
|
-
/**
|
|
13260
|
-
* Queues a placeholder replacement and debounces editor updates.
|
|
13261
|
-
*/
|
|
13262
13968
|
const queueEditorReplacement = react.useCallback((uploadId, replacementText) => {
|
|
13263
13969
|
const decorationId = uploadDecorationIdsRef.current.get(uploadId);
|
|
13264
13970
|
if (!decorationId) {
|
|
@@ -13282,11 +13988,8 @@
|
|
|
13282
13988
|
editorUpdateTimerRef.current = window.setTimeout(() => {
|
|
13283
13989
|
editorUpdateTimerRef.current = null;
|
|
13284
13990
|
flushEditorReplacements();
|
|
13285
|
-
}, UPLOAD_EDIT_DEBOUNCE_MS);
|
|
13991
|
+
}, BookEditorMonacoConstants.UPLOAD_EDIT_DEBOUNCE_MS);
|
|
13286
13992
|
}, [flushEditorReplacements]);
|
|
13287
|
-
/**
|
|
13288
|
-
* Schedules upload queue processing on the next tick.
|
|
13289
|
-
*/
|
|
13290
13993
|
const queueUploadProcessing = react.useCallback(() => {
|
|
13291
13994
|
if (uploadQueueTimerRef.current !== null) {
|
|
13292
13995
|
return;
|
|
@@ -13296,9 +13999,6 @@
|
|
|
13296
13999
|
processUploadQueueRef.current();
|
|
13297
14000
|
}, 0);
|
|
13298
14001
|
}, []);
|
|
13299
|
-
/**
|
|
13300
|
-
* Starts uploading a queued item.
|
|
13301
|
-
*/
|
|
13302
14002
|
const startUpload = react.useCallback(async (uploadId) => {
|
|
13303
14003
|
if (!onFileUpload) {
|
|
13304
14004
|
return;
|
|
@@ -13373,9 +14073,6 @@
|
|
|
13373
14073
|
queueUploadProcessing();
|
|
13374
14074
|
}
|
|
13375
14075
|
}, [onFileUpload, queueEditorReplacement, queueProgressUpdate, queueUploadProcessing, setUploadItems]);
|
|
13376
|
-
/**
|
|
13377
|
-
* Starts queued uploads up to the concurrency limit.
|
|
13378
|
-
*/
|
|
13379
14076
|
const processUploadQueue = react.useCallback(() => {
|
|
13380
14077
|
if (!onFileUpload) {
|
|
13381
14078
|
return;
|
|
@@ -13392,9 +14089,6 @@
|
|
|
13392
14089
|
});
|
|
13393
14090
|
}, [onFileUpload, startUpload]);
|
|
13394
14091
|
processUploadQueueRef.current = processUploadQueue;
|
|
13395
|
-
/**
|
|
13396
|
-
* Pauses a queued or active upload.
|
|
13397
|
-
*/
|
|
13398
14092
|
const pauseUpload = react.useCallback((uploadId) => {
|
|
13399
14093
|
setUploadItems((items) => items.map((item) => item.id === uploadId && item.status === 'queued'
|
|
13400
14094
|
? {
|
|
@@ -13405,9 +14099,6 @@
|
|
|
13405
14099
|
const controller = uploadControllersRef.current.get(uploadId);
|
|
13406
14100
|
controller === null || controller === void 0 ? void 0 : controller.abort();
|
|
13407
14101
|
}, [setUploadItems]);
|
|
13408
|
-
/**
|
|
13409
|
-
* Resumes a paused or failed upload by re-queuing it.
|
|
13410
|
-
*/
|
|
13411
14102
|
const resumeUpload = react.useCallback((uploadId) => {
|
|
13412
14103
|
setUploadItems((items) => items.map((item) => item.id === uploadId
|
|
13413
14104
|
? {
|
|
@@ -13422,43 +14113,6 @@
|
|
|
13422
14113
|
: item));
|
|
13423
14114
|
queueUploadProcessing();
|
|
13424
14115
|
}, [queueUploadProcessing, setUploadItems]);
|
|
13425
|
-
react.useEffect(() => {
|
|
13426
|
-
if (!editor) {
|
|
13427
|
-
return;
|
|
13428
|
-
}
|
|
13429
|
-
const focusListener = editor.onDidFocusEditorWidget(() => {
|
|
13430
|
-
setIsFocused(true);
|
|
13431
|
-
});
|
|
13432
|
-
const blurListener = editor.onDidBlurEditorWidget(() => {
|
|
13433
|
-
setIsFocused(false);
|
|
13434
|
-
});
|
|
13435
|
-
const saveAction = editor.addAction({
|
|
13436
|
-
id: 'save-book',
|
|
13437
|
-
label: 'Save',
|
|
13438
|
-
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
|
|
13439
|
-
run: () => {
|
|
13440
|
-
setIsSavedShown(false);
|
|
13441
|
-
setTimeout(() => setIsSavedShown(true), 0);
|
|
13442
|
-
// Note: We don't prevent default, so browser's save dialog still opens
|
|
13443
|
-
},
|
|
13444
|
-
});
|
|
13445
|
-
return () => {
|
|
13446
|
-
focusListener.dispose();
|
|
13447
|
-
blurListener.dispose();
|
|
13448
|
-
saveAction.dispose();
|
|
13449
|
-
};
|
|
13450
|
-
}, [editor, monaco]);
|
|
13451
|
-
react.useEffect(() => {
|
|
13452
|
-
if (!isSavedShown) {
|
|
13453
|
-
return;
|
|
13454
|
-
}
|
|
13455
|
-
const timer = setTimeout(() => {
|
|
13456
|
-
setIsSavedShown(false);
|
|
13457
|
-
}, 2000);
|
|
13458
|
-
return () => {
|
|
13459
|
-
clearTimeout(timer);
|
|
13460
|
-
};
|
|
13461
|
-
}, [isSavedShown]);
|
|
13462
14116
|
react.useEffect(() => {
|
|
13463
14117
|
return () => {
|
|
13464
14118
|
if (uploadQueueTimerRef.current !== null) {
|
|
@@ -13488,380 +14142,242 @@
|
|
|
13488
14142
|
uploadFilesRef.current.clear();
|
|
13489
14143
|
uploadDecorationIdsRef.current.clear();
|
|
13490
14144
|
setUploadItems(() => []);
|
|
13491
|
-
},
|
|
14145
|
+
}, COMPLETED_UPLOADS_CLEAR_DELAY_MS);
|
|
13492
14146
|
return () => {
|
|
13493
14147
|
clearTimeout(timer);
|
|
13494
14148
|
};
|
|
13495
|
-
}, [
|
|
13496
|
-
react.
|
|
13497
|
-
|
|
14149
|
+
}, [uploadItems]);
|
|
14150
|
+
const handleFiles = react.useCallback(async (files) => {
|
|
14151
|
+
var _a;
|
|
14152
|
+
if (!onFileUpload || !editor || !monaco) {
|
|
13498
14153
|
return;
|
|
13499
14154
|
}
|
|
13500
|
-
|
|
13501
|
-
monaco.languages.register({ id: BOOK_LANGUAGE_ID });
|
|
13502
|
-
const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
|
|
13503
|
-
const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
|
|
13504
|
-
.sort((a, b) => b.length - a.length) // [1] Prefer longer commitments to avoid partial matching (e.g. LANGUAGES vs LANGUAGE)
|
|
13505
|
-
.map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
|
|
13506
|
-
.join('|')})(?=\\s|$)`);
|
|
13507
|
-
// Note: Using a broad character set for Latin and Cyrillic to support international characters in parameters.
|
|
13508
|
-
// Monarch tokenizer does not support Unicode property escapes like \p{L}.
|
|
13509
|
-
const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
|
|
13510
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13511
|
-
const bookRules = [
|
|
13512
|
-
[/^---[-]*$/, ''],
|
|
13513
|
-
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13514
|
-
...AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [regex, 'agent-reference']),
|
|
13515
|
-
[parameterRegex, 'parameter'],
|
|
13516
|
-
[/\{[^}]+\}/, 'parameter'],
|
|
13517
|
-
[commitmentRegex, 'commitment'],
|
|
13518
|
-
];
|
|
13519
|
-
// Register a tokens provider for the language
|
|
13520
|
-
const tokenProvider = monaco.languages.setMonarchTokensProvider(BOOK_LANGUAGE_ID, {
|
|
13521
|
-
ignoreCase: true,
|
|
13522
|
-
tokenizer: {
|
|
13523
|
-
root: [
|
|
13524
|
-
[/^\s*$/, 'empty'],
|
|
13525
|
-
[/^-*$/, 'line'],
|
|
13526
|
-
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13527
|
-
[/^.*$/, 'title', '@body'],
|
|
13528
|
-
[commitmentRegex, 'commitment'],
|
|
13529
|
-
],
|
|
13530
|
-
body: bookRules,
|
|
13531
|
-
codeblock: [
|
|
13532
|
-
[/^```.*$/, 'code-block', '@pop'],
|
|
13533
|
-
[/^.*$/, 'code-block'],
|
|
13534
|
-
],
|
|
13535
|
-
},
|
|
13536
|
-
});
|
|
13537
|
-
// Register a completion item provider for the language
|
|
13538
|
-
const completionProvider = monaco.languages.registerCompletionItemProvider(BOOK_LANGUAGE_ID, {
|
|
13539
|
-
provideCompletionItems: (model, position) => {
|
|
13540
|
-
const word = model.getWordUntilPosition(position);
|
|
13541
|
-
const range = {
|
|
13542
|
-
startLineNumber: position.lineNumber,
|
|
13543
|
-
endLineNumber: position.lineNumber,
|
|
13544
|
-
startColumn: word.startColumn,
|
|
13545
|
-
endColumn: word.endColumn,
|
|
13546
|
-
};
|
|
13547
|
-
const suggestions = commitmentTypes.map((type) => ({
|
|
13548
|
-
label: type,
|
|
13549
|
-
kind: monaco.languages.CompletionItemKind.Keyword,
|
|
13550
|
-
insertText: type,
|
|
13551
|
-
range: range,
|
|
13552
|
-
}));
|
|
13553
|
-
return { suggestions: suggestions };
|
|
13554
|
-
},
|
|
13555
|
-
});
|
|
13556
|
-
const linkProvider = monaco.languages.registerLinkProvider(BOOK_LANGUAGE_ID, {
|
|
13557
|
-
provideLinks: (model) => {
|
|
13558
|
-
const content = model.getValue();
|
|
13559
|
-
const links = extractAgentReferenceMatches(content).map((reference) => {
|
|
13560
|
-
const startPos = model.getPositionAt(reference.index);
|
|
13561
|
-
const endPos = model.getPositionAt(reference.index + reference.length);
|
|
13562
|
-
return {
|
|
13563
|
-
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13564
|
-
url: reference.url,
|
|
13565
|
-
tooltip: `Open agent: ${reference.value}`,
|
|
13566
|
-
};
|
|
13567
|
-
});
|
|
13568
|
-
return { links };
|
|
13569
|
-
},
|
|
13570
|
-
});
|
|
13571
|
-
monaco.editor.defineTheme('book-theme', {
|
|
13572
|
-
base: 'vs',
|
|
13573
|
-
inherit: true,
|
|
13574
|
-
rules: [
|
|
13575
|
-
{
|
|
13576
|
-
token: 'title',
|
|
13577
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
|
|
13578
|
-
// [🚚]> fontStyle: 'underline italic',
|
|
13579
|
-
fontStyle: 'bold underline',
|
|
13580
|
-
},
|
|
13581
|
-
{
|
|
13582
|
-
token: 'commitment',
|
|
13583
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13584
|
-
fontStyle: 'bold',
|
|
13585
|
-
},
|
|
13586
|
-
{
|
|
13587
|
-
token: 'parameter',
|
|
13588
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
|
|
13589
|
-
fontStyle: `italic`,
|
|
13590
|
-
},
|
|
13591
|
-
{
|
|
13592
|
-
token: 'agent-reference',
|
|
13593
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13594
|
-
fontStyle: 'underline',
|
|
13595
|
-
},
|
|
13596
|
-
{
|
|
13597
|
-
token: 'code-block',
|
|
13598
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
|
|
13599
|
-
},
|
|
13600
|
-
],
|
|
13601
|
-
colors: {
|
|
13602
|
-
'editor.scrollbarSlider.background': '#E0E0E0',
|
|
13603
|
-
'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
|
|
13604
|
-
'editor.scrollbarSlider.activeBackground': '#C0C0C0',
|
|
13605
|
-
},
|
|
13606
|
-
});
|
|
13607
|
-
monaco.editor.setTheme('book-theme');
|
|
13608
|
-
return () => {
|
|
13609
|
-
tokenProvider.dispose();
|
|
13610
|
-
completionProvider.dispose();
|
|
13611
|
-
linkProvider.dispose();
|
|
13612
|
-
};
|
|
13613
|
-
}, [monaco]);
|
|
13614
|
-
react.useEffect(() => {
|
|
13615
|
-
const styleId = `notebook-margin-line-style-${instanceIdRef.current}`; // <-- unique per instance
|
|
13616
|
-
let style = document.getElementById(styleId);
|
|
13617
|
-
if (!style) {
|
|
13618
|
-
style = document.createElement('style');
|
|
13619
|
-
style.id = styleId;
|
|
13620
|
-
document.head.appendChild(style);
|
|
13621
|
-
}
|
|
13622
|
-
style.innerHTML = `
|
|
13623
|
-
|
|
13624
|
-
@import url('https://fonts.googleapis.com/css2?family=Bitcount+Grid+Single:wght@100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
|
|
13625
|
-
/* <- [🚚] */
|
|
13626
|
-
|
|
13627
|
-
.${instanceClass} .monaco-editor .view-lines {
|
|
13628
|
-
background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
|
|
13629
|
-
background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
|
|
13630
|
-
background-position-x: -${scaledContentPaddingLeft}px;
|
|
13631
|
-
background-position-y: ${scaledLineHeight * -0.1}px;
|
|
13632
|
-
}
|
|
13633
|
-
.${instanceClass} .monaco-editor .overflow-guard::before {
|
|
13634
|
-
content: '';
|
|
13635
|
-
position: absolute;
|
|
13636
|
-
left: ${scaledVerticalLineLeft}px;
|
|
13637
|
-
top: 0;
|
|
13638
|
-
bottom: 0;
|
|
13639
|
-
width: 1px;
|
|
13640
|
-
background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
|
|
13641
|
-
z-index: 10;
|
|
13642
|
-
}
|
|
13643
|
-
|
|
13644
|
-
.${instanceClass} .monaco-editor .separator-line {
|
|
13645
|
-
background: linear-gradient(
|
|
13646
|
-
to bottom,
|
|
13647
|
-
transparent ${scaledLineHeight * 0.9 - 2}px,
|
|
13648
|
-
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
|
|
13649
|
-
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
|
|
13650
|
-
transparent ${scaledLineHeight * 0.9 + 1}px
|
|
13651
|
-
);
|
|
13652
|
-
}
|
|
13653
|
-
|
|
13654
|
-
.${instanceClass} .monaco-editor .transparent-text {
|
|
13655
|
-
color: transparent !important;
|
|
13656
|
-
}
|
|
13657
|
-
|
|
13658
|
-
.${instanceClass} .monaco-editor .code-block-box {
|
|
13659
|
-
background-color: #f5f5f566;
|
|
13660
|
-
border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13661
|
-
border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13662
|
-
padding-left: ${Math.round(8 * zoomLevel)}px;
|
|
13663
|
-
padding-right: ${Math.round(8 * zoomLevel)}px;
|
|
13664
|
-
}
|
|
13665
|
-
|
|
13666
|
-
.${instanceClass} .monaco-editor .code-block-top {
|
|
13667
|
-
border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13668
|
-
border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13669
|
-
border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13670
|
-
overflow: hidden;
|
|
13671
|
-
}
|
|
13672
|
-
|
|
13673
|
-
.${instanceClass} .monaco-editor .code-block-bottom {
|
|
13674
|
-
border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13675
|
-
border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13676
|
-
border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13677
|
-
overflow: hidden;
|
|
13678
|
-
}
|
|
13679
|
-
`;
|
|
13680
|
-
return () => {
|
|
13681
|
-
// Note: Style is not removed on purpose to avoid flickering during development with fast refresh
|
|
13682
|
-
};
|
|
13683
|
-
}, [scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft]);
|
|
13684
|
-
const decorationIdsRef = react.useRef([]);
|
|
13685
|
-
const codeBlockDecorationIdsRef = react.useRef([]);
|
|
13686
|
-
react.useEffect(() => {
|
|
13687
|
-
if (!editor || !monaco) {
|
|
14155
|
+
if (files.length === 0) {
|
|
13688
14156
|
return;
|
|
13689
14157
|
}
|
|
13690
14158
|
const model = editor.getModel();
|
|
13691
14159
|
if (!model) {
|
|
13692
14160
|
return;
|
|
13693
14161
|
}
|
|
13694
|
-
const
|
|
13695
|
-
|
|
13696
|
-
|
|
13697
|
-
|
|
13698
|
-
endColumn: diagnostic.endColumn,
|
|
13699
|
-
message: diagnostic.message,
|
|
13700
|
-
source: diagnostic.source,
|
|
13701
|
-
severity: toMonacoMarkerSeverity(diagnostic.severity),
|
|
14162
|
+
const placeholders = files.map((file) => ({
|
|
14163
|
+
id: createUploadId(),
|
|
14164
|
+
file,
|
|
14165
|
+
placeholder: BookEditorMonacoFormatting.getUploadPlaceholderText(file.name),
|
|
13702
14166
|
}));
|
|
13703
|
-
|
|
13704
|
-
|
|
13705
|
-
|
|
13706
|
-
|
|
13707
|
-
|
|
13708
|
-
|
|
13709
|
-
|
|
13710
|
-
|
|
14167
|
+
const currentValue = ((_a = model.getValue()) !== null && _a !== void 0 ? _a : '');
|
|
14168
|
+
const bookEditable = new BookEditable(currentValue);
|
|
14169
|
+
const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
|
|
14170
|
+
const insertingBeforeClosed = closedLineIndex !== null;
|
|
14171
|
+
const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
|
|
14172
|
+
const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
|
|
14173
|
+
const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
|
|
14174
|
+
const prefix = shouldAddLeadingLineBreak ? '\n' : '';
|
|
14175
|
+
const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
|
|
14176
|
+
const textToInsert = `${prefix}${placeholderBlock}`;
|
|
14177
|
+
const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
|
|
14178
|
+
editor.executeEdits('upload-placeholders', [
|
|
14179
|
+
{
|
|
14180
|
+
range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
|
|
14181
|
+
text: textToInsert,
|
|
14182
|
+
forceMoveMarkers: true,
|
|
14183
|
+
},
|
|
14184
|
+
]);
|
|
14185
|
+
const decorations = [];
|
|
14186
|
+
let runningOffset = prefix.length;
|
|
14187
|
+
for (const entry of placeholders) {
|
|
14188
|
+
const startOffset = insertStartOffset + runningOffset;
|
|
14189
|
+
const endOffset = startOffset + entry.placeholder.length;
|
|
14190
|
+
const startPos = model.getPositionAt(startOffset);
|
|
14191
|
+
const endPos = model.getPositionAt(endOffset);
|
|
14192
|
+
decorations.push({
|
|
14193
|
+
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
14194
|
+
options: {
|
|
14195
|
+
stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
|
14196
|
+
},
|
|
14197
|
+
});
|
|
14198
|
+
runningOffset += entry.placeholder.length + 1;
|
|
13711
14199
|
}
|
|
13712
|
-
const
|
|
13713
|
-
|
|
13714
|
-
|
|
13715
|
-
|
|
13716
|
-
|
|
13717
|
-
|
|
13718
|
-
const matches = text.matchAll(/^---[-]*$/gm);
|
|
13719
|
-
const newDecorations = [];
|
|
13720
|
-
for (const match of matches) {
|
|
13721
|
-
if (match.index === undefined) {
|
|
13722
|
-
continue;
|
|
13723
|
-
}
|
|
13724
|
-
const startPos = model.getPositionAt(match.index);
|
|
13725
|
-
const endPos = model.getPositionAt(match.index + match[0].length);
|
|
13726
|
-
newDecorations.push({
|
|
13727
|
-
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13728
|
-
options: {
|
|
13729
|
-
isWholeLine: true,
|
|
13730
|
-
className: 'separator-line',
|
|
13731
|
-
inlineClassName: 'transparent-text',
|
|
13732
|
-
},
|
|
13733
|
-
});
|
|
14200
|
+
const decorationIds = editor.deltaDecorations([], decorations);
|
|
14201
|
+
placeholders.forEach((entry, index) => {
|
|
14202
|
+
uploadFilesRef.current.set(entry.id, entry.file);
|
|
14203
|
+
const decorationId = decorationIds[index];
|
|
14204
|
+
if (decorationId) {
|
|
14205
|
+
uploadDecorationIdsRef.current.set(entry.id, decorationId);
|
|
13734
14206
|
}
|
|
13735
|
-
|
|
13736
|
-
|
|
13737
|
-
|
|
13738
|
-
|
|
13739
|
-
|
|
13740
|
-
|
|
13741
|
-
|
|
13742
|
-
|
|
13743
|
-
|
|
13744
|
-
|
|
13745
|
-
|
|
13746
|
-
|
|
13747
|
-
|
|
13748
|
-
|
|
13749
|
-
|
|
13750
|
-
|
|
13751
|
-
|
|
13752
|
-
|
|
13753
|
-
|
|
13754
|
-
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13759
|
-
|
|
13760
|
-
|
|
13761
|
-
|
|
13762
|
-
|
|
13763
|
-
|
|
13764
|
-
|
|
13765
|
-
|
|
13766
|
-
|
|
14207
|
+
});
|
|
14208
|
+
const newUploadItems = placeholders.map((entry) => ({
|
|
14209
|
+
id: entry.id,
|
|
14210
|
+
fileName: entry.file.name,
|
|
14211
|
+
fileSize: entry.file.size,
|
|
14212
|
+
status: 'queued',
|
|
14213
|
+
progress: 0,
|
|
14214
|
+
loadedBytes: 0,
|
|
14215
|
+
totalBytes: entry.file.size,
|
|
14216
|
+
startedAt: null,
|
|
14217
|
+
completedAt: null,
|
|
14218
|
+
}));
|
|
14219
|
+
setUploadItems((items) => [...items, ...newUploadItems]);
|
|
14220
|
+
queueUploadProcessing();
|
|
14221
|
+
}, [onFileUpload, editor, monaco, queueUploadProcessing]);
|
|
14222
|
+
const uploadStats = react.useMemo(() => {
|
|
14223
|
+
const totalFiles = uploadItems.length;
|
|
14224
|
+
const queuedFiles = uploadItems.filter((item) => item.status === 'queued').length;
|
|
14225
|
+
const uploadingFiles = uploadItems.filter((item) => item.status === 'uploading').length;
|
|
14226
|
+
const pausedFiles = uploadItems.filter((item) => item.status === 'paused').length;
|
|
14227
|
+
const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
|
|
14228
|
+
const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
|
|
14229
|
+
const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
|
|
14230
|
+
const uploadedBytes = uploadItems.reduce((sum, item) => {
|
|
14231
|
+
const total = item.totalBytes || 0;
|
|
14232
|
+
const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
|
|
14233
|
+
return sum + loaded;
|
|
14234
|
+
}, 0);
|
|
14235
|
+
const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
|
|
14236
|
+
const startedAt = uploadItems.reduce((min, item) => {
|
|
14237
|
+
if (!item.startedAt) {
|
|
14238
|
+
return min;
|
|
13767
14239
|
}
|
|
13768
|
-
|
|
14240
|
+
return Math.min(min, item.startedAt);
|
|
14241
|
+
}, Number.POSITIVE_INFINITY);
|
|
14242
|
+
const elapsedMs = Number.isFinite(startedAt) ? Math.max(0, Date.now() - startedAt) : 0;
|
|
14243
|
+
const speedBytesPerSecond = elapsedMs > 0 ? uploadedBytes / (elapsedMs / 1000) : 0;
|
|
14244
|
+
return {
|
|
14245
|
+
totalFiles,
|
|
14246
|
+
queuedFiles,
|
|
14247
|
+
uploadingFiles,
|
|
14248
|
+
pausedFiles,
|
|
14249
|
+
failedFiles,
|
|
14250
|
+
completedFiles,
|
|
14251
|
+
totalBytes,
|
|
14252
|
+
uploadedBytes,
|
|
14253
|
+
progress,
|
|
14254
|
+
elapsedMs,
|
|
14255
|
+
speedBytesPerSecond,
|
|
13769
14256
|
};
|
|
13770
|
-
|
|
13771
|
-
|
|
13772
|
-
|
|
14257
|
+
}, [uploadItems]);
|
|
14258
|
+
const activeUploadItems = react.useMemo(() => uploadItems.filter((item) => item.status !== 'completed'), [uploadItems]);
|
|
14259
|
+
return {
|
|
14260
|
+
activeUploadItems,
|
|
14261
|
+
uploadItems,
|
|
14262
|
+
uploadStats,
|
|
14263
|
+
handleFiles,
|
|
14264
|
+
pauseUpload,
|
|
14265
|
+
resumeUpload,
|
|
14266
|
+
};
|
|
14267
|
+
}
|
|
14268
|
+
|
|
14269
|
+
const UPLOAD_STATUS_LABELS = {
|
|
14270
|
+
queued: 'Queued',
|
|
14271
|
+
uploading: 'Uploading',
|
|
14272
|
+
paused: 'Paused',
|
|
14273
|
+
completed: 'Completed',
|
|
14274
|
+
failed: 'Failed',
|
|
14275
|
+
};
|
|
14276
|
+
/**
|
|
14277
|
+
* Shows upload progress details for active uploads inside `BookEditorMonaco`.
|
|
14278
|
+
*
|
|
14279
|
+
* @private function of BookEditorMonaco
|
|
14280
|
+
*/
|
|
14281
|
+
function BookEditorMonacoUploadPanel({ activeUploadItems, uploadStats, pauseUpload, resumeUpload, }) {
|
|
14282
|
+
if (activeUploadItems.length === 0) {
|
|
14283
|
+
return null;
|
|
14284
|
+
}
|
|
14285
|
+
return (jsxRuntime.jsxs("div", { className: styles$d.uploadPanel, role: "status", "aria-live": "polite", children: [jsxRuntime.jsxs("div", { className: styles$d.uploadPanelHeader, children: [jsxRuntime.jsx("div", { className: styles$d.uploadPanelTitle, children: "Uploads" }), jsxRuntime.jsxs("div", { className: styles$d.uploadPanelHeaderMeta, children: [uploadStats.uploadingFiles + uploadStats.queuedFiles, " active / ", uploadStats.totalFiles, " total"] })] }), jsxRuntime.jsxs("div", { className: styles$d.uploadPanelSummary, children: [jsxRuntime.jsxs("div", { children: ["Files: ", uploadStats.totalFiles, " total, ", uploadStats.completedFiles, " done"] }), jsxRuntime.jsxs("div", { children: ["Data: ", BookEditorMonacoFormatting.formatBytes(uploadStats.uploadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(uploadStats.totalBytes)] }), jsxRuntime.jsxs("div", { children: ["Speed:", ' ', uploadStats.speedBytesPerSecond > 0
|
|
14286
|
+
? `${BookEditorMonacoFormatting.formatBytes(uploadStats.speedBytesPerSecond)}/s`
|
|
14287
|
+
: '--'] }), jsxRuntime.jsxs("div", { children: ["Elapsed: ", BookEditorMonacoFormatting.formatDuration(uploadStats.elapsedMs)] }), jsxRuntime.jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
|
|
14288
|
+
const percent = Math.round(item.progress * 100);
|
|
14289
|
+
const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
|
|
14290
|
+
const canPause = item.status === 'uploading' || item.status === 'queued';
|
|
14291
|
+
const canResume = item.status === 'paused' || item.status === 'failed';
|
|
14292
|
+
return (jsxRuntime.jsxs("div", { className: styles$d.uploadRow, children: [jsxRuntime.jsxs("div", { className: styles$d.uploadRowHeader, children: [jsxRuntime.jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsxRuntime.jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxRuntime.jsxs("span", { children: [BookEditorMonacoFormatting.formatBytes(item.loadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(item.totalBytes)] }), jsxRuntime.jsxs("span", { children: [percent, "%"] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsxRuntime.jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
|
|
14293
|
+
}) })] }));
|
|
14294
|
+
}
|
|
14295
|
+
|
|
14296
|
+
let notebookStyleCounter = 0;
|
|
14297
|
+
/**
|
|
14298
|
+
* @private Internal component used by `BookEditor`
|
|
14299
|
+
*/
|
|
14300
|
+
function BookEditorMonaco(props) {
|
|
14301
|
+
const { value, onChange, diagnostics, isReadonly, translations, onFileUpload, isUploadButtonShown, isCameraButtonShown, isDownloadButtonShown, isAboutButtonShown = true, isFullscreenButtonShown = true, onFullscreenClick, isFullscreen, zoom = 1, } = props;
|
|
14302
|
+
const zoomLevel = zoom;
|
|
14303
|
+
const scaledLineHeight = Math.round(BookEditorMonacoConstants.LINE_HEIGHT * zoomLevel);
|
|
14304
|
+
const scaledContentPaddingLeft = Math.max(8, Math.round(BookEditorMonacoConstants.CONTENT_PADDING_LEFT * zoomLevel));
|
|
14305
|
+
const scaledVerticalLineLeft = Math.max(0, Math.round(BookEditorMonacoConstants.VERTICAL_LINE_LEFT * zoomLevel));
|
|
14306
|
+
const baseFontSize = 20;
|
|
14307
|
+
const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
|
|
14308
|
+
const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
|
|
14309
|
+
const [isDragOver, setIsDragOver] = react.useState(false);
|
|
14310
|
+
const [editor, setEditor] = react.useState(null);
|
|
14311
|
+
const [isFocused, setIsFocused] = react.useState(false);
|
|
14312
|
+
const [isTouchDevice, setIsTouchDevice] = react.useState(false);
|
|
14313
|
+
const [isSavedShown, setIsSavedShown] = react.useState(false);
|
|
14314
|
+
const monaco = Editor.useMonaco();
|
|
14315
|
+
const instanceIdRef = react.useRef(++notebookStyleCounter);
|
|
14316
|
+
const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
|
|
14317
|
+
const touchStartRef = react.useRef(null);
|
|
14318
|
+
const fileUploadInputRef = react.useRef(null);
|
|
14319
|
+
const cameraInputRef = react.useRef(null);
|
|
14320
|
+
const { activeUploadItems, uploadStats, pauseUpload, resumeUpload, handleFiles, } = useBookEditorMonacoUploads({
|
|
14321
|
+
editor,
|
|
14322
|
+
monaco,
|
|
14323
|
+
onFileUpload,
|
|
14324
|
+
});
|
|
14325
|
+
useBookEditorMonacoLanguage({ monaco });
|
|
14326
|
+
useBookEditorMonacoDiagnostics({ monaco, editor, diagnostics });
|
|
14327
|
+
useBookEditorMonacoDecorations({ editor, monaco });
|
|
14328
|
+
useBookEditorMonacoStyles({
|
|
14329
|
+
instanceClass,
|
|
14330
|
+
scaledContentPaddingLeft,
|
|
14331
|
+
scaledLineHeight,
|
|
14332
|
+
scaledVerticalLineLeft,
|
|
14333
|
+
zoomLevel,
|
|
14334
|
+
});
|
|
14335
|
+
react.useEffect(() => {
|
|
14336
|
+
setIsTouchDevice(typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches);
|
|
14337
|
+
}, []);
|
|
14338
|
+
react.useEffect(() => {
|
|
14339
|
+
if (!editor) {
|
|
14340
|
+
return;
|
|
14341
|
+
}
|
|
14342
|
+
const focusListener = editor.onDidFocusEditorWidget(() => {
|
|
14343
|
+
setIsFocused(true);
|
|
14344
|
+
});
|
|
14345
|
+
const blurListener = editor.onDidBlurEditorWidget(() => {
|
|
14346
|
+
setIsFocused(false);
|
|
14347
|
+
});
|
|
14348
|
+
const saveAction = editor.addAction({
|
|
14349
|
+
id: 'save-book',
|
|
14350
|
+
label: 'Save',
|
|
14351
|
+
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
|
|
14352
|
+
run: () => {
|
|
14353
|
+
setIsSavedShown(false);
|
|
14354
|
+
setTimeout(() => setIsSavedShown(true), 0);
|
|
14355
|
+
// Note: We don't prevent default, so browser's save dialog still opens
|
|
14356
|
+
},
|
|
13773
14357
|
});
|
|
13774
14358
|
return () => {
|
|
13775
|
-
|
|
14359
|
+
focusListener.dispose();
|
|
14360
|
+
blurListener.dispose();
|
|
14361
|
+
saveAction.dispose();
|
|
13776
14362
|
};
|
|
13777
14363
|
}, [editor, monaco]);
|
|
13778
|
-
|
|
13779
|
-
|
|
13780
|
-
*/
|
|
13781
|
-
const handleFiles = react.useCallback(async (files) => {
|
|
13782
|
-
var _a;
|
|
13783
|
-
if (!onFileUpload || !editor || !monaco) {
|
|
13784
|
-
return;
|
|
13785
|
-
}
|
|
13786
|
-
if (files.length === 0) {
|
|
13787
|
-
return;
|
|
13788
|
-
}
|
|
13789
|
-
const model = editor.getModel();
|
|
13790
|
-
if (!model) {
|
|
14364
|
+
react.useEffect(() => {
|
|
14365
|
+
if (!isSavedShown) {
|
|
13791
14366
|
return;
|
|
13792
14367
|
}
|
|
13793
|
-
const
|
|
13794
|
-
|
|
13795
|
-
|
|
13796
|
-
|
|
13797
|
-
|
|
13798
|
-
|
|
13799
|
-
|
|
13800
|
-
const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
|
|
13801
|
-
const insertingBeforeClosed = closedLineIndex !== null;
|
|
13802
|
-
const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
|
|
13803
|
-
const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
|
|
13804
|
-
const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
|
|
13805
|
-
const prefix = shouldAddLeadingLineBreak ? '\n' : '';
|
|
13806
|
-
const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
|
|
13807
|
-
const textToInsert = `${prefix}${placeholderBlock}`;
|
|
13808
|
-
const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
|
|
13809
|
-
editor.executeEdits('upload-placeholders', [
|
|
13810
|
-
{
|
|
13811
|
-
range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
|
|
13812
|
-
text: textToInsert,
|
|
13813
|
-
forceMoveMarkers: true,
|
|
13814
|
-
},
|
|
13815
|
-
]);
|
|
13816
|
-
const decorations = [];
|
|
13817
|
-
let runningOffset = prefix.length;
|
|
13818
|
-
for (const entry of placeholders) {
|
|
13819
|
-
const startOffset = insertStartOffset + runningOffset;
|
|
13820
|
-
const endOffset = startOffset + entry.placeholder.length;
|
|
13821
|
-
const startPos = model.getPositionAt(startOffset);
|
|
13822
|
-
const endPos = model.getPositionAt(endOffset);
|
|
13823
|
-
decorations.push({
|
|
13824
|
-
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13825
|
-
options: {
|
|
13826
|
-
stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
|
13827
|
-
},
|
|
13828
|
-
});
|
|
13829
|
-
runningOffset += entry.placeholder.length + 1;
|
|
13830
|
-
}
|
|
13831
|
-
const decorationIds = editor.deltaDecorations([], decorations);
|
|
13832
|
-
placeholders.forEach((entry, index) => {
|
|
13833
|
-
uploadFilesRef.current.set(entry.id, entry.file);
|
|
13834
|
-
const decorationId = decorationIds[index];
|
|
13835
|
-
if (decorationId) {
|
|
13836
|
-
uploadDecorationIdsRef.current.set(entry.id, decorationId);
|
|
13837
|
-
}
|
|
13838
|
-
});
|
|
13839
|
-
const newUploadItems = placeholders.map((entry) => ({
|
|
13840
|
-
id: entry.id,
|
|
13841
|
-
fileName: entry.file.name,
|
|
13842
|
-
fileSize: entry.file.size,
|
|
13843
|
-
status: 'queued',
|
|
13844
|
-
progress: 0,
|
|
13845
|
-
loadedBytes: 0,
|
|
13846
|
-
totalBytes: entry.file.size,
|
|
13847
|
-
startedAt: null,
|
|
13848
|
-
completedAt: null,
|
|
13849
|
-
}));
|
|
13850
|
-
setUploadItems((items) => [...items, ...newUploadItems]);
|
|
13851
|
-
queueUploadProcessing();
|
|
13852
|
-
}, [onFileUpload, editor, monaco, queueUploadProcessing, setUploadItems]);
|
|
13853
|
-
/**
|
|
13854
|
-
* Handles file drop uploads.
|
|
13855
|
-
*/
|
|
14368
|
+
const timer = setTimeout(() => {
|
|
14369
|
+
setIsSavedShown(false);
|
|
14370
|
+
}, 2000);
|
|
14371
|
+
return () => {
|
|
14372
|
+
clearTimeout(timer);
|
|
14373
|
+
};
|
|
14374
|
+
}, [isSavedShown]);
|
|
13856
14375
|
const handleDrop = react.useCallback(async (event) => {
|
|
13857
14376
|
event.preventDefault();
|
|
13858
14377
|
setIsDragOver(false);
|
|
13859
14378
|
const files = Array.from(event.dataTransfer.files);
|
|
13860
14379
|
await handleFiles(files);
|
|
13861
14380
|
}, [handleFiles]);
|
|
13862
|
-
/**
|
|
13863
|
-
* Handles paste uploads.
|
|
13864
|
-
*/
|
|
13865
14381
|
const handlePaste = react.useCallback(async (event) => {
|
|
13866
14382
|
const files = Array.from(event.clipboardData.files);
|
|
13867
14383
|
if (files.length === 0) {
|
|
@@ -13871,95 +14387,58 @@
|
|
|
13871
14387
|
event.stopPropagation();
|
|
13872
14388
|
await handleFiles(files);
|
|
13873
14389
|
}, [handleFiles]);
|
|
13874
|
-
// <- TODO: [✨🏺] !!!! Maybe not working
|
|
13875
|
-
/**
|
|
13876
|
-
* Opens the document upload input.
|
|
13877
|
-
*/
|
|
13878
14390
|
const handleUploadDocument = react.useCallback(() => {
|
|
13879
|
-
|
|
13880
|
-
|
|
13881
|
-
}
|
|
14391
|
+
var _a;
|
|
14392
|
+
(_a = fileUploadInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
13882
14393
|
}, []);
|
|
13883
|
-
/**
|
|
13884
|
-
* Opens the camera capture input.
|
|
13885
|
-
*/
|
|
13886
14394
|
const handleTakePhoto = react.useCallback(() => {
|
|
13887
|
-
|
|
13888
|
-
|
|
13889
|
-
}
|
|
14395
|
+
var _a;
|
|
14396
|
+
(_a = cameraInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
13890
14397
|
}, []);
|
|
13891
|
-
/**
|
|
13892
|
-
* Handles file selection from hidden inputs.
|
|
13893
|
-
*/
|
|
13894
14398
|
const handleFileInputChange = react.useCallback((event) => {
|
|
13895
14399
|
const files = Array.from(event.target.files || []);
|
|
13896
|
-
handleFiles(files);
|
|
13897
|
-
// Reset the input value so the same file can be selected again
|
|
14400
|
+
void handleFiles(files);
|
|
13898
14401
|
event.target.value = '';
|
|
13899
14402
|
}, [handleFiles]);
|
|
13900
|
-
/**
|
|
13901
|
-
* Shows drag overlay while dragging over the editor.
|
|
13902
|
-
*/
|
|
13903
14403
|
const handleDragOver = react.useCallback((event) => {
|
|
13904
14404
|
event.preventDefault();
|
|
13905
14405
|
setIsDragOver(true);
|
|
13906
14406
|
}, []);
|
|
13907
|
-
/**
|
|
13908
|
-
* Shows drag overlay when entering the editor.
|
|
13909
|
-
*/
|
|
13910
14407
|
const handleDragEnter = react.useCallback((event) => {
|
|
13911
14408
|
event.preventDefault();
|
|
13912
14409
|
setIsDragOver(true);
|
|
13913
14410
|
}, []);
|
|
13914
|
-
/**
|
|
13915
|
-
* Hides drag overlay when leaving the editor.
|
|
13916
|
-
*/
|
|
13917
14411
|
const handleDragLeave = react.useCallback((event) => {
|
|
13918
14412
|
event.preventDefault();
|
|
13919
14413
|
setIsDragOver(false);
|
|
13920
14414
|
}, []);
|
|
13921
|
-
const
|
|
13922
|
-
|
|
13923
|
-
|
|
13924
|
-
|
|
13925
|
-
|
|
13926
|
-
const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
|
|
13927
|
-
const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
|
|
13928
|
-
const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
|
|
13929
|
-
const uploadedBytes = uploadItems.reduce((sum, item) => {
|
|
13930
|
-
const total = item.totalBytes || 0;
|
|
13931
|
-
const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
|
|
13932
|
-
return sum + loaded;
|
|
13933
|
-
}, 0);
|
|
13934
|
-
const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
|
|
13935
|
-
const startedAt = uploadItems.reduce((min, item) => {
|
|
13936
|
-
if (!item.startedAt) {
|
|
13937
|
-
return min;
|
|
14415
|
+
const focusOverlayTouchHandlers = {
|
|
14416
|
+
onTouchStart: (event) => {
|
|
14417
|
+
const touch = event.touches[0];
|
|
14418
|
+
if (touch) {
|
|
14419
|
+
touchStartRef.current = { x: touch.clientX, y: touch.clientY };
|
|
13938
14420
|
}
|
|
13939
|
-
|
|
13940
|
-
|
|
13941
|
-
|
|
13942
|
-
|
|
13943
|
-
|
|
13944
|
-
|
|
13945
|
-
|
|
13946
|
-
|
|
13947
|
-
|
|
13948
|
-
|
|
13949
|
-
|
|
13950
|
-
|
|
13951
|
-
|
|
13952
|
-
|
|
13953
|
-
|
|
13954
|
-
|
|
13955
|
-
|
|
13956
|
-
|
|
13957
|
-
|
|
13958
|
-
|
|
13959
|
-
|
|
13960
|
-
isDownloadButtonShown ||
|
|
13961
|
-
isAboutButtonShown ||
|
|
13962
|
-
isFullscreenButtonShown) && (jsxRuntime.jsx(BookEditorActionbar, { value,
|
|
14421
|
+
},
|
|
14422
|
+
onTouchEnd: (event) => {
|
|
14423
|
+
event.preventDefault();
|
|
14424
|
+
const touch = event.changedTouches[0];
|
|
14425
|
+
if (touch && touchStartRef.current) {
|
|
14426
|
+
const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
|
|
14427
|
+
const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
|
|
14428
|
+
const threshold = 10;
|
|
14429
|
+
if (deltaX < threshold && deltaY < threshold) {
|
|
14430
|
+
editor === null || editor === void 0 ? void 0 : editor.focus();
|
|
14431
|
+
}
|
|
14432
|
+
}
|
|
14433
|
+
touchStartRef.current = null;
|
|
14434
|
+
},
|
|
14435
|
+
};
|
|
14436
|
+
const isActionBarVisible = isUploadButtonShown ||
|
|
14437
|
+
isCameraButtonShown ||
|
|
14438
|
+
isDownloadButtonShown ||
|
|
14439
|
+
isAboutButtonShown ||
|
|
14440
|
+
isFullscreenButtonShown;
|
|
14441
|
+
return (jsxRuntime.jsxs("div", { className: classNames(styles$d.bookEditorContainer, instanceClass), onDrop: handleDrop, onPaste: handlePaste, onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, children: [isActionBarVisible && (jsxRuntime.jsx(BookEditorActionbar, { value,
|
|
13963
14442
|
isUploadButtonShown,
|
|
13964
14443
|
isCameraButtonShown: isCameraButtonShown !== null && isCameraButtonShown !== void 0 ? isCameraButtonShown : isTouchDevice,
|
|
13965
14444
|
isDownloadButtonShown,
|
|
@@ -13968,20 +14447,11 @@
|
|
|
13968
14447
|
onFullscreenClick,
|
|
13969
14448
|
onUploadDocument: handleUploadDocument,
|
|
13970
14449
|
onTakePhoto: handleTakePhoto,
|
|
13971
|
-
isFullscreen })), jsxRuntime.jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsxRuntime.jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsxRuntime.jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxRuntime.jsxs("div", { className: styles$d.savedNotification, children: [jsxRuntime.jsx(SaveIcon, {}), "Saved"] })),
|
|
13972
|
-
? `${formatBytes(uploadStats.speedBytesPerSecond)}/s`
|
|
13973
|
-
: '--'] }), jsxRuntime.jsxs("div", { children: ["Elapsed: ", formatDuration(uploadStats.elapsedMs)] }), jsxRuntime.jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsxRuntime.jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
|
|
13974
|
-
const percent = Math.round(item.progress * 100);
|
|
13975
|
-
const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
|
|
13976
|
-
const canPause = item.status === 'uploading' || item.status === 'queued';
|
|
13977
|
-
const canResume = item.status === 'paused' || item.status === 'failed';
|
|
13978
|
-
return (jsxRuntime.jsxs("div", { className: styles$d.uploadRow, children: [jsxRuntime.jsxs("div", { className: styles$d.uploadRowHeader, children: [jsxRuntime.jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsxRuntime.jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxRuntime.jsxs("span", { children: [formatBytes(item.loadedBytes), " / ", formatBytes(item.totalBytes)] }), jsxRuntime.jsxs("span", { children: [percent, "%"] })] }), jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressBar, children: jsxRuntime.jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxRuntime.jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsxRuntime.jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsxRuntime.jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
|
|
13979
|
-
}) })] })), jsxRuntime.jsxs("div", { style: {
|
|
14450
|
+
isFullscreen })), jsxRuntime.jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsxRuntime.jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsxRuntime.jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxRuntime.jsxs("div", { className: styles$d.savedNotification, children: [jsxRuntime.jsx(SaveIcon, {}), "Saved"] })), jsxRuntime.jsx(BookEditorMonacoUploadPanel, { activeUploadItems: activeUploadItems, uploadStats: uploadStats, pauseUpload: pauseUpload, resumeUpload: resumeUpload }), jsxRuntime.jsxs("div", { style: {
|
|
13980
14451
|
position: 'relative',
|
|
13981
14452
|
flex: 1,
|
|
13982
14453
|
height: '100%',
|
|
13983
14454
|
width: '100%',
|
|
13984
|
-
// outline: '1px dotted #ff3333'
|
|
13985
14455
|
}, children: [isTouchDevice && !isFocused && (jsxRuntime.jsx("div", { style: {
|
|
13986
14456
|
position: 'absolute',
|
|
13987
14457
|
top: 0,
|
|
@@ -13992,29 +14462,7 @@
|
|
|
13992
14462
|
height: '100%',
|
|
13993
14463
|
width: '100%',
|
|
13994
14464
|
backgroundColor: 'transparent',
|
|
13995
|
-
|
|
13996
|
-
}, onTouchStart: (event) => {
|
|
13997
|
-
// [1] Record the starting position of the touch
|
|
13998
|
-
const touch = event.touches[0];
|
|
13999
|
-
if (touch) {
|
|
14000
|
-
touchStartRef.current = { x: touch.clientX, y: touch.clientY };
|
|
14001
|
-
}
|
|
14002
|
-
}, onTouchEnd: (event) => {
|
|
14003
|
-
event.preventDefault();
|
|
14004
|
-
// [1] Check if this was a tap (not a drag)
|
|
14005
|
-
const touch = event.changedTouches[0];
|
|
14006
|
-
if (touch && touchStartRef.current) {
|
|
14007
|
-
const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
|
|
14008
|
-
const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
|
|
14009
|
-
const threshold = 10; // pixels
|
|
14010
|
-
// [1] Only focus if the touch hasn't moved much (it's a tap)
|
|
14011
|
-
if (deltaX < threshold && deltaY < threshold) {
|
|
14012
|
-
// alert('Tap inside the book editor to focus and start editing.');
|
|
14013
|
-
editor === null || editor === void 0 ? void 0 : editor.focus();
|
|
14014
|
-
}
|
|
14015
|
-
}
|
|
14016
|
-
touchStartRef.current = null;
|
|
14017
|
-
} })), jsxRuntime.jsx(Editor__default["default"], { language: BOOK_LANGUAGE_ID, value: value, onMount: (editor) => setEditor(editor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
|
|
14465
|
+
}, ...focusOverlayTouchHandlers })), jsxRuntime.jsx(Editor__default["default"], { language: BookEditorMonacoConstants.BOOK_LANGUAGE_ID, value: value, onMount: (mountedEditor) => setEditor(mountedEditor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
|
|
14018
14466
|
readOnly: isReadonly,
|
|
14019
14467
|
readOnlyMessage: {
|
|
14020
14468
|
value: (translations === null || translations === void 0 ? void 0 : translations.readonlyMessage) || 'You cannot edit this book',
|
|
@@ -14023,13 +14471,9 @@
|
|
|
14023
14471
|
minimap: { enabled: false },
|
|
14024
14472
|
lineNumbers: 'off',
|
|
14025
14473
|
fontSize: scaledFontSize,
|
|
14026
|
-
// TODO: [🚚] Allow to pass font family as prop + [😺] Make the font asset hosted on Promptbook CDN side
|
|
14027
|
-
// <- TODO: [😺]Pass font as asset
|
|
14028
14474
|
fontFamily: `"Playfair Display", serif`,
|
|
14029
|
-
// [🚚]> fontFamily: `"Bitcount Grid Single", system-ui`,
|
|
14030
14475
|
lineHeight: scaledLineHeight,
|
|
14031
14476
|
renderLineHighlight: 'none',
|
|
14032
|
-
// Note: To add little lines between each line of the book, like a notebook page
|
|
14033
14477
|
lineDecorationsWidth: scaledContentPaddingLeft,
|
|
14034
14478
|
glyphMargin: false,
|
|
14035
14479
|
folding: false,
|
|
@@ -15149,7 +15593,7 @@
|
|
|
15149
15593
|
*
|
|
15150
15594
|
* @private Internal helper of the HTML export renderer.
|
|
15151
15595
|
*/
|
|
15152
|
-
function escapeHtml(value) {
|
|
15596
|
+
function escapeHtml$1(value) {
|
|
15153
15597
|
return String(value)
|
|
15154
15598
|
.replace(/&/g, '&')
|
|
15155
15599
|
.replace(/</g, '<')
|
|
@@ -15169,7 +15613,7 @@
|
|
|
15169
15613
|
const paragraphs = content.split(/\n{2,}/).map((paragraph) => paragraph.trim());
|
|
15170
15614
|
const rendered = paragraphs
|
|
15171
15615
|
.filter(Boolean)
|
|
15172
|
-
.map((paragraph) => `<p>${escapeHtml(paragraph).replace(/\n/g, '<br />')}</p>`)
|
|
15616
|
+
.map((paragraph) => `<p>${escapeHtml$1(paragraph).replace(/\n/g, '<br />')}</p>`)
|
|
15173
15617
|
.join('');
|
|
15174
15618
|
if (rendered) {
|
|
15175
15619
|
return rendered;
|
|
@@ -15264,9 +15708,9 @@
|
|
|
15264
15708
|
var _a;
|
|
15265
15709
|
const hasUrl = Boolean(attachment.url);
|
|
15266
15710
|
const tag = hasUrl ? 'a' : 'span';
|
|
15267
|
-
const href = hasUrl ? ` href="${escapeHtml((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
|
|
15268
|
-
const name = escapeHtml(attachment.name || 'Attachment');
|
|
15269
|
-
const meta = escapeHtml(attachment.type || 'file');
|
|
15711
|
+
const href = hasUrl ? ` href="${escapeHtml$1((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
|
|
15712
|
+
const name = escapeHtml$1(attachment.name || 'Attachment');
|
|
15713
|
+
const meta = escapeHtml$1(attachment.type || 'file');
|
|
15270
15714
|
return spaceTrim__default["default"](`
|
|
15271
15715
|
<${tag} class="attachment-chip"${href}>
|
|
15272
15716
|
<span class="attachment-icon">📎</span>
|
|
@@ -15288,15 +15732,15 @@
|
|
|
15288
15732
|
return '';
|
|
15289
15733
|
}
|
|
15290
15734
|
const chips = citations.map((citation) => {
|
|
15291
|
-
const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml(citation.excerpt)}</p>` : '';
|
|
15735
|
+
const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml$1(citation.excerpt)}</p>` : '';
|
|
15292
15736
|
const urlLink = citation.url
|
|
15293
|
-
? `<a class="citation-link" href="${escapeHtml(citation.url)}" target="_blank" rel="noopener">Open source</a>`
|
|
15737
|
+
? `<a class="citation-link" href="${escapeHtml$1(citation.url)}" target="_blank" rel="noopener">Open source</a>`
|
|
15294
15738
|
: '';
|
|
15295
15739
|
return spaceTrim__default["default"](`
|
|
15296
15740
|
<article class="citation-chip">
|
|
15297
15741
|
<div class="citation-header">
|
|
15298
|
-
<span class="citation-badge">${escapeHtml(citation.id)}</span>
|
|
15299
|
-
<span class="citation-source">${escapeHtml(citation.source)}</span>
|
|
15742
|
+
<span class="citation-badge">${escapeHtml$1(citation.id)}</span>
|
|
15743
|
+
<span class="citation-source">${escapeHtml$1(citation.source)}</span>
|
|
15300
15744
|
</div>
|
|
15301
15745
|
${excerpt}
|
|
15302
15746
|
${urlLink}
|
|
@@ -15322,8 +15766,8 @@
|
|
|
15322
15766
|
const citations = buildCitationsMarkup(message);
|
|
15323
15767
|
const alignmentClass = upperSender === 'USER' ? 'message-user' : 'message-assistant';
|
|
15324
15768
|
const avatarMarkup = visuals.avatarSrc
|
|
15325
|
-
? `<img class="message-avatar-img" src="${escapeHtml(visuals.avatarSrc)}" alt="${escapeHtml(visuals.displayName)}" />`
|
|
15326
|
-
: `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml(visuals.avatarLabel)}</span>`;
|
|
15769
|
+
? `<img class="message-avatar-img" src="${escapeHtml$1(visuals.avatarSrc)}" alt="${escapeHtml$1(visuals.displayName)}" />`
|
|
15770
|
+
: `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml$1(visuals.avatarLabel)}</span>`;
|
|
15327
15771
|
return spaceTrim__default["default"](`
|
|
15328
15772
|
<article class="message-block ${alignmentClass}">
|
|
15329
15773
|
<div class="message-avatar">${avatarMarkup}</div>
|
|
@@ -15331,14 +15775,14 @@
|
|
|
15331
15775
|
<div class="message-card-inner">
|
|
15332
15776
|
<header class="message-card-header">
|
|
15333
15777
|
<div>
|
|
15334
|
-
<strong class="message-name">${escapeHtml(visuals.displayName)}</strong>
|
|
15335
|
-
<span class="message-role">${escapeHtml(upperSender)}</span>
|
|
15778
|
+
<strong class="message-name">${escapeHtml$1(visuals.displayName)}</strong>
|
|
15779
|
+
<span class="message-role">${escapeHtml$1(upperSender)}</span>
|
|
15336
15780
|
</div>
|
|
15337
|
-
${timestamp ? `<time class="message-time">${escapeHtml(timestamp)}</time>` : ''}
|
|
15781
|
+
${timestamp ? `<time class="message-time">${escapeHtml$1(timestamp)}</time>` : ''}
|
|
15338
15782
|
</header>
|
|
15339
15783
|
<div class="message-content">${formatMessageContent(message.content)}</div>
|
|
15340
15784
|
${durationLabel
|
|
15341
|
-
? `<div class="message-duration">Responded in ${escapeHtml(durationLabel)}</div>`
|
|
15785
|
+
? `<div class="message-duration">Responded in ${escapeHtml$1(durationLabel)}</div>`
|
|
15342
15786
|
: ''}
|
|
15343
15787
|
${attachments}
|
|
15344
15788
|
${citations}
|
|
@@ -15356,7 +15800,7 @@
|
|
|
15356
15800
|
formatName: 'html',
|
|
15357
15801
|
label: 'Html',
|
|
15358
15802
|
getContent: ({ title, messages, participants }) => {
|
|
15359
|
-
const safeTitle = escapeHtml(title || 'Chat');
|
|
15803
|
+
const safeTitle = escapeHtml$1(title || 'Chat');
|
|
15360
15804
|
const participantLookup = buildParticipantMap(participants);
|
|
15361
15805
|
const exportedAt = new Date();
|
|
15362
15806
|
const exportedLabel = formatTimestamp(exportedAt);
|
|
@@ -15777,13 +16221,13 @@
|
|
|
15777
16221
|
<div class="hero-content">
|
|
15778
16222
|
<p class="hero-kicker">Chat export</p>
|
|
15779
16223
|
<h1>Conversation with ${safeTitle}</h1>
|
|
15780
|
-
<p class="hero-subtitle">${escapeHtml(heroSubtitle)}</p>
|
|
16224
|
+
<p class="hero-subtitle">${escapeHtml$1(heroSubtitle)}</p>
|
|
15781
16225
|
<div class="stat-grid">
|
|
15782
16226
|
${statCards
|
|
15783
16227
|
.map((stat) => spaceTrim__default["default"](`
|
|
15784
16228
|
<div class="stat-card">
|
|
15785
|
-
<span class="stat-value">${escapeHtml(stat.value)}</span>
|
|
15786
|
-
<span class="stat-label">${escapeHtml(stat.label)}</span>
|
|
16229
|
+
<span class="stat-value">${escapeHtml$1(stat.value)}</span>
|
|
16230
|
+
<span class="stat-label">${escapeHtml$1(stat.label)}</span>
|
|
15787
16231
|
</div>
|
|
15788
16232
|
`))
|
|
15789
16233
|
.join('')}
|
|
@@ -15800,8 +16244,8 @@
|
|
|
15800
16244
|
<p class="chat-panel-subhead">Captured messages, ready to share</p>
|
|
15801
16245
|
</div>
|
|
15802
16246
|
<div class="chat-panel-meta">
|
|
15803
|
-
<span>${escapeHtml(`${messages.length} messages`)}</span>
|
|
15804
|
-
<span>${escapeHtml(`${participantCount} participants`)}</span>
|
|
16247
|
+
<span>${escapeHtml$1(`${messages.length} messages`)}</span>
|
|
16248
|
+
<span>${escapeHtml$1(`${participantCount} participants`)}</span>
|
|
15805
16249
|
</div>
|
|
15806
16250
|
</div>
|
|
15807
16251
|
<div class="chat-messages">
|
|
@@ -15811,7 +16255,7 @@
|
|
|
15811
16255
|
<footer class="export-footer">
|
|
15812
16256
|
<div>
|
|
15813
16257
|
<p>Generated by Promptbook</p>
|
|
15814
|
-
<p class="footer-meta">Exported ${escapeHtml(exportedLabel)}</p>
|
|
16258
|
+
<p class="footer-meta">Exported ${escapeHtml$1(exportedLabel)}</p>
|
|
15815
16259
|
</div>
|
|
15816
16260
|
<div class="footer-brand">
|
|
15817
16261
|
<img src="${BRAND_MARK_URL}" alt="" aria-hidden="true" />
|
|
@@ -21974,27 +22418,6 @@
|
|
|
21974
22418
|
* TODO: [®] DRY Register logic
|
|
21975
22419
|
*/
|
|
21976
22420
|
|
|
21977
|
-
/*! *****************************************************************************
|
|
21978
|
-
Copyright (c) Microsoft Corporation.
|
|
21979
|
-
|
|
21980
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
21981
|
-
purpose with or without fee is hereby granted.
|
|
21982
|
-
|
|
21983
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
21984
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
21985
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
21986
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
21987
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
21988
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
21989
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
21990
|
-
***************************************************************************** */
|
|
21991
|
-
|
|
21992
|
-
function __classPrivateFieldGet(receiver, state, kind, f) {
|
|
21993
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
21994
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
21995
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
21996
|
-
}
|
|
21997
|
-
|
|
21998
22421
|
/**
|
|
21999
22422
|
* Helper of usage compute
|
|
22000
22423
|
*
|
|
@@ -25770,6 +26193,24 @@
|
|
|
25770
26193
|
],
|
|
25771
26194
|
});
|
|
25772
26195
|
}
|
|
26196
|
+
/**
|
|
26197
|
+
* Merges the agent's predefined knowledge sources with user-provided attachment URLs.
|
|
26198
|
+
*
|
|
26199
|
+
* @private internal helper for `AgentLlmExecutionTools`
|
|
26200
|
+
*/
|
|
26201
|
+
function mergeKnowledgeSourcesWithAttachments(baseSources, attachmentUrls) {
|
|
26202
|
+
const combined = [];
|
|
26203
|
+
if (baseSources && baseSources.length > 0) {
|
|
26204
|
+
combined.push(...baseSources.filter((value) => typeof value === 'string' && value.trim() !== ''));
|
|
26205
|
+
}
|
|
26206
|
+
for (const url of attachmentUrls) {
|
|
26207
|
+
const trimmed = String(url !== null && url !== void 0 ? url : '').trim();
|
|
26208
|
+
if (trimmed !== '') {
|
|
26209
|
+
combined.push(trimmed);
|
|
26210
|
+
}
|
|
26211
|
+
}
|
|
26212
|
+
return Array.from(new Set(combined));
|
|
26213
|
+
}
|
|
25773
26214
|
/**
|
|
25774
26215
|
* Execution Tools for calling LLM models with a predefined agent "soul"
|
|
25775
26216
|
* This wraps underlying LLM execution tools and applies agent-specific system prompts and requirements
|
|
@@ -25914,7 +26355,7 @@
|
|
|
25914
26355
|
* Calls the chat model with agent-specific system prompt and requirements with streaming
|
|
25915
26356
|
*/
|
|
25916
26357
|
async callChatModelStream(prompt, onProgress) {
|
|
25917
|
-
var _a
|
|
26358
|
+
var _a;
|
|
25918
26359
|
// Ensure we're working with a chat prompt
|
|
25919
26360
|
if (prompt.modelRequirements.modelVariant !== 'CHAT') {
|
|
25920
26361
|
throw new Error('AgentLlmExecutionTools only supports chat prompts');
|
|
@@ -25922,6 +26363,14 @@
|
|
|
25922
26363
|
const modelRequirements = await this.getModelRequirements();
|
|
25923
26364
|
const { _metadata, promptSuffix, ...sanitizedRequirements } = modelRequirements;
|
|
25924
26365
|
const chatPrompt = prompt;
|
|
26366
|
+
const attachmentUrls = Array.isArray(chatPrompt.attachments) && chatPrompt.attachments.length > 0
|
|
26367
|
+
? chatPrompt.attachments
|
|
26368
|
+
.map((attachment) => (typeof (attachment === null || attachment === void 0 ? void 0 : attachment.url) === 'string' ? attachment.url.trim() : ''))
|
|
26369
|
+
.filter((url) => url !== '')
|
|
26370
|
+
: [];
|
|
26371
|
+
const knowledgeSourcesForAgentList = mergeKnowledgeSourcesWithAttachments(sanitizedRequirements.knowledgeSources, attachmentUrls);
|
|
26372
|
+
const knowledgeSourcesForAgent = knowledgeSourcesForAgentList.length > 0 ? knowledgeSourcesForAgentList : undefined;
|
|
26373
|
+
const hasAttachmentSources = attachmentUrls.length > 0;
|
|
25925
26374
|
let underlyingLlmResult;
|
|
25926
26375
|
const chatPromptContentWithSuffix = promptSuffix
|
|
25927
26376
|
? `${chatPrompt.content}\n\n${promptSuffix}`
|
|
@@ -25937,9 +26386,7 @@
|
|
|
25937
26386
|
? [...sanitizedRequirements.tools]
|
|
25938
26387
|
: chatPrompt.modelRequirements.tools,
|
|
25939
26388
|
// Spread knowledgeSources to convert readonly array to mutable
|
|
25940
|
-
knowledgeSources:
|
|
25941
|
-
? [...sanitizedRequirements.knowledgeSources]
|
|
25942
|
-
: undefined,
|
|
26389
|
+
knowledgeSources: knowledgeSourcesForAgent,
|
|
25943
26390
|
// Prepend agent system message to existing system message
|
|
25944
26391
|
systemMessage: sanitizedRequirements.systemMessage +
|
|
25945
26392
|
(chatPrompt.modelRequirements.systemMessage
|
|
@@ -25949,27 +26396,34 @@
|
|
|
25949
26396
|
};
|
|
25950
26397
|
console.log('!!!! promptWithAgentModelRequirements:', promptWithAgentModelRequirements);
|
|
25951
26398
|
if (OpenAiAgentKitExecutionTools.isOpenAiAgentKitExecutionTools(this.options.llmTools)) {
|
|
25952
|
-
const
|
|
25953
|
-
|
|
25954
|
-
const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
|
|
25955
|
-
const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
|
|
25956
|
-
let preparedAgentKit = this.options.assistantPreparationMode === 'external'
|
|
26399
|
+
const shouldUseCache = !hasAttachmentSources;
|
|
26400
|
+
let preparedAgentKit = shouldUseCache && this.options.assistantPreparationMode === 'external'
|
|
25957
26401
|
? this.options.llmTools.getPreparedAgentKitAgent()
|
|
25958
26402
|
: null;
|
|
25959
|
-
|
|
25960
|
-
|
|
25961
|
-
|
|
25962
|
-
|
|
25963
|
-
|
|
25964
|
-
|
|
25965
|
-
|
|
25966
|
-
|
|
25967
|
-
|
|
26403
|
+
let vectorStoreId;
|
|
26404
|
+
let vectorStoreHash;
|
|
26405
|
+
let requirementsHash;
|
|
26406
|
+
if (shouldUseCache) {
|
|
26407
|
+
requirementsHash = cryptoJs.SHA256(JSON.stringify(sanitizedRequirements)).toString();
|
|
26408
|
+
vectorStoreHash = cryptoJs.SHA256(JSON.stringify((_a = sanitizedRequirements.knowledgeSources) !== null && _a !== void 0 ? _a : [])).toString();
|
|
26409
|
+
const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
|
|
26410
|
+
const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
|
|
26411
|
+
vectorStoreId =
|
|
26412
|
+
(preparedAgentKit === null || preparedAgentKit === void 0 ? void 0 : preparedAgentKit.vectorStoreId) ||
|
|
26413
|
+
(cachedVectorStore && cachedVectorStore.requirementsHash === vectorStoreHash
|
|
26414
|
+
? cachedVectorStore.vectorStoreId
|
|
26415
|
+
: undefined);
|
|
26416
|
+
if (!preparedAgentKit && cachedAgentKit && cachedAgentKit.requirementsHash === requirementsHash) {
|
|
26417
|
+
if (this.options.isVerbose) {
|
|
26418
|
+
console.info('[🤰]', 'Using cached OpenAI AgentKit agent', {
|
|
26419
|
+
agent: this.title,
|
|
26420
|
+
});
|
|
26421
|
+
}
|
|
26422
|
+
preparedAgentKit = {
|
|
26423
|
+
agent: cachedAgentKit.agent,
|
|
26424
|
+
vectorStoreId: cachedAgentKit.vectorStoreId,
|
|
26425
|
+
};
|
|
25968
26426
|
}
|
|
25969
|
-
preparedAgentKit = {
|
|
25970
|
-
agent: cachedAgentKit.agent,
|
|
25971
|
-
vectorStoreId: cachedAgentKit.vectorStoreId,
|
|
25972
|
-
};
|
|
25973
26427
|
}
|
|
25974
26428
|
if (!preparedAgentKit) {
|
|
25975
26429
|
if (this.options.isVerbose) {
|
|
@@ -25977,7 +26431,7 @@
|
|
|
25977
26431
|
agent: this.title,
|
|
25978
26432
|
});
|
|
25979
26433
|
}
|
|
25980
|
-
if (!vectorStoreId && (
|
|
26434
|
+
if (!vectorStoreId && (knowledgeSourcesForAgent === null || knowledgeSourcesForAgent === void 0 ? void 0 : knowledgeSourcesForAgent.length)) {
|
|
25981
26435
|
emitAssistantPreparationProgress({
|
|
25982
26436
|
onProgress,
|
|
25983
26437
|
prompt,
|
|
@@ -25994,22 +26448,24 @@
|
|
|
25994
26448
|
preparedAgentKit = await this.options.llmTools.prepareAgentKitAgent({
|
|
25995
26449
|
name: this.title,
|
|
25996
26450
|
instructions: sanitizedRequirements.systemMessage || '',
|
|
25997
|
-
knowledgeSources:
|
|
26451
|
+
knowledgeSources: knowledgeSourcesForAgent,
|
|
25998
26452
|
tools: sanitizedRequirements.tools ? [...sanitizedRequirements.tools] : undefined,
|
|
25999
|
-
vectorStoreId,
|
|
26453
|
+
vectorStoreId: shouldUseCache ? vectorStoreId : undefined,
|
|
26000
26454
|
});
|
|
26001
26455
|
}
|
|
26002
|
-
if (preparedAgentKit.vectorStoreId) {
|
|
26456
|
+
if (shouldUseCache && vectorStoreHash && preparedAgentKit.vectorStoreId) {
|
|
26003
26457
|
AgentLlmExecutionTools.vectorStoreCache.set(this.title, {
|
|
26004
26458
|
vectorStoreId: preparedAgentKit.vectorStoreId,
|
|
26005
26459
|
requirementsHash: vectorStoreHash,
|
|
26006
26460
|
});
|
|
26007
26461
|
}
|
|
26008
|
-
|
|
26009
|
-
|
|
26010
|
-
|
|
26011
|
-
|
|
26012
|
-
|
|
26462
|
+
if (shouldUseCache && requirementsHash) {
|
|
26463
|
+
AgentLlmExecutionTools.agentKitAgentCache.set(this.title, {
|
|
26464
|
+
agent: preparedAgentKit.agent,
|
|
26465
|
+
requirementsHash,
|
|
26466
|
+
vectorStoreId: preparedAgentKit.vectorStoreId,
|
|
26467
|
+
});
|
|
26468
|
+
}
|
|
26013
26469
|
const responseFormatOutputType = mapResponseFormatToAgentOutputType(promptWithAgentModelRequirements.modelRequirements.responseFormat);
|
|
26014
26470
|
underlyingLlmResult = await this.options.llmTools.callChatModelStreamWithPreparedAgent({
|
|
26015
26471
|
openAiAgentKitAgent: preparedAgentKit.agent,
|
|
@@ -26166,9 +26622,148 @@
|
|
|
26166
26622
|
* TODO: [🧠] Adding parameter substitution support (here or should be responsibility of the underlying LLM Tools)
|
|
26167
26623
|
*/
|
|
26168
26624
|
|
|
26169
|
-
|
|
26625
|
+
/**
|
|
26626
|
+
* Coordinates the Agent self-learning workflow that was extracted from the main class.
|
|
26627
|
+
*
|
|
26628
|
+
* @private helper for Agent
|
|
26629
|
+
*/
|
|
26630
|
+
class SelfLearningManager {
|
|
26631
|
+
constructor(options) {
|
|
26632
|
+
this.options = options;
|
|
26633
|
+
this.teacherAgent = options.teacherAgent;
|
|
26634
|
+
}
|
|
26635
|
+
/**
|
|
26636
|
+
* Runs nonce, sampling, and teacher steps for every interaction that should learn.
|
|
26637
|
+
*
|
|
26638
|
+
* @param prompt Received prompt for the interaction
|
|
26639
|
+
* @param result Response produced by the agent
|
|
26640
|
+
* @returns Teacher summary or null when no teacher is configured
|
|
26641
|
+
* @private helper of Agent
|
|
26642
|
+
*/
|
|
26643
|
+
async runSelfLearning(prompt, result) {
|
|
26644
|
+
if (just(false)) {
|
|
26645
|
+
await this.appendNonce();
|
|
26646
|
+
}
|
|
26647
|
+
this.appendSample(prompt, result);
|
|
26648
|
+
if (this.teacherAgent === null) {
|
|
26649
|
+
return null;
|
|
26650
|
+
}
|
|
26651
|
+
try {
|
|
26652
|
+
return await this.callTeacher(prompt, result);
|
|
26653
|
+
}
|
|
26654
|
+
catch (error) {
|
|
26655
|
+
console.error(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].red(' Failed to learn from teacher agent'));
|
|
26656
|
+
console.error(error);
|
|
26657
|
+
return buildTeacherSummary('', true);
|
|
26658
|
+
}
|
|
26659
|
+
}
|
|
26660
|
+
/**
|
|
26661
|
+
* Appends the nonce section to the agent source with slight delay to avoid thundering herd lookups.
|
|
26662
|
+
*
|
|
26663
|
+
* @private helper of Agent
|
|
26664
|
+
*/
|
|
26665
|
+
async appendNonce() {
|
|
26666
|
+
await waitasecond.forTime(Math.random() * 5000);
|
|
26667
|
+
console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Nonce'));
|
|
26668
|
+
const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
|
|
26669
|
+
this.appendToAgentSource('\n\n---\n\n' + nonce);
|
|
26670
|
+
}
|
|
26671
|
+
/**
|
|
26672
|
+
* Appends the recent user/agent exchange as a new sample.
|
|
26673
|
+
*
|
|
26674
|
+
* @private helper of Agent
|
|
26675
|
+
*/
|
|
26676
|
+
appendSample(prompt, result) {
|
|
26677
|
+
console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Sampling'));
|
|
26678
|
+
const learningExample = spaceTrim__default["default"]((block) => `
|
|
26679
|
+
|
|
26680
|
+
USER MESSAGE
|
|
26681
|
+
${block(prompt.content)}
|
|
26682
|
+
|
|
26683
|
+
AGENT MESSAGE
|
|
26684
|
+
${block(result.content)}
|
|
26685
|
+
|
|
26686
|
+
`);
|
|
26687
|
+
this.appendToAgentSource('\n\n---\n\n' + learningExample);
|
|
26688
|
+
}
|
|
26689
|
+
/**
|
|
26690
|
+
* Calls the teacher agent, appends its commitments, and summarizes the results.
|
|
26691
|
+
*
|
|
26692
|
+
* @private helper of Agent
|
|
26693
|
+
*/
|
|
26694
|
+
async callTeacher(prompt, result) {
|
|
26695
|
+
console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Teacher'));
|
|
26696
|
+
const teacherPromptContent = spaceTrim__default["default"]((block) => `
|
|
26697
|
+
|
|
26698
|
+
You are a teacher agent helping another agent to learn from its interactions.
|
|
26699
|
+
|
|
26700
|
+
Here is your current client which you are teaching:
|
|
26701
|
+
|
|
26702
|
+
\`\`\`book
|
|
26703
|
+
${block(this.options.getAgentSource())}
|
|
26704
|
+
\`\`\`
|
|
26705
|
+
|
|
26706
|
+
**And here is the latest interaction:**
|
|
26707
|
+
|
|
26708
|
+
**User:**
|
|
26709
|
+
${block(prompt.content)}
|
|
26710
|
+
|
|
26711
|
+
**Agent:**
|
|
26712
|
+
${block(result.content)}
|
|
26713
|
+
|
|
26714
|
+
|
|
26715
|
+
**Rules:**
|
|
26716
|
+
|
|
26717
|
+
- Decide what the agent should learn from this interaction.
|
|
26718
|
+
- Append new commitments at the end of the agent source.
|
|
26719
|
+
- Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
|
|
26720
|
+
- If there is nothing new to learn, return empty book code block
|
|
26721
|
+
- Wrap the commitments in a book code block.
|
|
26722
|
+
- Do not explain anything, just return the commitments wrapped in a book code block.
|
|
26723
|
+
- Write the learned commitments in the same style and language as in the original agent source.
|
|
26724
|
+
|
|
26725
|
+
|
|
26726
|
+
This is how book code block looks like:
|
|
26727
|
+
|
|
26728
|
+
\`\`\`book
|
|
26729
|
+
KNOWLEDGE The sky is blue.
|
|
26730
|
+
RULE Always be polite.
|
|
26731
|
+
\`\`\`
|
|
26732
|
+
`);
|
|
26733
|
+
const teacherResult = await this.teacherAgent.callChatModel({
|
|
26734
|
+
title: 'Self-learning',
|
|
26735
|
+
modelRequirements: {
|
|
26736
|
+
modelVariant: 'CHAT',
|
|
26737
|
+
},
|
|
26738
|
+
content: teacherPromptContent,
|
|
26739
|
+
parameters: {},
|
|
26740
|
+
});
|
|
26741
|
+
console.log('!!!! teacherResult', teacherResult);
|
|
26742
|
+
const teacherCommitments = unwrapResult(teacherResult.content);
|
|
26743
|
+
if (teacherCommitments === '') {
|
|
26744
|
+
console.info(colors__default["default"].bgCyan('[Self-learning]') +
|
|
26745
|
+
colors__default["default"].cyan(' Teacher agent did not provide new commitments to learn'));
|
|
26746
|
+
return buildTeacherSummary('', true);
|
|
26747
|
+
}
|
|
26748
|
+
this.appendToAgentSource('\n\n' + teacherCommitments);
|
|
26749
|
+
return buildTeacherSummary(teacherCommitments, true);
|
|
26750
|
+
}
|
|
26751
|
+
/**
|
|
26752
|
+
* Appends a new fragment to the agent source and triggers normalization.
|
|
26753
|
+
*
|
|
26754
|
+
* @param section Fragment that should be appended
|
|
26755
|
+
* @private helper of Agent
|
|
26756
|
+
*/
|
|
26757
|
+
appendToAgentSource(section) {
|
|
26758
|
+
const currentSource = this.options.getAgentSource();
|
|
26759
|
+
const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + section));
|
|
26760
|
+
this.options.updateAgentSource(newSource);
|
|
26761
|
+
}
|
|
26762
|
+
}
|
|
26170
26763
|
/**
|
|
26171
26764
|
* Creates an empty commitment breakdown for self-learning summaries.
|
|
26765
|
+
*
|
|
26766
|
+
* @private function of Agent
|
|
26172
26767
|
*/
|
|
26173
26768
|
function createEmptySelfLearningCommitmentCounts() {
|
|
26174
26769
|
return {
|
|
@@ -26181,6 +26776,9 @@
|
|
|
26181
26776
|
}
|
|
26182
26777
|
/**
|
|
26183
26778
|
* Normalizes teacher commitments into trimmed, display-ready lines.
|
|
26779
|
+
*
|
|
26780
|
+
* @param commitments Raw teacher output
|
|
26781
|
+
* @private function of Agent
|
|
26184
26782
|
*/
|
|
26185
26783
|
function getTeacherCommitmentLines(commitments) {
|
|
26186
26784
|
return commitments
|
|
@@ -26190,6 +26788,9 @@
|
|
|
26190
26788
|
}
|
|
26191
26789
|
/**
|
|
26192
26790
|
* Summarizes teacher commitment lines into user-friendly counts for self-learning.
|
|
26791
|
+
*
|
|
26792
|
+
* @param lines Parsed teacher commitment lines
|
|
26793
|
+
* @private function of Agent
|
|
26193
26794
|
*/
|
|
26194
26795
|
function summarizeTeacherCommitmentLines(lines) {
|
|
26195
26796
|
var _a, _b;
|
|
@@ -26217,6 +26818,11 @@
|
|
|
26217
26818
|
}
|
|
26218
26819
|
/**
|
|
26219
26820
|
* Builds the teacher summary payload for the self-learning tool call.
|
|
26821
|
+
*
|
|
26822
|
+
* @param commitments Raw teacher commitments
|
|
26823
|
+
* @param used Whether the teacher was invoked
|
|
26824
|
+
* @returns Summary of learned commitments
|
|
26825
|
+
* @private function of Agent
|
|
26220
26826
|
*/
|
|
26221
26827
|
function buildTeacherSummary(commitments, used) {
|
|
26222
26828
|
const commitmentLines = getTeacherCommitmentLines(commitments);
|
|
@@ -26226,6 +26832,34 @@
|
|
|
26226
26832
|
commitments: commitmentLines.length > 0 ? commitmentLines : undefined,
|
|
26227
26833
|
};
|
|
26228
26834
|
}
|
|
26835
|
+
|
|
26836
|
+
/**
|
|
26837
|
+
* Parses boolean prompt parameters, defaulting when the value is missing or invalid.
|
|
26838
|
+
*
|
|
26839
|
+
* @private
|
|
26840
|
+
*/
|
|
26841
|
+
function parseBooleanPromptParameter(value, fallback) {
|
|
26842
|
+
if (value === undefined) {
|
|
26843
|
+
return fallback;
|
|
26844
|
+
}
|
|
26845
|
+
const normalized = value.trim().toLowerCase();
|
|
26846
|
+
if (normalized === 'true') {
|
|
26847
|
+
return true;
|
|
26848
|
+
}
|
|
26849
|
+
if (normalized === 'false') {
|
|
26850
|
+
return false;
|
|
26851
|
+
}
|
|
26852
|
+
try {
|
|
26853
|
+
const parsed = JSON.parse(value);
|
|
26854
|
+
if (typeof parsed === 'boolean') {
|
|
26855
|
+
return parsed;
|
|
26856
|
+
}
|
|
26857
|
+
}
|
|
26858
|
+
catch (_a) {
|
|
26859
|
+
// If JSON parsing fails, fall back to the default.
|
|
26860
|
+
}
|
|
26861
|
+
return fallback;
|
|
26862
|
+
}
|
|
26229
26863
|
/**
|
|
26230
26864
|
* Represents one AI Agent
|
|
26231
26865
|
*
|
|
@@ -26268,7 +26902,6 @@
|
|
|
26268
26902
|
assistantPreparationMode: options.assistantPreparationMode,
|
|
26269
26903
|
agentSource: agentSource.value, // <- TODO: [🐱🚀] Allow to pass BehaviorSubject<string_book> OR refresh llmExecutionTools.callChat on agentSource change
|
|
26270
26904
|
});
|
|
26271
|
-
_Agent_instances.add(this);
|
|
26272
26905
|
this._agentName = undefined;
|
|
26273
26906
|
/**
|
|
26274
26907
|
* Description of the agent
|
|
@@ -26307,8 +26940,12 @@
|
|
|
26307
26940
|
this.toolTitles = {};
|
|
26308
26941
|
// TODO: [🐱🚀] Add `Agent` simple "mocked" learning by appending to agent source
|
|
26309
26942
|
// TODO: [🐱🚀] Add `Agent` learning by promptbookAgent
|
|
26310
|
-
this.teacherAgent = options.teacherAgent;
|
|
26311
26943
|
this.agentSource = agentSource;
|
|
26944
|
+
this.selfLearningManager = new SelfLearningManager({
|
|
26945
|
+
teacherAgent: options.teacherAgent,
|
|
26946
|
+
getAgentSource: () => this.agentSource.value,
|
|
26947
|
+
updateAgentSource: (source) => this.agentSource.next(source),
|
|
26948
|
+
});
|
|
26312
26949
|
this.agentSource.subscribe((source) => {
|
|
26313
26950
|
this.updateAgentSource(source);
|
|
26314
26951
|
const { agentName, personaDescription, initialMessage, links, meta, capabilities, samples, knowledgeSources, } = parseAgentSource(source);
|
|
@@ -26332,6 +26969,7 @@
|
|
|
26332
26969
|
* Note: This method also implements the learning mechanism
|
|
26333
26970
|
*/
|
|
26334
26971
|
async callChatModelStream(prompt, onProgress) {
|
|
26972
|
+
var _a;
|
|
26335
26973
|
// [1] Check if the user is asking the same thing as in the samples
|
|
26336
26974
|
const modelRequirements = await this.getModelRequirements();
|
|
26337
26975
|
if (modelRequirements.samples) {
|
|
@@ -26382,6 +27020,10 @@
|
|
|
26382
27020
|
if (modelRequirements.isClosed) {
|
|
26383
27021
|
return result;
|
|
26384
27022
|
}
|
|
27023
|
+
const shouldSelfLearn = parseBooleanPromptParameter((_a = prompt.parameters) === null || _a === void 0 ? void 0 : _a[PROMPT_PARAMETER_SELF_LEARNING_ENABLED], true);
|
|
27024
|
+
if (!shouldSelfLearn) {
|
|
27025
|
+
return result;
|
|
27026
|
+
}
|
|
26385
27027
|
// Note: [0] Notify start of self-learning
|
|
26386
27028
|
const selfLearningToolCall = {
|
|
26387
27029
|
name: 'self-learning',
|
|
@@ -26393,24 +27035,7 @@
|
|
|
26393
27035
|
toolCalls: [...(result.toolCalls || []), selfLearningToolCall],
|
|
26394
27036
|
};
|
|
26395
27037
|
onProgress(resultWithLearning);
|
|
26396
|
-
|
|
26397
|
-
if (just(false)) {
|
|
26398
|
-
await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnNonce).call(this);
|
|
26399
|
-
}
|
|
26400
|
-
// Note: [2] Do the append of the samples
|
|
26401
|
-
await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnSamples).call(this, prompt, result);
|
|
26402
|
-
// Note: [3] Asynchronously call the teacher agent and invoke the silver link. When the teacher fails, keep just the samples
|
|
26403
|
-
let teacherSummary = null;
|
|
26404
|
-
try {
|
|
26405
|
-
teacherSummary = await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnTeacher).call(this, prompt, result);
|
|
26406
|
-
}
|
|
26407
|
-
catch (error) {
|
|
26408
|
-
// !!!!! if (this.options.isVerbose) {
|
|
26409
|
-
console.error(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].red(' Failed to learn from teacher agent'));
|
|
26410
|
-
console.error(error);
|
|
26411
|
-
// }
|
|
26412
|
-
teacherSummary = this.teacherAgent ? buildTeacherSummary('', true) : null;
|
|
26413
|
-
}
|
|
27038
|
+
const teacherSummary = await this.selfLearningManager.runSelfLearning(prompt, result);
|
|
26414
27039
|
// Note: [4] Notify end of self-learning
|
|
26415
27040
|
const completedAt = new Date().toISOString();
|
|
26416
27041
|
const selfLearningResult = {
|
|
@@ -26432,110 +27057,6 @@
|
|
|
26432
27057
|
return finalResult;
|
|
26433
27058
|
}
|
|
26434
27059
|
}
|
|
26435
|
-
_Agent_instances = new WeakSet(), _Agent_selfLearnNonce =
|
|
26436
|
-
/**
|
|
26437
|
-
* Self-learning Step 0: Asynchronously with random timing add nonce to the agent source
|
|
26438
|
-
*/
|
|
26439
|
-
async function _Agent_selfLearnNonce() {
|
|
26440
|
-
await waitasecond.forTime(Math.random() * 5000);
|
|
26441
|
-
// <- TODO: [🕓] `await forRandom(...)`
|
|
26442
|
-
console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Nonce'));
|
|
26443
|
-
const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
|
|
26444
|
-
// Append to the current source
|
|
26445
|
-
const currentSource = this.agentSource.value;
|
|
26446
|
-
const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + '\n\n---\n\n' + nonce));
|
|
26447
|
-
// <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
|
|
26448
|
-
// Update the source (which will trigger the subscription and update the underlying tools)
|
|
26449
|
-
this.agentSource.next(newSource);
|
|
26450
|
-
}, _Agent_selfLearnSamples = function _Agent_selfLearnSamples(prompt, result) {
|
|
26451
|
-
console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Sampling'));
|
|
26452
|
-
const learningExample = spaceTrim__default["default"]((block) => `
|
|
26453
|
-
|
|
26454
|
-
USER MESSAGE
|
|
26455
|
-
${block(prompt.content)}
|
|
26456
|
-
|
|
26457
|
-
AGENT MESSAGE
|
|
26458
|
-
${block(result.content)}
|
|
26459
|
-
|
|
26460
|
-
`);
|
|
26461
|
-
// Append to the current source
|
|
26462
|
-
const currentSource = this.agentSource.value;
|
|
26463
|
-
const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + '\n\n---\n\n' + learningExample));
|
|
26464
|
-
// <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
|
|
26465
|
-
// Update the source (which will trigger the subscription and update the underlying tools)
|
|
26466
|
-
this.agentSource.next(newSource);
|
|
26467
|
-
}, _Agent_selfLearnTeacher =
|
|
26468
|
-
/**
|
|
26469
|
-
* Self-learning Step 2: Asynchronously call the teacher agent and invoke the silver link
|
|
26470
|
-
*/
|
|
26471
|
-
async function _Agent_selfLearnTeacher(prompt, result) {
|
|
26472
|
-
// [1] Call the teacher agent // <- !!!!! Emojis
|
|
26473
|
-
if (this.teacherAgent === null) {
|
|
26474
|
-
return null;
|
|
26475
|
-
}
|
|
26476
|
-
console.info(colors__default["default"].bgCyan('[Self-learning]') + colors__default["default"].cyan(' Teacher'));
|
|
26477
|
-
const teacherResult = await this.teacherAgent.callChatModel({
|
|
26478
|
-
title: 'Self-learning',
|
|
26479
|
-
modelRequirements: {
|
|
26480
|
-
modelVariant: 'CHAT',
|
|
26481
|
-
},
|
|
26482
|
-
// TODO: !!!! Use prompt notation
|
|
26483
|
-
content: spaceTrim__default["default"]((block) => `
|
|
26484
|
-
|
|
26485
|
-
You are a teacher agent helping another agent to learn from its interactions.
|
|
26486
|
-
|
|
26487
|
-
Here is your current client which you are teaching:
|
|
26488
|
-
|
|
26489
|
-
\`\`\`book
|
|
26490
|
-
${block(this.agentSource.value)}
|
|
26491
|
-
\`\`\`
|
|
26492
|
-
|
|
26493
|
-
**And here is the latest interaction:**
|
|
26494
|
-
|
|
26495
|
-
**User:**
|
|
26496
|
-
${block(prompt.content)}
|
|
26497
|
-
|
|
26498
|
-
**Agent:**
|
|
26499
|
-
${block(result.content)}
|
|
26500
|
-
|
|
26501
|
-
|
|
26502
|
-
**Rules:**
|
|
26503
|
-
|
|
26504
|
-
- Decide what the agent should learn from this interaction.
|
|
26505
|
-
- Append new commitments at the end of the agent source.
|
|
26506
|
-
- Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
|
|
26507
|
-
- If there is nothing new to learn, return empty book code block
|
|
26508
|
-
- Wrap the commitments in a book code block.
|
|
26509
|
-
- Do not explain anything, just return the commitments wrapped in a book code block.
|
|
26510
|
-
- Write the learned commitments in the same style and language as in the original agent source.
|
|
26511
|
-
|
|
26512
|
-
|
|
26513
|
-
This is how book code block looks like:
|
|
26514
|
-
|
|
26515
|
-
\`\`\`book
|
|
26516
|
-
KNOWLEDGE The sky is blue.
|
|
26517
|
-
RULE Always be polite.
|
|
26518
|
-
\`\`\`
|
|
26519
|
-
`),
|
|
26520
|
-
// pipelineUrl: 'https://github.com/webgptorg/promptbook/blob/main/prompts/self-learning.ptbk.md',
|
|
26521
|
-
// <- TODO: !!!! Remove and `pipelineUrl` for agent purposes
|
|
26522
|
-
parameters: {},
|
|
26523
|
-
});
|
|
26524
|
-
console.log('!!!! teacherResult', teacherResult);
|
|
26525
|
-
const teacherCommitments = unwrapResult(teacherResult.content);
|
|
26526
|
-
if (teacherCommitments === '') {
|
|
26527
|
-
console.info(colors__default["default"].bgCyan('[Self-learning]') +
|
|
26528
|
-
colors__default["default"].cyan(' Teacher agent did not provide new commitments to learn'));
|
|
26529
|
-
return buildTeacherSummary('', true);
|
|
26530
|
-
}
|
|
26531
|
-
// [2] Append to the current source
|
|
26532
|
-
const currentSource = this.agentSource.value;
|
|
26533
|
-
const newSource = padBook(validateBook(spaceTrim__default["default"](currentSource) + '\n\n' + teacherCommitments));
|
|
26534
|
-
// <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
|
|
26535
|
-
// [3] Update the source
|
|
26536
|
-
this.agentSource.next(newSource);
|
|
26537
|
-
return buildTeacherSummary(teacherCommitments, true);
|
|
26538
|
-
};
|
|
26539
27060
|
/**
|
|
26540
27061
|
* TODO: [🧠][😰]Agent is not working with the parameters, should it be?
|
|
26541
27062
|
*/
|
|
@@ -26810,13 +27331,23 @@
|
|
|
26810
27331
|
remoteAgent.samples = profile.samples || [];
|
|
26811
27332
|
remoteAgent.toolTitles = profile.toolTitles || {};
|
|
26812
27333
|
remoteAgent._isVoiceCallingEnabled = profile.isVoiceCallingEnabled === true; // [✨✷] Store voice calling status
|
|
27334
|
+
remoteAgent._isVoiceTtsSttEnabled = profile.isVoiceTtsSttEnabled !== false;
|
|
26813
27335
|
remoteAgent.knowledgeSources = profile.knowledgeSources || [];
|
|
26814
27336
|
return remoteAgent;
|
|
26815
27337
|
}
|
|
27338
|
+
/**
|
|
27339
|
+
* Indicates whether the remote server allows text-to-speech and speech-to-text.
|
|
27340
|
+
*
|
|
27341
|
+
* @public exported from `@promptbook/core`
|
|
27342
|
+
*/
|
|
27343
|
+
get isVoiceTtsSttEnabled() {
|
|
27344
|
+
return this._isVoiceTtsSttEnabled;
|
|
27345
|
+
}
|
|
26816
27346
|
constructor(options) {
|
|
26817
27347
|
super(options);
|
|
26818
27348
|
this.toolTitles = {};
|
|
26819
27349
|
this._isVoiceCallingEnabled = false; // [✨✷] Track voice calling status
|
|
27350
|
+
this._isVoiceTtsSttEnabled = true;
|
|
26820
27351
|
this.knowledgeSources = [];
|
|
26821
27352
|
this.agentUrl = options.agentUrl;
|
|
26822
27353
|
}
|
|
@@ -26838,7 +27369,7 @@
|
|
|
26838
27369
|
* Returns undefined if voice calling is disabled
|
|
26839
27370
|
*/
|
|
26840
27371
|
get callVoiceChatModel() {
|
|
26841
|
-
if (!this._isVoiceCallingEnabled) {
|
|
27372
|
+
if (!this._isVoiceCallingEnabled || !this._isVoiceTtsSttEnabled) {
|
|
26842
27373
|
return undefined;
|
|
26843
27374
|
}
|
|
26844
27375
|
return async (audio, prompt) => {
|
|
@@ -26901,6 +27432,7 @@
|
|
|
26901
27432
|
const toolCalls = [];
|
|
26902
27433
|
const preparationToolCalls = [];
|
|
26903
27434
|
let hasReceivedModelOutput = false;
|
|
27435
|
+
let pendingToolCallLineFragment = '';
|
|
26904
27436
|
const normalizeToolCall = (toolCall) => {
|
|
26905
27437
|
if (toolCall.createdAt) {
|
|
26906
27438
|
return toolCall;
|
|
@@ -26953,6 +27485,113 @@
|
|
|
26953
27485
|
* Builds the tool call list including any preparation marker still active.
|
|
26954
27486
|
*/
|
|
26955
27487
|
const getActiveToolCalls = () => preparationToolCalls.length > 0 ? [...preparationToolCalls, ...toolCalls] : toolCalls;
|
|
27488
|
+
/**
|
|
27489
|
+
* Emits one progress snapshot using current aggregated text and tool calls.
|
|
27490
|
+
*/
|
|
27491
|
+
const emitProgress = () => {
|
|
27492
|
+
onProgress({
|
|
27493
|
+
content,
|
|
27494
|
+
modelName: this.modelName,
|
|
27495
|
+
timing: {},
|
|
27496
|
+
usage: {},
|
|
27497
|
+
rawPromptContent: {},
|
|
27498
|
+
rawRequest: {},
|
|
27499
|
+
rawResponse: {},
|
|
27500
|
+
toolCalls: getActiveToolCalls(),
|
|
27501
|
+
});
|
|
27502
|
+
};
|
|
27503
|
+
/**
|
|
27504
|
+
* Attempts to parse one completed NDJSON tool-call line.
|
|
27505
|
+
*/
|
|
27506
|
+
const tryParseToolCallLine = (trimmedLine) => {
|
|
27507
|
+
if (!trimmedLine.startsWith('{') || !trimmedLine.endsWith('}')) {
|
|
27508
|
+
return false;
|
|
27509
|
+
}
|
|
27510
|
+
try {
|
|
27511
|
+
const chunk = JSON.parse(trimmedLine);
|
|
27512
|
+
if (!chunk.toolCalls) {
|
|
27513
|
+
return false;
|
|
27514
|
+
}
|
|
27515
|
+
const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
|
|
27516
|
+
upsertToolCalls(normalizedToolCalls);
|
|
27517
|
+
emitProgress();
|
|
27518
|
+
return true;
|
|
27519
|
+
}
|
|
27520
|
+
catch (_a) {
|
|
27521
|
+
return false;
|
|
27522
|
+
}
|
|
27523
|
+
};
|
|
27524
|
+
/**
|
|
27525
|
+
* Detects whether an incomplete trailing line might be a split tool-call payload.
|
|
27526
|
+
*/
|
|
27527
|
+
const isPotentialToolCallLineFragment = (trimmedLine) => {
|
|
27528
|
+
if (trimmedLine.length === 0) {
|
|
27529
|
+
return false;
|
|
27530
|
+
}
|
|
27531
|
+
const toolCallPrefix = '{"toolCalls":';
|
|
27532
|
+
return toolCallPrefix.startsWith(trimmedLine) || trimmedLine.startsWith(toolCallPrefix);
|
|
27533
|
+
};
|
|
27534
|
+
/**
|
|
27535
|
+
* Appends model text to accumulated content and emits progress.
|
|
27536
|
+
*/
|
|
27537
|
+
const appendTextChunk = (textChunk) => {
|
|
27538
|
+
if (!textChunk) {
|
|
27539
|
+
return;
|
|
27540
|
+
}
|
|
27541
|
+
content += textChunk;
|
|
27542
|
+
if (!hasReceivedModelOutput && content.trim().length > 0) {
|
|
27543
|
+
hasReceivedModelOutput = true;
|
|
27544
|
+
preparationToolCalls.length = 0;
|
|
27545
|
+
}
|
|
27546
|
+
emitProgress();
|
|
27547
|
+
};
|
|
27548
|
+
/**
|
|
27549
|
+
* Consumes one decoded transport chunk, removing keep-alive pings and tool-call frames.
|
|
27550
|
+
*
|
|
27551
|
+
* Note: Tool-call JSON is line-delimited but may arrive split across transport chunks.
|
|
27552
|
+
*/
|
|
27553
|
+
const processDecodedChunk = (decodedChunk) => {
|
|
27554
|
+
var _a;
|
|
27555
|
+
if (!decodedChunk) {
|
|
27556
|
+
return;
|
|
27557
|
+
}
|
|
27558
|
+
const combinedChunk = pendingToolCallLineFragment + decodedChunk;
|
|
27559
|
+
pendingToolCallLineFragment = '';
|
|
27560
|
+
const hasTrailingNewline = combinedChunk.endsWith('\n') || combinedChunk.endsWith('\r');
|
|
27561
|
+
const lines = combinedChunk.split(/\r?\n/);
|
|
27562
|
+
const trailingFragment = hasTrailingNewline ? '' : ((_a = lines.pop()) !== null && _a !== void 0 ? _a : '');
|
|
27563
|
+
let hasNonEmptyText = false;
|
|
27564
|
+
const textLines = [];
|
|
27565
|
+
for (const line of lines) {
|
|
27566
|
+
const trimmedLine = line.trim();
|
|
27567
|
+
if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
|
|
27568
|
+
continue;
|
|
27569
|
+
}
|
|
27570
|
+
if (tryParseToolCallLine(trimmedLine)) {
|
|
27571
|
+
continue;
|
|
27572
|
+
}
|
|
27573
|
+
textLines.push(line);
|
|
27574
|
+
if (trimmedLine.length > 0) {
|
|
27575
|
+
hasNonEmptyText = true;
|
|
27576
|
+
}
|
|
27577
|
+
}
|
|
27578
|
+
if (trailingFragment !== '') {
|
|
27579
|
+
const trimmedTrailingFragment = trailingFragment.trim();
|
|
27580
|
+
if (isPotentialToolCallLineFragment(trimmedTrailingFragment)) {
|
|
27581
|
+
pendingToolCallLineFragment = trailingFragment;
|
|
27582
|
+
}
|
|
27583
|
+
else {
|
|
27584
|
+
textLines.push(trailingFragment);
|
|
27585
|
+
if (trimmedTrailingFragment.length > 0) {
|
|
27586
|
+
hasNonEmptyText = true;
|
|
27587
|
+
}
|
|
27588
|
+
}
|
|
27589
|
+
}
|
|
27590
|
+
if (!hasNonEmptyText) {
|
|
27591
|
+
return;
|
|
27592
|
+
}
|
|
27593
|
+
appendTextChunk(textLines.join('\n'));
|
|
27594
|
+
};
|
|
26956
27595
|
if (!bookResponse.body) {
|
|
26957
27596
|
content = await bookResponse.text();
|
|
26958
27597
|
}
|
|
@@ -26968,84 +27607,26 @@
|
|
|
26968
27607
|
doneReading = !!done;
|
|
26969
27608
|
if (value) {
|
|
26970
27609
|
const textChunk = decoder.decode(value, { stream: true });
|
|
26971
|
-
|
|
26972
|
-
const textLines = [];
|
|
26973
|
-
const lines = textChunk.split(/\r?\n/);
|
|
26974
|
-
for (const line of lines) {
|
|
26975
|
-
const trimmedLine = line.trim();
|
|
26976
|
-
if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
|
|
26977
|
-
continue;
|
|
26978
|
-
}
|
|
26979
|
-
let isToolCallLine = false;
|
|
26980
|
-
if (trimmedLine.startsWith('{') && trimmedLine.endsWith('}')) {
|
|
26981
|
-
try {
|
|
26982
|
-
const chunk = JSON.parse(trimmedLine);
|
|
26983
|
-
if (chunk.toolCalls) {
|
|
26984
|
-
const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
|
|
26985
|
-
upsertToolCalls(normalizedToolCalls);
|
|
26986
|
-
onProgress({
|
|
26987
|
-
content,
|
|
26988
|
-
modelName: this.modelName,
|
|
26989
|
-
timing: {},
|
|
26990
|
-
usage: {},
|
|
26991
|
-
rawPromptContent: {},
|
|
26992
|
-
rawRequest: {},
|
|
26993
|
-
rawResponse: {},
|
|
26994
|
-
toolCalls: getActiveToolCalls(),
|
|
26995
|
-
});
|
|
26996
|
-
isToolCallLine = true;
|
|
26997
|
-
}
|
|
26998
|
-
}
|
|
26999
|
-
catch (error) {
|
|
27000
|
-
// Ignore non-json lines
|
|
27001
|
-
}
|
|
27002
|
-
}
|
|
27003
|
-
if (!isToolCallLine) {
|
|
27004
|
-
textLines.push(line);
|
|
27005
|
-
if (trimmedLine.length > 0) {
|
|
27006
|
-
hasNonEmptyText = true;
|
|
27007
|
-
}
|
|
27008
|
-
}
|
|
27009
|
-
}
|
|
27010
|
-
if (!hasNonEmptyText) {
|
|
27011
|
-
continue;
|
|
27012
|
-
}
|
|
27013
|
-
const textChunkWithoutToolCalls = textLines.join('\n');
|
|
27014
|
-
content += textChunkWithoutToolCalls;
|
|
27015
|
-
if (!hasReceivedModelOutput && content.trim().length > 0) {
|
|
27016
|
-
hasReceivedModelOutput = true;
|
|
27017
|
-
preparationToolCalls.length = 0;
|
|
27018
|
-
}
|
|
27019
|
-
onProgress({
|
|
27020
|
-
content,
|
|
27021
|
-
modelName: this.modelName,
|
|
27022
|
-
timing: {},
|
|
27023
|
-
usage: {},
|
|
27024
|
-
rawPromptContent: {},
|
|
27025
|
-
rawRequest: {},
|
|
27026
|
-
rawResponse: {},
|
|
27027
|
-
toolCalls: getActiveToolCalls(),
|
|
27028
|
-
});
|
|
27610
|
+
processDecodedChunk(textChunk);
|
|
27029
27611
|
}
|
|
27030
27612
|
}
|
|
27031
27613
|
// Flush any remaining decoder internal state
|
|
27032
27614
|
const lastChunk = decoder.decode();
|
|
27033
27615
|
if (lastChunk) {
|
|
27034
|
-
|
|
27035
|
-
|
|
27036
|
-
|
|
27037
|
-
|
|
27616
|
+
processDecodedChunk(lastChunk);
|
|
27617
|
+
}
|
|
27618
|
+
if (pendingToolCallLineFragment) {
|
|
27619
|
+
const trimmedPending = pendingToolCallLineFragment.trim();
|
|
27620
|
+
if (trimmedPending === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
|
|
27621
|
+
pendingToolCallLineFragment = '';
|
|
27622
|
+
}
|
|
27623
|
+
else if (tryParseToolCallLine(trimmedPending)) {
|
|
27624
|
+
pendingToolCallLineFragment = '';
|
|
27625
|
+
}
|
|
27626
|
+
else {
|
|
27627
|
+
appendTextChunk(pendingToolCallLineFragment);
|
|
27628
|
+
pendingToolCallLineFragment = '';
|
|
27038
27629
|
}
|
|
27039
|
-
onProgress({
|
|
27040
|
-
content: lastChunk,
|
|
27041
|
-
modelName: this.modelName,
|
|
27042
|
-
timing: {},
|
|
27043
|
-
usage: {},
|
|
27044
|
-
rawPromptContent: {},
|
|
27045
|
-
rawRequest: {},
|
|
27046
|
-
rawResponse: {},
|
|
27047
|
-
toolCalls: getActiveToolCalls(),
|
|
27048
|
-
});
|
|
27049
27630
|
}
|
|
27050
27631
|
}
|
|
27051
27632
|
finally {
|
|
@@ -28449,6 +29030,7 @@
|
|
|
28449
29030
|
run_browser: { title: 'Running browser', emoji: '🌐' },
|
|
28450
29031
|
get_current_time: { title: 'Checking time', emoji: '🕒' },
|
|
28451
29032
|
useTime: { title: 'Checking time', emoji: '🕒' },
|
|
29033
|
+
get_user_location: { title: 'Checking location', emoji: '📍' },
|
|
28452
29034
|
send_email: { title: 'Sending email', emoji: '📧' },
|
|
28453
29035
|
useEmail: { title: 'Sending email', emoji: '📧' },
|
|
28454
29036
|
// Add more tools here as needed
|
|
@@ -28709,8 +29291,8 @@
|
|
|
28709
29291
|
return (jsxRuntime.jsxs("div", { className: styles$5.imagePrompt, "aria-live": "polite", children: [jsxRuntime.jsxs("div", { className: styles$5.imagePromptPreview, children: [status === 'success' && imageUrl ? (jsxRuntime.jsx("img", { src: imageUrl, alt: alt, className: styles$5.imagePromptImage })) : (jsxRuntime.jsx("div", { className: styles$5.imagePromptPlaceholder, children: jsxRuntime.jsx("div", { className: styles$5.imagePromptSpinner }) })), status === 'error' && error && jsxRuntime.jsx("div", { className: styles$5.imagePromptError, children: error })] }), jsxRuntime.jsxs("div", { className: styles$5.imagePromptMeta, children: [jsxRuntime.jsx("span", { className: styles$5.imagePromptPrompt, children: trimmedPrompt || 'Generated image' }), jsxRuntime.jsx("span", { className: styles$5.imagePromptStatus, children: statusLabel })] })] }));
|
|
28710
29292
|
}
|
|
28711
29293
|
|
|
28712
|
-
var css_248z$1 = ".ChatMessageMap-module_mapContainer__OBOgP{aspect-ratio:1/1;background:rgba(15,23,36,.94);border:1px solid hsla(0,0%,100%,.12);border-radius:16px;box-shadow:0 14px 50px rgba(2,6,23,.45);margin:16px 0;overflow:hidden;position:relative;width:100%}.ChatMessageMap-module_mapSurface__E713z{border-radius:inherit;height:100%;width:100%}.ChatMessageMap-module_mapControls__2VZT6{display:flex;gap:8px;position:absolute;right:10px;top:10px;z-index:2}.ChatMessageMap-module_mapControlButton__q5pgF{align-items:center;background:rgba(2,6,23,.75);border:none;border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.45);color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease,transform .2s ease;width:38px}.ChatMessageMap-module_mapControlButton__q5pgF:hover{background:rgba(59,130,246,.9);transform:translateY(-1px)}.ChatMessageMap-module_mapControlButton__q5pgF:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBackdrop__uC0ud{align-items:center;background:rgba(2,6,23,.85);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1100}.ChatMessageMap-module_mapModalContent__XaQyP{background:rgba(15,23,42,.98);border:1px solid hsla(0,0%,100%,.08);border-radius:24px;box-shadow:0 30px 70px rgba(2,6,23,.75);display:flex;flex-direction:column;gap:16px;max-height:min(90vh,720px);padding:20px 24px 24px;width:min(92vw,960px)}.ChatMessageMap-module_mapModalHeader__RRj5V{display:flex;justify-content:flex-end}.ChatMessageMap-module_mapModalCloseButton__vUs1S{align-items:center;background:hsla(0,0%,100%,.12);border:none;border-radius:12px;color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease;width:38px}.ChatMessageMap-module_mapModalCloseButton__vUs1S:hover{background:hsla(0,0%,100%,.24)}.ChatMessageMap-module_mapModalCloseButton__vUs1S:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBody__T4vO-{display:flex;flex:1;min-height:320px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:16px;flex:1;height:100%;width:100%}@media (max-width:640px){.ChatMessageMap-module_mapContainer__OBOgP{border-radius:12px;margin:12px 0}.ChatMessageMap-module_mapControlButton__q5pgF{height:34px;width:34px}.ChatMessageMap-module_mapModalContent__XaQyP{border-radius:18px;max-height:90vh;padding:16px;width:100%}.ChatMessageMap-module_mapModalBody__T4vO-{min-height:260px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:12px}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXRNZXNzYWdlTWFwLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBTUksZ0JBQW1CLENBRm5CLDZCQUFrQyxDQURsQyxvQ0FBMkMsQ0FEM0Msa0JBQW1CLENBTW5CLHVDQUE0QyxDQUQ1QyxhQUFjLENBRmQsZUFBZ0IsQ0FJaEIsaUJBQWtCLENBUmxCLFVBU0osQ0FFQSx5Q0FHSSxxQkFBc0IsQ0FEdEIsV0FBWSxDQURaLFVBR0osQ0FFQSwwQ0FJSSxZQUFhLENBQ2IsT0FBUSxDQUpSLGlCQUFrQixDQUVsQixVQUFXLENBRFgsUUFBUyxDQUlULFNBQ0osQ0FFQSwrQ0FRSSxrQkFBbUIsQ0FIbkIsMkJBQWdDLENBRGhDLFdBQVksQ0FEWixrQkFBbUIsQ0FRbkIsc0NBQTJDLENBTDNDLGFBQWMsQ0FJZCxjQUFlLENBSGYsbUJBQW9CLENBTHBCLFdBQVksQ0FPWixzQkFBdUIsQ0FHdkIsaURBQXFELENBWHJELFVBWUosQ0FFQSxxREFDSSw4QkFBbUMsQ0FDbkMsMEJBQ0osQ0FFQSw2REFDSSx5QkFBMEIsQ0FDMUIsa0JBQ0osQ0FFQSwrQ0FNSSxrQkFBbUIsQ0FIbkIsMkJBQWdDLENBRWhDLFlBQWEsQ0FIYixPQUFRLENBS1Isc0JBQXVCLENBQ3ZCLFlBQWEsQ0FQYixjQUFlLENBR2YsWUFLSixDQUVBLDhDQUNJLDZCQUFrQyxDQVNsQyxvQ0FBMkMsQ0FSM0Msa0JBQW1CLENBR25CLHVDQUE0QyxDQUM1QyxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLFFBQVMsQ0FKVCwwQkFBNEIsQ0FLNUIsc0JBQXVCLENBTnZCLHFCQVFKLENBRUEsNkNBQ0ksWUFBYSxDQUNiLHdCQUNKLENBRUEsa0RBUUksa0JBQW1CLENBSG5CLDhCQUFxQyxDQURyQyxXQUFZLENBRFosa0JBQW1CLENBR25CLGFBQWMsQ0FJZCxjQUFlLENBSGYsbUJBQW9CLENBTHBCLFdBQVksQ0FPWixzQkFBdUIsQ0FFdkIsOEJBQWdDLENBVmhDLFVBV0osQ0FFQSx3REFDSSw4QkFDSixDQUVBLGdFQUNJLHlCQUEwQixDQUMxQixrQkFDSixDQUVBLDJDQUdJLFlBQWEsQ0FGYixNQUFPLENBQ1AsZ0JBRUosQ0FFQSw4Q0FFSSxrQkFBbUIsQ0FEbkIsTUFBTyxDQUdQLFdBQVksQ0FEWixVQUVKLENBRUEseUJBQ0ksMkNBQ0ksa0JBQW1CLENBQ25CLGFBQ0osQ0FFQSwrQ0FFSSxXQUFZLENBRFosVUFFSixDQUVBLDhDQUlJLGtCQUFtQixDQUZuQixlQUFnQixDQUNoQixZQUFhLENBRmIsVUFJSixDQUVBLDJDQUNJLGdCQUNKLENBRUEsOENBQ0ksa0JBQ0osQ0FDSiIsImZpbGUiOiJDaGF0TWVzc2FnZU1hcC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLm1hcENvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCAzNiwgMC45NCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIG1hcmdpbjogMTZweCAwO1xuICAgIGJveC1zaGFkb3c6IDAgMTRweCA1MHB4IHJnYmEoMiwgNiwgMjMsIDAuNDUpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1hcFN1cmZhY2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xufVxuXG4ubWFwQ29udHJvbHMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICB6LWluZGV4OiAyO1xufVxuXG4ubWFwQ29udHJvbEJ1dHRvbiB7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMiwgNiwgMjMsIDAuNzUpO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyLCA2LCAyMywgMC40NSk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5tYXBDb250cm9sQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC45KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5tYXBDb250cm9sQnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMzhiZGY4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5tYXBNb2RhbEJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyLCA2LCAyMywgMC44NSk7XG4gICAgei1pbmRleDogMTEwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLm1hcE1vZGFsQ29udGVudCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjk4KTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHdpZHRoOiBtaW4oOTJ2dywgOTYwcHgpO1xuICAgIG1heC1oZWlnaHQ6IG1pbig5MHZoLCA3MjBweCk7XG4gICAgYm94LXNoYWRvdzogMCAzMHB4IDcwcHggcmdiYSgyLCA2LCAyMywgMC43NSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHggMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuXG4ubWFwTW9kYWxIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1hcE1vZGFsQ2xvc2VCdXR0b24ge1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlO1xufVxuXG4ubWFwTW9kYWxDbG9zZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTtcbn1cblxuLm1hcE1vZGFsQ2xvc2VCdXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMzOGJkZjg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLm1hcE1vZGFsQm9keSB7XG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAzMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWFwTW9kYWxTdXJmYWNlIHtcbiAgICBmbGV4OiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICAubWFwQ29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgfVxuXG4gICAgLm1hcENvbnRyb2xCdXR0b24ge1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgIH1cblxuICAgIC5tYXBNb2RhbENvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICB9XG5cbiAgICAubWFwTW9kYWxCb2R5IHtcbiAgICAgICAgbWluLWhlaWdodDogMjYwcHg7XG4gICAgfVxuXG4gICAgLm1hcE1vZGFsU3VyZmFjZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgfVxufVxuIl19 */";
|
|
28713
|
-
var styles$1 = {"mapContainer":"ChatMessageMap-module_mapContainer__OBOgP","mapSurface":"ChatMessageMap-module_mapSurface__E713z","mapControls":"ChatMessageMap-module_mapControls__2VZT6","mapControlButton":"ChatMessageMap-module_mapControlButton__q5pgF","mapModalBackdrop":"ChatMessageMap-module_mapModalBackdrop__uC0ud","mapModalContent":"ChatMessageMap-module_mapModalContent__XaQyP","mapModalHeader":"ChatMessageMap-module_mapModalHeader__RRj5V","mapModalCloseButton":"ChatMessageMap-module_mapModalCloseButton__vUs1S","mapModalBody":"ChatMessageMap-module_mapModalBody__T4vO-","mapModalSurface":"ChatMessageMap-module_mapModalSurface__FWJgn"};
|
|
29294
|
+
var css_248z$1 = ".ChatMessageMap-module_mapContainer__OBOgP{aspect-ratio:1/1;background:rgba(15,23,36,.94);border:1px solid hsla(0,0%,100%,.12);border-radius:16px;box-shadow:0 14px 50px rgba(2,6,23,.45);margin:16px 0;overflow:hidden;position:relative;width:100%}.ChatMessageMap-module_mapSurface__E713z{border-radius:inherit;height:100%;width:100%}.ChatMessageMap-module_poiMarkerIcon__LPNik{align-items:center;background:radial-gradient(circle at 30% 30%,#fdf7c1,#fb923c 60%,#ea580c);border-radius:50%;box-shadow:0 6px 18px rgba(249,115,22,.5),inset 0 0 10px rgba(251,191,36,.6);display:inline-flex;font-weight:600;height:38px;justify-content:center;position:relative;transform:translateZ(0);width:38px}.ChatMessageMap-module_poiMarkerPulse__5flBS{animation:ChatMessageMap-module_poiPulse__O5mLt 1.6s ease-out infinite;background:rgba(251,146,60,.35);border-radius:50%;filter:blur(.5px);inset:0;position:absolute}.ChatMessageMap-module_poiMarkerInitial__HfA6H{color:#0f172a;font-size:12px;letter-spacing:.05em;line-height:1;text-transform:uppercase;z-index:1}.ChatMessageMap-module_mapTooltip__p4sIO{background:rgba(15,23,42,.95)!important;border:1px solid rgba(56,189,248,.45)!important;border-radius:999px!important;box-shadow:0 10px 25px rgba(2,6,23,.6)!important;color:#f8fafc!important;font-size:.75rem;padding:4px 12px!important;pointer-events:none}@keyframes ChatMessageMap-module_poiPulse__O5mLt{0%{opacity:.6;transform:scale(.6)}70%{opacity:0;transform:scale(1.2)}to{opacity:0}}.ChatMessageMap-module_mapControls__2VZT6{display:flex;gap:8px;position:absolute;right:10px;top:10px;z-index:2}.ChatMessageMap-module_mapControlButton__q5pgF{align-items:center;background:rgba(2,6,23,.75);border:none;border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,.45);color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease,transform .2s ease;width:38px}.ChatMessageMap-module_mapControlButton__q5pgF:hover{background:rgba(59,130,246,.9);transform:translateY(-1px)}.ChatMessageMap-module_mapControlButton__q5pgF:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBackdrop__uC0ud{align-items:center;background:rgba(2,6,23,.85);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1100}.ChatMessageMap-module_mapModalContent__XaQyP{background:rgba(15,23,42,.98);border:1px solid hsla(0,0%,100%,.08);border-radius:24px;box-shadow:0 30px 70px rgba(2,6,23,.75);display:flex;flex-direction:column;gap:16px;max-height:min(90vh,720px);padding:20px 24px 24px;width:min(92vw,960px)}.ChatMessageMap-module_mapModalHeader__RRj5V{display:flex;justify-content:flex-end}.ChatMessageMap-module_mapModalCloseButton__vUs1S{align-items:center;background:hsla(0,0%,100%,.12);border:none;border-radius:12px;color:#f8fafc;cursor:pointer;display:inline-flex;height:38px;justify-content:center;transition:background .2s ease;width:38px}.ChatMessageMap-module_mapModalCloseButton__vUs1S:hover{background:hsla(0,0%,100%,.24)}.ChatMessageMap-module_mapModalCloseButton__vUs1S:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.ChatMessageMap-module_mapModalBody__T4vO-{display:flex;flex:1;min-height:320px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:16px;flex:1;height:100%;width:100%}@media (max-width:640px){.ChatMessageMap-module_mapContainer__OBOgP{border-radius:12px;margin:12px 0}.ChatMessageMap-module_mapControlButton__q5pgF{height:34px;width:34px}.ChatMessageMap-module_mapModalContent__XaQyP{border-radius:18px;max-height:90vh;padding:16px;width:100%}.ChatMessageMap-module_mapModalBody__T4vO-{min-height:260px}.ChatMessageMap-module_mapModalSurface__FWJgn{border-radius:12px}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXRNZXNzYWdlTWFwLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBTUksZ0JBQW1CLENBRm5CLDZCQUFrQyxDQURsQyxvQ0FBMkMsQ0FEM0Msa0JBQW1CLENBTW5CLHVDQUE0QyxDQUQ1QyxhQUFjLENBRmQsZUFBZ0IsQ0FJaEIsaUJBQWtCLENBUmxCLFVBU0osQ0FFQSx5Q0FHSSxxQkFBc0IsQ0FEdEIsV0FBWSxDQURaLFVBR0osQ0FFQSw0Q0FPSSxrQkFBbUIsQ0FIbkIseUVBQTZFLENBRDdFLGlCQUFrQixDQUVsQiw0RUFBc0YsQ0FDdEYsbUJBQW9CLENBSXBCLGVBQWdCLENBUmhCLFdBQVksQ0FNWixzQkFBdUIsQ0FDdkIsaUJBQWtCLENBRWxCLHVCQUErQixDQVYvQixVQVdKLENBRUEsNkNBS0ksc0VBQTBDLENBRDFDLCtCQUFvQyxDQURwQyxpQkFBa0IsQ0FHbEIsaUJBQW1CLENBSm5CLE9BQVEsQ0FEUixpQkFNSixDQUVBLCtDQUVJLGFBQWMsQ0FDZCxjQUFlLENBR2Ysb0JBQXNCLENBRnRCLGFBQWMsQ0FDZCx3QkFBeUIsQ0FKekIsU0FNSixDQUVBLHlDQUNJLHVDQUE2QyxDQUM3QywrQ0FBcUQsQ0FFckQsNkJBQStCLENBRy9CLGdEQUFzRCxDQUp0RCx1QkFBeUIsQ0FHekIsZ0JBQWtCLENBRGxCLDBCQUE0QixDQUc1QixtQkFDSixDQUVBLGlEQUNJLEdBRUksVUFBWSxDQURaLG1CQUVKLENBQ0EsSUFFSSxTQUFVLENBRFYsb0JBRUosQ0FDQSxHQUNJLFNBQ0osQ0FDSixDQUVBLDBDQUlJLFlBQWEsQ0FDYixPQUFRLENBSlIsaUJBQWtCLENBRWxCLFVBQVcsQ0FEWCxRQUFTLENBSVQsU0FDSixDQUVBLCtDQVFJLGtCQUFtQixDQUhuQiwyQkFBZ0MsQ0FEaEMsV0FBWSxDQURaLGtCQUFtQixDQVFuQixzQ0FBMkMsQ0FMM0MsYUFBYyxDQUlkLGNBQWUsQ0FIZixtQkFBb0IsQ0FMcEIsV0FBWSxDQU9aLHNCQUF1QixDQUd2QixpREFBcUQsQ0FYckQsVUFZSixDQUVBLHFEQUNJLDhCQUFtQyxDQUNuQywwQkFDSixDQUVBLDZEQUNJLHlCQUEwQixDQUMxQixrQkFDSixDQUVBLCtDQU1JLGtCQUFtQixDQUhuQiwyQkFBZ0MsQ0FFaEMsWUFBYSxDQUhiLE9BQVEsQ0FLUixzQkFBdUIsQ0FDdkIsWUFBYSxDQVBiLGNBQWUsQ0FHZixZQUtKLENBRUEsOENBQ0ksNkJBQWtDLENBU2xDLG9DQUEyQyxDQVIzQyxrQkFBbUIsQ0FHbkIsdUNBQTRDLENBQzVDLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsUUFBUyxDQUpULDBCQUE0QixDQUs1QixzQkFBdUIsQ0FOdkIscUJBUUosQ0FFQSw2Q0FDSSxZQUFhLENBQ2Isd0JBQ0osQ0FFQSxrREFRSSxrQkFBbUIsQ0FIbkIsOEJBQXFDLENBRHJDLFdBQVksQ0FEWixrQkFBbUIsQ0FHbkIsYUFBYyxDQUlkLGNBQWUsQ0FIZixtQkFBb0IsQ0FMcEIsV0FBWSxDQU9aLHNCQUF1QixDQUV2Qiw4QkFBZ0MsQ0FWaEMsVUFXSixDQUVBLHdEQUNJLDhCQUNKLENBRUEsZ0VBQ0kseUJBQTBCLENBQzFCLGtCQUNKLENBRUEsMkNBR0ksWUFBYSxDQUZiLE1BQU8sQ0FDUCxnQkFFSixDQUVBLDhDQUVJLGtCQUFtQixDQURuQixNQUFPLENBR1AsV0FBWSxDQURaLFVBRUosQ0FFQSx5QkFDSSwyQ0FDSSxrQkFBbUIsQ0FDbkIsYUFDSixDQUVBLCtDQUVJLFdBQVksQ0FEWixVQUVKLENBRUEsOENBSUksa0JBQW1CLENBRm5CLGVBQWdCLENBQ2hCLFlBQWEsQ0FGYixVQUlKLENBRUEsMkNBQ0ksZ0JBQ0osQ0FFQSw4Q0FDSSxrQkFDSixDQUNKIiwiZmlsZSI6IkNoYXRNZXNzYWdlTWFwLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIubWFwQ29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDM2LCAwLjk0KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgYm94LXNoYWRvdzogMCAxNHB4IDUwcHggcmdiYSgyLCA2LCAyMywgMC40NSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWFwU3VyZmFjZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG5cbi5wb2lNYXJrZXJJY29uIHtcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzAlIDMwJSwgI2ZkZjdjMSwgI2ZiOTIzYyA2MCUsICNlYTU4MGMpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyNDksIDExNSwgMjIsIDAuNSksIGluc2V0IDAgMCAxMHB4IHJnYmEoMjUxLCAxOTEsIDM2LCAwLjYpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnBvaU1hcmtlclB1bHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjUxLCAxNDYsIDYwLCAwLjM1KTtcbiAgICBhbmltYXRpb246IHBvaVB1bHNlIDEuNnMgZWFzZS1vdXQgaW5maW5pdGU7XG4gICAgZmlsdGVyOiBibHVyKDAuNXB4KTtcbn1cblxuLnBvaU1hcmtlckluaXRpYWwge1xuICAgIHotaW5kZXg6IDE7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cblxuLm1hcFRvb2x0aXAge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC45NSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU2LCAxODksIDI0OCwgMC40NSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2Y4ZmFmYyAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogNHB4IDEycHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgyLCA2LCAyMywgMC42KSAhaW1wb3J0YW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5Aa2V5ZnJhbWVzIHBvaVB1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbiAgICA3MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuLm1hcENvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gICAgei1pbmRleDogMjtcbn1cblxuLm1hcENvbnRyb2xCdXR0b24ge1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIsIDYsIDIzLCAwLjc1KTtcbiAgICBjb2xvcjogI2Y4ZmFmYztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMiwgNiwgMjMsIDAuNDUpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4ubWFwQ29udHJvbEJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1OSwgMTMwLCAyNDYsIDAuOSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ubWFwQ29udHJvbEJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzM4YmRmODtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubWFwTW9kYWxCYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMiwgNiwgMjMsIDAuODUpO1xuICAgIHotaW5kZXg6IDExMDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5tYXBNb2RhbENvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC45OCk7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICB3aWR0aDogbWluKDkydncsIDk2MHB4KTtcbiAgICBtYXgtaGVpZ2h0OiBtaW4oOTB2aCwgNzIwcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMzBweCA3MHB4IHJnYmEoMiwgNiwgMjMsIDAuNzUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjBweCAyNHB4IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cblxuLm1hcE1vZGFsSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tYXBNb2RhbENsb3NlQnV0dG9uIHtcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICBjb2xvcjogI2Y4ZmFmYztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbn1cblxuLm1hcE1vZGFsQ2xvc2VCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCk7XG59XG5cbi5tYXBNb2RhbENsb3NlQnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMzhiZGY4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5tYXBNb2RhbEJvZHkge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLWhlaWdodDogMzIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm1hcE1vZGFsU3VyZmFjZSB7XG4gICAgZmxleDogMTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gICAgLm1hcENvbnRhaW5lciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgIH1cblxuICAgIC5tYXBDb250cm9sQnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICB9XG5cbiAgICAubWFwTW9kYWxDb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDkwdmg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgfVxuXG4gICAgLm1hcE1vZGFsQm9keSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI2MHB4O1xuICAgIH1cblxuICAgIC5tYXBNb2RhbFN1cmZhY2Uge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIH1cbn1cbiJdfQ== */";
|
|
29295
|
+
var styles$1 = {"mapContainer":"ChatMessageMap-module_mapContainer__OBOgP","mapSurface":"ChatMessageMap-module_mapSurface__E713z","poiMarkerIcon":"ChatMessageMap-module_poiMarkerIcon__LPNik","poiMarkerPulse":"ChatMessageMap-module_poiMarkerPulse__5flBS","poiPulse":"ChatMessageMap-module_poiPulse__O5mLt","poiMarkerInitial":"ChatMessageMap-module_poiMarkerInitial__HfA6H","mapTooltip":"ChatMessageMap-module_mapTooltip__p4sIO","mapControls":"ChatMessageMap-module_mapControls__2VZT6","mapControlButton":"ChatMessageMap-module_mapControlButton__q5pgF","mapModalBackdrop":"ChatMessageMap-module_mapModalBackdrop__uC0ud","mapModalContent":"ChatMessageMap-module_mapModalContent__XaQyP","mapModalHeader":"ChatMessageMap-module_mapModalHeader__RRj5V","mapModalCloseButton":"ChatMessageMap-module_mapModalCloseButton__vUs1S","mapModalBody":"ChatMessageMap-module_mapModalBody__T4vO-","mapModalSurface":"ChatMessageMap-module_mapModalSurface__FWJgn"};
|
|
28714
29296
|
styleInject(css_248z$1);
|
|
28715
29297
|
|
|
28716
29298
|
/**
|
|
@@ -28719,6 +29301,206 @@
|
|
|
28719
29301
|
* @private internal helper of `<ChatMessageItem/>`
|
|
28720
29302
|
*/
|
|
28721
29303
|
const DEFAULT_LAYER_ID = 'chat-message-map-layer';
|
|
29304
|
+
/**
|
|
29305
|
+
* Style tokens used to make GeoJSON paths and polygons feel more modern.
|
|
29306
|
+
*
|
|
29307
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29308
|
+
*/
|
|
29309
|
+
const GEOJSON_STYLE_PRESETS = {
|
|
29310
|
+
polygon: {
|
|
29311
|
+
color: '#38bdf8',
|
|
29312
|
+
weight: 2,
|
|
29313
|
+
opacity: 0.95,
|
|
29314
|
+
fillColor: 'rgba(59, 130, 246, 0.28)',
|
|
29315
|
+
fillOpacity: 0.35,
|
|
29316
|
+
dashArray: '6 8',
|
|
29317
|
+
lineCap: 'round',
|
|
29318
|
+
lineJoin: 'round',
|
|
29319
|
+
},
|
|
29320
|
+
line: {
|
|
29321
|
+
color: '#67e8f9',
|
|
29322
|
+
weight: 3,
|
|
29323
|
+
opacity: 0.92,
|
|
29324
|
+
dashArray: '5 7',
|
|
29325
|
+
lineCap: 'round',
|
|
29326
|
+
lineJoin: 'round',
|
|
29327
|
+
},
|
|
29328
|
+
highlight: {
|
|
29329
|
+
color: '#7dd3fc',
|
|
29330
|
+
weight: 4,
|
|
29331
|
+
fillOpacity: 0.55,
|
|
29332
|
+
},
|
|
29333
|
+
default: {
|
|
29334
|
+
color: '#6ee7b7',
|
|
29335
|
+
weight: 2.5,
|
|
29336
|
+
opacity: 0.9,
|
|
29337
|
+
dashArray: '4 6',
|
|
29338
|
+
lineCap: 'round',
|
|
29339
|
+
lineJoin: 'round',
|
|
29340
|
+
},
|
|
29341
|
+
};
|
|
29342
|
+
/**
|
|
29343
|
+
* Dimensions and anchor offsets for the custom point-of-interest markers.
|
|
29344
|
+
*
|
|
29345
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29346
|
+
*/
|
|
29347
|
+
const POI_MARKER_CONFIG = {
|
|
29348
|
+
size: 38,
|
|
29349
|
+
anchor: [19, 19],
|
|
29350
|
+
};
|
|
29351
|
+
/**
|
|
29352
|
+
* Offset used for map tooltips so labels sit above the features.
|
|
29353
|
+
*
|
|
29354
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29355
|
+
*/
|
|
29356
|
+
const MAP_TOOLTIP_OFFSET = [0, -20];
|
|
29357
|
+
/**
|
|
29358
|
+
* Returns the preferred label for a GeoJSON feature by checking common property keys.
|
|
29359
|
+
*
|
|
29360
|
+
* @param feature - Feature to inspect for identifying properties.
|
|
29361
|
+
* @returns A trimmed string label or `null` when no candidate is available.
|
|
29362
|
+
*
|
|
29363
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29364
|
+
*/
|
|
29365
|
+
function getGeoJsonFeatureLabel(feature) {
|
|
29366
|
+
const properties = feature.properties;
|
|
29367
|
+
if (properties && typeof properties === 'object') {
|
|
29368
|
+
const bag = properties;
|
|
29369
|
+
for (const key of ['name', 'title', 'label', 'description']) {
|
|
29370
|
+
const value = bag[key];
|
|
29371
|
+
if (typeof value === 'string' && value.trim().length > 0) {
|
|
29372
|
+
return value.trim();
|
|
29373
|
+
}
|
|
29374
|
+
}
|
|
29375
|
+
}
|
|
29376
|
+
if (typeof feature.id === 'string' && feature.id.trim().length > 0) {
|
|
29377
|
+
return feature.id.trim();
|
|
29378
|
+
}
|
|
29379
|
+
if (typeof feature.id === 'number') {
|
|
29380
|
+
return feature.id.toString();
|
|
29381
|
+
}
|
|
29382
|
+
return null;
|
|
29383
|
+
}
|
|
29384
|
+
/**
|
|
29385
|
+
* Provides a base style object for GeoJSON paths so polygons, lines, and fallbacks get distinct strokes.
|
|
29386
|
+
*
|
|
29387
|
+
* @param feature - Feature driving the style calculation.
|
|
29388
|
+
* @returns A fresh `PathOptions` instance describing stroke/fill tokens.
|
|
29389
|
+
*
|
|
29390
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29391
|
+
*/
|
|
29392
|
+
function getGeoJsonFeatureStyle(feature) {
|
|
29393
|
+
var _a;
|
|
29394
|
+
const geometryType = (_a = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _a === void 0 ? void 0 : _a.type;
|
|
29395
|
+
if (geometryType === 'Polygon' || geometryType === 'MultiPolygon') {
|
|
29396
|
+
return { ...GEOJSON_STYLE_PRESETS.polygon };
|
|
29397
|
+
}
|
|
29398
|
+
if (geometryType === 'LineString' || geometryType === 'MultiLineString') {
|
|
29399
|
+
return { ...GEOJSON_STYLE_PRESETS.line };
|
|
29400
|
+
}
|
|
29401
|
+
return { ...GEOJSON_STYLE_PRESETS.default };
|
|
29402
|
+
}
|
|
29403
|
+
/**
|
|
29404
|
+
* Builds a highlighted style variant for hover states while respecting the base tokens.
|
|
29405
|
+
*
|
|
29406
|
+
* @param baseStyle - Style to ramp up for the hover effect.
|
|
29407
|
+
* @returns A new `PathOptions` instance with stronger stroke/fill emphasis.
|
|
29408
|
+
*
|
|
29409
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29410
|
+
*/
|
|
29411
|
+
function getGeoJsonHighlightStyle(baseStyle) {
|
|
29412
|
+
var _a, _b, _c;
|
|
29413
|
+
return {
|
|
29414
|
+
...baseStyle,
|
|
29415
|
+
color: (_a = GEOJSON_STYLE_PRESETS.highlight.color) !== null && _a !== void 0 ? _a : baseStyle.color,
|
|
29416
|
+
weight: Math.max((_b = baseStyle.weight) !== null && _b !== void 0 ? _b : 2, 1) * 1.3,
|
|
29417
|
+
fillOpacity: Math.min(0.6, ((_c = baseStyle.fillOpacity) !== null && _c !== void 0 ? _c : 0.2) + 0.25),
|
|
29418
|
+
};
|
|
29419
|
+
}
|
|
29420
|
+
/**
|
|
29421
|
+
* Guards Leaflet layers that support `setStyle`.
|
|
29422
|
+
*
|
|
29423
|
+
* @param layer - Candidate Leaflet layer to check.
|
|
29424
|
+
* @returns `true` when the supplied layer exposes `Path` styling helpers.
|
|
29425
|
+
*
|
|
29426
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29427
|
+
*/
|
|
29428
|
+
function isLeafletPathLayer(layer) {
|
|
29429
|
+
return typeof layer.setStyle === 'function';
|
|
29430
|
+
}
|
|
29431
|
+
/**
|
|
29432
|
+
* Attaches tooltips, hover highlights, and accessibility helpers to GeoJSON layers.
|
|
29433
|
+
*
|
|
29434
|
+
* @param feature - Feature backing the Leaflet layer.
|
|
29435
|
+
* @param layer - Leaflet layer created for the feature.
|
|
29436
|
+
*
|
|
29437
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29438
|
+
*/
|
|
29439
|
+
function decorateGeoJsonLayer(feature, layer) {
|
|
29440
|
+
const label = getGeoJsonFeatureLabel(feature);
|
|
29441
|
+
if (label) {
|
|
29442
|
+
layer.bindTooltip(label, {
|
|
29443
|
+
direction: 'top',
|
|
29444
|
+
offset: MAP_TOOLTIP_OFFSET,
|
|
29445
|
+
className: styles$1.mapTooltip,
|
|
29446
|
+
});
|
|
29447
|
+
}
|
|
29448
|
+
if (!isLeafletPathLayer(layer)) {
|
|
29449
|
+
return;
|
|
29450
|
+
}
|
|
29451
|
+
const baseStyle = getGeoJsonFeatureStyle(feature);
|
|
29452
|
+
layer.on('mouseover', () => {
|
|
29453
|
+
layer.setStyle(getGeoJsonHighlightStyle(baseStyle));
|
|
29454
|
+
});
|
|
29455
|
+
layer.on('mouseout', () => {
|
|
29456
|
+
layer.setStyle(baseStyle);
|
|
29457
|
+
});
|
|
29458
|
+
}
|
|
29459
|
+
/**
|
|
29460
|
+
* Renders a custom point-of-interest marker for point features.
|
|
29461
|
+
*
|
|
29462
|
+
* @param feature - Feature describing the point.
|
|
29463
|
+
* @param latlng - Coordinates where the marker should appear.
|
|
29464
|
+
* @returns Leaflet marker with layered glow and optional initial text.
|
|
29465
|
+
*
|
|
29466
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29467
|
+
*/
|
|
29468
|
+
function createPointOfInterestMarker(feature, latlng) {
|
|
29469
|
+
const label = getGeoJsonFeatureLabel(feature);
|
|
29470
|
+
const initial = label ? label.trim().charAt(0).toLocaleUpperCase() : '';
|
|
29471
|
+
const initialHtml = initial
|
|
29472
|
+
? `<span class="${styles$1.poiMarkerInitial}" aria-hidden="true">${escapeHtml(initial)}</span>`
|
|
29473
|
+
: '';
|
|
29474
|
+
const icon = L__default["default"].divIcon({
|
|
29475
|
+
className: styles$1.poiMarkerIcon,
|
|
29476
|
+
html: `
|
|
29477
|
+
<span class="${styles$1.poiMarkerPulse}" aria-hidden="true"></span>
|
|
29478
|
+
${initialHtml}
|
|
29479
|
+
`.trim(),
|
|
29480
|
+
iconSize: [POI_MARKER_CONFIG.size, POI_MARKER_CONFIG.size],
|
|
29481
|
+
iconAnchor: POI_MARKER_CONFIG.anchor,
|
|
29482
|
+
});
|
|
29483
|
+
return L__default["default"].marker(latlng, {
|
|
29484
|
+
icon,
|
|
29485
|
+
riseOnHover: true,
|
|
29486
|
+
});
|
|
29487
|
+
}
|
|
29488
|
+
/**
|
|
29489
|
+
* Escapes HTML-sensitive characters to keep raw GeoJSON properties safe when injected into markup.
|
|
29490
|
+
*
|
|
29491
|
+
* @param value - Source string to escape.
|
|
29492
|
+
* @returns Escaped string safe for insertion into HTML fragments.
|
|
29493
|
+
*
|
|
29494
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29495
|
+
*/
|
|
29496
|
+
function escapeHtml(value) {
|
|
29497
|
+
return value
|
|
29498
|
+
.replace(/&/g, '&')
|
|
29499
|
+
.replace(/</g, '<')
|
|
29500
|
+
.replace(/>/g, '>')
|
|
29501
|
+
.replace(/"/g, '"')
|
|
29502
|
+
.replace(/'/g, ''');
|
|
29503
|
+
}
|
|
28722
29504
|
/**
|
|
28723
29505
|
* Custom hook that renders a Leaflet map inside the provided container and keeps it synced with the geojson payload.
|
|
28724
29506
|
*
|
|
@@ -28754,17 +29536,9 @@
|
|
|
28754
29536
|
});
|
|
28755
29537
|
layer.addTo(map);
|
|
28756
29538
|
const geoJsonLayer = L__default["default"].geoJSON(data, {
|
|
28757
|
-
style:
|
|
28758
|
-
|
|
28759
|
-
|
|
28760
|
-
}),
|
|
28761
|
-
pointToLayer: (_feature, latlng) => L__default["default"].circleMarker(latlng, {
|
|
28762
|
-
radius: 6,
|
|
28763
|
-
fillColor: '#f59e0b',
|
|
28764
|
-
color: '#fbbf24',
|
|
28765
|
-
weight: 2,
|
|
28766
|
-
fillOpacity: 0.9,
|
|
28767
|
-
}),
|
|
29539
|
+
style: getGeoJsonFeatureStyle,
|
|
29540
|
+
pointToLayer: (feature, latlng) => createPointOfInterestMarker(feature, latlng),
|
|
29541
|
+
onEachFeature: (feature, layer) => decorateGeoJsonLayer(feature, layer),
|
|
28768
29542
|
});
|
|
28769
29543
|
geoJsonLayer.addTo(map);
|
|
28770
29544
|
const bounds = geoJsonLayer.getBounds();
|
|
@@ -29126,11 +29900,10 @@
|
|
|
29126
29900
|
* Builds the label for an ongoing tool call group.
|
|
29127
29901
|
*/
|
|
29128
29902
|
function buildOngoingToolCallLabel(group) {
|
|
29129
|
-
|
|
29130
|
-
return appendOngoingToolCallCount(baseLabel, group.count);
|
|
29903
|
+
return appendOngoingToolCallCount(group.label, group.count);
|
|
29131
29904
|
}
|
|
29132
29905
|
/**
|
|
29133
|
-
* Extracts the assistant preparation phase
|
|
29906
|
+
* Extracts the assistant preparation phase from one tool call, when present.
|
|
29134
29907
|
*/
|
|
29135
29908
|
function getOngoingToolCallPreparationPhase(toolCall) {
|
|
29136
29909
|
if (!isAssistantPreparationToolCall(toolCall)) {
|
|
@@ -29139,6 +29912,21 @@
|
|
|
29139
29912
|
const toolArguments = parseToolCallArguments(toolCall);
|
|
29140
29913
|
return typeof toolArguments.phase === 'string' ? toolArguments.phase : undefined;
|
|
29141
29914
|
}
|
|
29915
|
+
/**
|
|
29916
|
+
* Resolves shared chip text for one tool call.
|
|
29917
|
+
*
|
|
29918
|
+
* This helper is intentionally reused for both ongoing and completed tool-call chips.
|
|
29919
|
+
*/
|
|
29920
|
+
function resolveToolCallChipLabel(toolCall, options = {}) {
|
|
29921
|
+
const { chipletInfo } = options;
|
|
29922
|
+
const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
|
|
29923
|
+
if (preparationPhase) {
|
|
29924
|
+
const toolInfo = TOOL_TITLES[toolCall.name];
|
|
29925
|
+
const preparationTitle = (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || toolCall.name;
|
|
29926
|
+
return `${preparationTitle}: ${preparationPhase}`;
|
|
29927
|
+
}
|
|
29928
|
+
return buildToolCallChipText(chipletInfo || getToolCallChipletInfo(toolCall));
|
|
29929
|
+
}
|
|
29142
29930
|
/**
|
|
29143
29931
|
* Builds a stable participant identity for ongoing tool call grouping.
|
|
29144
29932
|
*/
|
|
@@ -29173,15 +29961,17 @@
|
|
|
29173
29961
|
/**
|
|
29174
29962
|
* Groups ongoing tool calls by tool identity to avoid duplicate chips.
|
|
29175
29963
|
*/
|
|
29176
|
-
function groupOngoingToolCalls(toolCalls,
|
|
29964
|
+
function groupOngoingToolCalls(toolCalls, teammates) {
|
|
29177
29965
|
if (!toolCalls || toolCalls.length === 0) {
|
|
29178
29966
|
return [];
|
|
29179
29967
|
}
|
|
29180
29968
|
const grouped = new Map();
|
|
29181
29969
|
const ordered = [];
|
|
29182
29970
|
for (const toolCall of toolCalls) {
|
|
29971
|
+
const chipletInfo = getToolCallChipletInfo(toolCall);
|
|
29972
|
+
const label = resolveToolCallChipLabel(toolCall, { chipletInfo });
|
|
29183
29973
|
const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
|
|
29184
|
-
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates);
|
|
29974
|
+
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
|
|
29185
29975
|
const participantKey = getOngoingToolCallParticipantKey(teamAgentData);
|
|
29186
29976
|
const groupKey = getOngoingToolCallGroupKey(toolCall, {
|
|
29187
29977
|
preparationPhase,
|
|
@@ -29192,17 +29982,11 @@
|
|
|
29192
29982
|
existing.count += 1;
|
|
29193
29983
|
continue;
|
|
29194
29984
|
}
|
|
29195
|
-
const toolInfo = TOOL_TITLES[toolCall.name];
|
|
29196
|
-
const isTeamTool = isTeamToolName(toolCall.name);
|
|
29197
|
-
const toolTitle = (toolTitles === null || toolTitles === void 0 ? void 0 : toolTitles[toolCall.name]) || (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || (isTeamTool ? 'Consulting teammate' : undefined);
|
|
29198
|
-
const displayTitle = preparationPhase ? `${toolTitle || toolCall.name}: ${preparationPhase}` : toolTitle;
|
|
29199
|
-
const emoji = isTeamTool ? '??' : (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.emoji) || '???';
|
|
29200
29985
|
const group = {
|
|
29201
29986
|
key: groupKey,
|
|
29202
29987
|
toolCall,
|
|
29203
29988
|
count: 1,
|
|
29204
|
-
|
|
29205
|
-
emoji,
|
|
29989
|
+
label,
|
|
29206
29990
|
teamAgentData,
|
|
29207
29991
|
};
|
|
29208
29992
|
grouped.set(groupKey, group);
|
|
@@ -29220,7 +30004,7 @@
|
|
|
29220
30004
|
// Or make normal function from this?
|
|
29221
30005
|
(props) => {
|
|
29222
30006
|
var _a, _b;
|
|
29223
|
-
const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent,
|
|
30007
|
+
const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, } = props;
|
|
29224
30008
|
const { isComplete = true,
|
|
29225
30009
|
// <- TODO: Destruct all `messages` properties like `isComplete`
|
|
29226
30010
|
} = message;
|
|
@@ -29322,15 +30106,16 @@
|
|
|
29322
30106
|
const [isAudioLoading, setIsAudioLoading] = react.useState(false);
|
|
29323
30107
|
const [isAudioPlaying, setIsAudioPlaying] = react.useState(false);
|
|
29324
30108
|
const [audioError, setAudioError] = react.useState(null);
|
|
29325
|
-
const ongoingToolCallGroups = react.useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls,
|
|
30109
|
+
const ongoingToolCallGroups = react.useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls, teammates), [message.ongoingToolCalls, teammates]);
|
|
29326
30110
|
const completedToolCallCount = (_b = completedToolCalls === null || completedToolCalls === void 0 ? void 0 : completedToolCalls.length) !== null && _b !== void 0 ? _b : 0;
|
|
29327
30111
|
const transitiveToolCallCount = transitiveToolCalls.length;
|
|
29328
30112
|
const ongoingToolCallCount = ongoingToolCallGroups.length;
|
|
29329
30113
|
const toolCallChipCount = completedToolCallCount + transitiveToolCallCount + ongoingToolCallCount;
|
|
29330
30114
|
const shouldShowButtons = isLastMessage && buttons.length > 0 && onMessage;
|
|
29331
|
-
const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
|
|
29332
30115
|
const trimmedMessageContent = message.content.trim();
|
|
29333
|
-
const
|
|
30116
|
+
const speechPlaybackEnabled = isSpeechPlaybackEnabled !== null && isSpeechPlaybackEnabled !== void 0 ? isSpeechPlaybackEnabled : true;
|
|
30117
|
+
const shouldShowPlayButton = speechPlaybackEnabled && trimmedMessageContent.length > 0;
|
|
30118
|
+
const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
|
|
29334
30119
|
/**
|
|
29335
30120
|
* Attaches playback listeners to keep the UI in sync with the audio element.
|
|
29336
30121
|
*
|
|
@@ -29556,7 +30341,7 @@
|
|
|
29556
30341
|
return null;
|
|
29557
30342
|
}) })), message.attachments && message.attachments.length > 0 && (jsxRuntime.jsx("div", { className: styles$5.attachments, children: message.attachments.map((attachment, index) => (jsxRuntime.jsxs("a", { href: attachment.url, target: "_blank", rel: "noopener noreferrer", className: styles$5.attachment, title: attachment.name, children: [jsxRuntime.jsx("span", { className: styles$5.attachmentIcon, children: "\uD83D\uDCCE" }), jsxRuntime.jsx("span", { className: styles$5.attachmentName, children: attachment.name })] }, index))) })), completedToolCalls && completedToolCalls.length > 0 && (jsxRuntime.jsxs("div", { className: styles$5.completedToolCalls, children: [completedToolCalls.map((toolCall, index) => {
|
|
29558
30343
|
const chipletInfo = getToolCallChipletInfo(toolCall);
|
|
29559
|
-
const chipletText =
|
|
30344
|
+
const chipletText = resolveToolCallChipLabel(toolCall, { chipletInfo });
|
|
29560
30345
|
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
|
|
29561
30346
|
// If this is a team tool with agent data, use AgentChip
|
|
29562
30347
|
if (teamAgentData) {
|
|
@@ -29577,7 +30362,9 @@
|
|
|
29577
30362
|
}, children: chipletText }, index));
|
|
29578
30363
|
}), transitiveToolCalls.map((toolCallEntry, index) => {
|
|
29579
30364
|
const chipletInfo = getToolCallChipletInfo(toolCallEntry.toolCall);
|
|
29580
|
-
const chipletText =
|
|
30365
|
+
const chipletText = resolveToolCallChipLabel(toolCallEntry.toolCall, {
|
|
30366
|
+
chipletInfo,
|
|
30367
|
+
});
|
|
29581
30368
|
return (jsxRuntime.jsxs("button", { className: styles$5.completedToolCall, onClick: (event) => {
|
|
29582
30369
|
event.stopPropagation();
|
|
29583
30370
|
if (onToolCallClick) {
|
|
@@ -29590,7 +30377,7 @@
|
|
|
29590
30377
|
return (jsxRuntime.jsx(AgentChip, { agent: group.teamAgentData, isOngoing: true, labelSuffix: labelSuffix }, group.key));
|
|
29591
30378
|
}
|
|
29592
30379
|
const label = buildOngoingToolCallLabel(group);
|
|
29593
|
-
return (jsxRuntime.jsxs("div", { className: styles$5.ongoingToolCall, children: [jsxRuntime.jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsxRuntime.jsx("span", { className: styles$5.ongoingToolCallName, children: `${
|
|
30380
|
+
return (jsxRuntime.jsxs("div", { className: styles$5.ongoingToolCall, children: [jsxRuntime.jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsxRuntime.jsx("span", { className: styles$5.ongoingToolCallName, children: `${label}...` })] }, group.key));
|
|
29594
30381
|
}) })), shouldShowButtons && (jsxRuntime.jsx("div", { className: styles$5.messageButtons, children: buttons.map((button, buttonIndex) => (jsxRuntime.jsx("button", { className: styles$5.messageButton, onClick: (event) => {
|
|
29595
30382
|
event.stopPropagation();
|
|
29596
30383
|
if (onMessage) {
|
|
@@ -29687,7 +30474,7 @@
|
|
|
29687
30474
|
* @private component of `<Chat/>`
|
|
29688
30475
|
*/
|
|
29689
30476
|
function ChatMessageList(props) {
|
|
29690
|
-
const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
|
|
30477
|
+
const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
|
|
29691
30478
|
const firstMessage = messages[0];
|
|
29692
30479
|
const firstMsgContent = (firstMessage === null || firstMessage === void 0 ? void 0 : firstMessage.content) || '';
|
|
29693
30480
|
const firstMsgLines = firstMsgContent.split(/\r?\n/).length;
|
|
@@ -29699,7 +30486,7 @@
|
|
|
29699
30486
|
const isLastMessage = index === messages.length - 1;
|
|
29700
30487
|
const isExpanded = expandedMessageId === message.id;
|
|
29701
30488
|
const currentRating = messageRatings.get(message.id || message.content /* <-[??] */) || 0;
|
|
29702
|
-
return (jsxRuntime.jsx(ChatMessageItem, { message: message, participant: participant, participants: participants, isLastMessage: isLastMessage, onMessage: onMessage, setExpandedMessageId: setExpandedMessageId, isExpanded: isExpanded, currentRating: currentRating, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, onCopy: onCopy, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, onToolCallClick: onToolCallClick, onCitationClick: onCitationClick, soundSystem: soundSystem }, message.id));
|
|
30489
|
+
return (jsxRuntime.jsx(ChatMessageItem, { message: message, participant: participant, participants: participants, isLastMessage: isLastMessage, onMessage: onMessage, setExpandedMessageId: setExpandedMessageId, isExpanded: isExpanded, currentRating: currentRating, handleRating: handleRating, mode: mode, isCopyButtonEnabled: isCopyButtonEnabled, isFeedbackEnabled: isFeedbackEnabled, onCopy: onCopy, onCreateAgent: onCreateAgent, toolTitles: toolTitles, teammates: teammates, onToolCallClick: onToolCallClick, onCitationClick: onCitationClick, soundSystem: soundSystem, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled }, message.id));
|
|
29703
30490
|
}), jsxRuntime.jsx("div", { style: { height: 100 } })] }));
|
|
29704
30491
|
}
|
|
29705
30492
|
|
|
@@ -30903,7 +31690,7 @@
|
|
|
30903
31690
|
* @public exported from `@promptbook/components`
|
|
30904
31691
|
*/
|
|
30905
31692
|
function Chat(props) {
|
|
30906
|
-
const { title = 'Chat', messages, onChange, onMessage, onReset, onFeedback, onFileUpload, speechRecognition, placeholderMessageContent, defaultMessage, children, className, style, isAiTextHumanizedAndPromptbookified = true, isVoiceCalling = false, isFocusedOnLoad, participants = [], extraActions, actionsContainer, saveFormats, isSaveButtonEnabled = true, isCopyButtonEnabled = true, buttonColor: buttonColorRaw, onUseTemplate, onCreateAgent, toolTitles, teammates, visual, effectConfigs, soundSystem, speechRecognitionLanguage, } = props;
|
|
31693
|
+
const { title = 'Chat', messages, onChange, onMessage, onReset, onFeedback, onFileUpload, speechRecognition, placeholderMessageContent, defaultMessage, children, className, style, isAiTextHumanizedAndPromptbookified = true, isVoiceCalling = false, isFocusedOnLoad, participants = [], extraActions, actionsContainer, saveFormats, isSaveButtonEnabled = true, isCopyButtonEnabled = true, buttonColor: buttonColorRaw, onUseTemplate, onCreateAgent, toolTitles, teammates, visual, effectConfigs, soundSystem, speechRecognitionLanguage, isSpeechPlaybackEnabled = true, } = props;
|
|
30907
31694
|
const buttonColor = react.useMemo(() => Color.from(buttonColorRaw || '#0066cc'), [buttonColorRaw]);
|
|
30908
31695
|
const agentParticipant = react.useMemo(() => participants.find((participant) => participant.name === 'AGENT'), [participants]);
|
|
30909
31696
|
const postprocessedMessages = react.useMemo(() => {
|
|
@@ -31077,7 +31864,7 @@
|
|
|
31077
31864
|
}, onCitationClick: (citation) => {
|
|
31078
31865
|
setSelectedCitation(citation);
|
|
31079
31866
|
setCitationModalOpen(true);
|
|
31080
|
-
}, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (jsxRuntime.jsx(ChatInputArea, { onMessage: onMessage, onChange: onChange, onFileUpload: onFileUpload, speechRecognition: speechRecognition, speechRecognitionLanguage: speechRecognitionLanguage, defaultMessage: defaultMessage, placeholderMessageContent: placeholderMessageContent, isFocusedOnLoad: isFocusedOnLoad, isMobile: isMobileFromHook, isVoiceCalling: isVoiceCalling, participants: participants, buttonColor: buttonColor, soundSystem: soundSystem, onButtonClick: handleButtonClick, chatInputClassName: useChatCssClassName('chatInput') }))] }) }), jsxRuntime.jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsxRuntime.jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), jsxRuntime.jsx(ChatRatingModal, { isOpen: ratingModalOpen, selectedMessage: selectedMessage, postprocessedMessages: postprocessedMessages, messages: messages, hoveredRating: hoveredRating, messageRatings: messageRatings, textRating: textRating, mode: mode, isMobile: isMobileFromHook, onClose: () => setRatingModalOpen(false), setHoveredRating: setHoveredRating, setMessageRatings: setMessageRatings, setSelectedMessage: setSelectedMessage, setTextRating: setTextRating, submitRating: submitRating })] }));
|
|
31867
|
+
}, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (jsxRuntime.jsx(ChatInputArea, { onMessage: onMessage, onChange: onChange, onFileUpload: onFileUpload, speechRecognition: speechRecognition, speechRecognitionLanguage: speechRecognitionLanguage, defaultMessage: defaultMessage, placeholderMessageContent: placeholderMessageContent, isFocusedOnLoad: isFocusedOnLoad, isMobile: isMobileFromHook, isVoiceCalling: isVoiceCalling, participants: participants, buttonColor: buttonColor, soundSystem: soundSystem, onButtonClick: handleButtonClick, chatInputClassName: useChatCssClassName('chatInput') }))] }) }), jsxRuntime.jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsxRuntime.jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), jsxRuntime.jsx(ChatRatingModal, { isOpen: ratingModalOpen, selectedMessage: selectedMessage, postprocessedMessages: postprocessedMessages, messages: messages, hoveredRating: hoveredRating, messageRatings: messageRatings, textRating: textRating, mode: mode, isMobile: isMobileFromHook, onClose: () => setRatingModalOpen(false), setHoveredRating: setHoveredRating, setMessageRatings: setMessageRatings, setSelectedMessage: setSelectedMessage, setTextRating: setTextRating, submitRating: submitRating })] }));
|
|
31081
31868
|
}
|
|
31082
31869
|
|
|
31083
31870
|
/**
|
|
@@ -31225,6 +32012,23 @@
|
|
|
31225
32012
|
}
|
|
31226
32013
|
return candidates[Math.floor(Math.random() * candidates.length)];
|
|
31227
32014
|
}
|
|
32015
|
+
/**
|
|
32016
|
+
* Converts unknown prompt parameter values to string values required by prompt templates.
|
|
32017
|
+
*/
|
|
32018
|
+
function normalizePromptParameters(parameters) {
|
|
32019
|
+
const normalizedEntries = [];
|
|
32020
|
+
for (const [key, value] of Object.entries(parameters)) {
|
|
32021
|
+
if (value === undefined || value === null) {
|
|
32022
|
+
continue;
|
|
32023
|
+
}
|
|
32024
|
+
if (typeof value === 'string') {
|
|
32025
|
+
normalizedEntries.push([key, value]);
|
|
32026
|
+
continue;
|
|
32027
|
+
}
|
|
32028
|
+
normalizedEntries.push([key, JSON.stringify(value)]);
|
|
32029
|
+
}
|
|
32030
|
+
return Object.fromEntries(normalizedEntries);
|
|
32031
|
+
}
|
|
31228
32032
|
/**
|
|
31229
32033
|
* LlmChat component that provides chat functionality with LLM integration
|
|
31230
32034
|
*
|
|
@@ -31238,7 +32042,8 @@
|
|
|
31238
32042
|
* @public exported from `@promptbook/components`
|
|
31239
32043
|
*/
|
|
31240
32044
|
function LlmChat(props) {
|
|
31241
|
-
const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, chatFailMessage, ...restProps } = props;
|
|
32045
|
+
const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, promptParameters, chatFailMessage, resetMode = 'reset-current', ...restProps } = props;
|
|
32046
|
+
const resolvedPromptParameters = react.useMemo(() => normalizePromptParameters(promptParameters !== null && promptParameters !== void 0 ? promptParameters : {}), [promptParameters]);
|
|
31242
32047
|
const resolvedChatFailMessage = chatFailMessage || DEFAULT_CHAT_FAIL_MESSAGE;
|
|
31243
32048
|
// Internal state management
|
|
31244
32049
|
// DRY: Single factory for seeding initial messages (used on mount and after reset)
|
|
@@ -31414,7 +32219,7 @@
|
|
|
31414
32219
|
const prompt = {
|
|
31415
32220
|
title: 'User Message',
|
|
31416
32221
|
content: messageContent,
|
|
31417
|
-
parameters:
|
|
32222
|
+
parameters: resolvedPromptParameters,
|
|
31418
32223
|
modelRequirements: {
|
|
31419
32224
|
modelVariant: 'CHAT',
|
|
31420
32225
|
},
|
|
@@ -31504,9 +32309,22 @@
|
|
|
31504
32309
|
finally {
|
|
31505
32310
|
requestInFlightRef.current = false;
|
|
31506
32311
|
}
|
|
31507
|
-
}, [
|
|
32312
|
+
}, [
|
|
32313
|
+
messages,
|
|
32314
|
+
llmTools,
|
|
32315
|
+
props.thread,
|
|
32316
|
+
resolvedPromptParameters,
|
|
32317
|
+
onError,
|
|
32318
|
+
llmParticipantName,
|
|
32319
|
+
userParticipantName,
|
|
32320
|
+
thinkingVariants,
|
|
32321
|
+
]);
|
|
31508
32322
|
// Handle chat reset
|
|
31509
32323
|
const handleReset = react.useCallback(async () => {
|
|
32324
|
+
if (resetMode === 'delegate' && onReset) {
|
|
32325
|
+
await onReset();
|
|
32326
|
+
return;
|
|
32327
|
+
}
|
|
31510
32328
|
// Re-seed with initialMessages instead of empty array
|
|
31511
32329
|
setMessages(buildInitialMessages());
|
|
31512
32330
|
setTasksProgress([]);
|
|
@@ -31521,7 +32339,7 @@
|
|
|
31521
32339
|
if (onReset) {
|
|
31522
32340
|
await onReset();
|
|
31523
32341
|
}
|
|
31524
|
-
}, [
|
|
32342
|
+
}, [buildInitialMessages, onReset, persistenceKey, resetMode]);
|
|
31525
32343
|
// Handle retry of last failed message
|
|
31526
32344
|
const handleRetry = react.useCallback(() => {
|
|
31527
32345
|
if (lastFailedMessage) {
|