@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/esm/index.es.js
CHANGED
|
@@ -8,7 +8,6 @@ import { randomBytes } from 'crypto';
|
|
|
8
8
|
import moment from 'moment';
|
|
9
9
|
import { createPortal } from 'react-dom';
|
|
10
10
|
import Editor, { useMonaco } from '@monaco-editor/react';
|
|
11
|
-
import { MarkerSeverity } from 'monaco-editor';
|
|
12
11
|
import { Registration } from 'destroyable';
|
|
13
12
|
import katex from 'katex';
|
|
14
13
|
import { createRoot } from 'react-dom/client';
|
|
@@ -42,7 +41,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
42
41
|
* @generated
|
|
43
42
|
* @see https://github.com/webgptorg/promptbook
|
|
44
43
|
*/
|
|
45
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.111.0-
|
|
44
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.111.0-7';
|
|
46
45
|
/**
|
|
47
46
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
48
47
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -526,6 +525,188 @@ function checkChannelValue(channelName, value) {
|
|
|
526
525
|
}
|
|
527
526
|
}
|
|
528
527
|
|
|
528
|
+
const SHORT_HEX_LENGTHS = new Set([3, 4]);
|
|
529
|
+
const LONG_HEX_LENGTHS = new Set([6, 8]);
|
|
530
|
+
/**
|
|
531
|
+
* Parses a hex string into RGBA channel values.
|
|
532
|
+
*
|
|
533
|
+
* @param hex - Hex value such as `#09d`, `009edd`, `#009eddff`.
|
|
534
|
+
* @returns RGBA channel values.
|
|
535
|
+
*
|
|
536
|
+
* @private function of Color
|
|
537
|
+
*/
|
|
538
|
+
function parseHexColor(hex) {
|
|
539
|
+
const sanitized = hex.startsWith('#') ? hex.substring(1) : hex;
|
|
540
|
+
const throwInvalidHex = () => {
|
|
541
|
+
throw new Error(`Can not parse color from hex string "${hex}"`);
|
|
542
|
+
};
|
|
543
|
+
if (SHORT_HEX_LENGTHS.has(sanitized.length)) {
|
|
544
|
+
return {
|
|
545
|
+
red: parseShortHexChannel(sanitized.charAt(0), throwInvalidHex),
|
|
546
|
+
green: parseShortHexChannel(sanitized.charAt(1), throwInvalidHex),
|
|
547
|
+
blue: parseShortHexChannel(sanitized.charAt(2), throwInvalidHex),
|
|
548
|
+
alpha: sanitized.length === 4 ? parseShortHexChannel(sanitized.charAt(3), throwInvalidHex) : 255,
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
if (LONG_HEX_LENGTHS.has(sanitized.length)) {
|
|
552
|
+
return {
|
|
553
|
+
red: parseLongHexChannel(sanitized, 0, throwInvalidHex),
|
|
554
|
+
green: parseLongHexChannel(sanitized, 2, throwInvalidHex),
|
|
555
|
+
blue: parseLongHexChannel(sanitized, 4, throwInvalidHex),
|
|
556
|
+
alpha: sanitized.length === 8 ? parseLongHexChannel(sanitized, 6, throwInvalidHex) : 255,
|
|
557
|
+
};
|
|
558
|
+
}
|
|
559
|
+
return throwInvalidHex();
|
|
560
|
+
}
|
|
561
|
+
function parseShortHexChannel(char, onError) {
|
|
562
|
+
if (!char) {
|
|
563
|
+
return onError();
|
|
564
|
+
}
|
|
565
|
+
const parsed = parseInt(char, 16);
|
|
566
|
+
if (Number.isNaN(parsed)) {
|
|
567
|
+
return onError();
|
|
568
|
+
}
|
|
569
|
+
return parsed * 16;
|
|
570
|
+
}
|
|
571
|
+
function parseLongHexChannel(hex, start, onError) {
|
|
572
|
+
const segment = hex.substr(start, 2);
|
|
573
|
+
if (segment.length < 2) {
|
|
574
|
+
return onError();
|
|
575
|
+
}
|
|
576
|
+
const parsed = parseInt(segment, 16);
|
|
577
|
+
if (Number.isNaN(parsed)) {
|
|
578
|
+
return onError();
|
|
579
|
+
}
|
|
580
|
+
return parsed;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
const HSL_REGEX = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
|
|
584
|
+
/**
|
|
585
|
+
* Parses an HSL string into RGBA channel values.
|
|
586
|
+
*
|
|
587
|
+
* @param hsl - HSL string such as `hsl(197.1, 100%, 43.3%)`.
|
|
588
|
+
* @returns RGBA channel values.
|
|
589
|
+
*
|
|
590
|
+
* @private function of Color
|
|
591
|
+
*/
|
|
592
|
+
function parseHslColor(hsl) {
|
|
593
|
+
const match = hsl.match(HSL_REGEX);
|
|
594
|
+
if (!match) {
|
|
595
|
+
throw new Error(`Invalid hsl string format: "${hsl}"`);
|
|
596
|
+
}
|
|
597
|
+
const hue = parseFloat(match[1]);
|
|
598
|
+
const saturation = parseFloat(match[2]) / 100;
|
|
599
|
+
const lightness = parseFloat(match[3]) / 100;
|
|
600
|
+
const { red, green, blue } = convertHslToRgb(hue, saturation, lightness);
|
|
601
|
+
return {
|
|
602
|
+
red,
|
|
603
|
+
green,
|
|
604
|
+
blue,
|
|
605
|
+
alpha: 255,
|
|
606
|
+
};
|
|
607
|
+
}
|
|
608
|
+
function convertHslToRgb(h, s, l) {
|
|
609
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
610
|
+
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
611
|
+
const m = l - c / 2;
|
|
612
|
+
let r1 = 0;
|
|
613
|
+
let g1 = 0;
|
|
614
|
+
let b1 = 0;
|
|
615
|
+
if (h >= 0 && h < 60) {
|
|
616
|
+
r1 = c;
|
|
617
|
+
g1 = x;
|
|
618
|
+
}
|
|
619
|
+
else if (h >= 60 && h < 120) {
|
|
620
|
+
r1 = x;
|
|
621
|
+
g1 = c;
|
|
622
|
+
}
|
|
623
|
+
else if (h >= 120 && h < 180) {
|
|
624
|
+
g1 = c;
|
|
625
|
+
b1 = x;
|
|
626
|
+
}
|
|
627
|
+
else if (h >= 180 && h < 240) {
|
|
628
|
+
g1 = x;
|
|
629
|
+
b1 = c;
|
|
630
|
+
}
|
|
631
|
+
else if (h >= 240 && h < 300) {
|
|
632
|
+
r1 = x;
|
|
633
|
+
b1 = c;
|
|
634
|
+
}
|
|
635
|
+
else if (h >= 300 && h < 360) {
|
|
636
|
+
r1 = c;
|
|
637
|
+
b1 = x;
|
|
638
|
+
}
|
|
639
|
+
return {
|
|
640
|
+
red: Math.round((r1 + m) * 255),
|
|
641
|
+
green: Math.round((g1 + m) * 255),
|
|
642
|
+
blue: Math.round((b1 + m) * 255),
|
|
643
|
+
};
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
const RGB_REGEX = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
647
|
+
const RGBA_REGEX = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
648
|
+
/**
|
|
649
|
+
* Parses an RGB string into RGBA channel values.
|
|
650
|
+
*
|
|
651
|
+
* @param rgb - RGB string such as `rgb(0%, 62%, 86.7%)`.
|
|
652
|
+
* @returns RGBA channel values.
|
|
653
|
+
*
|
|
654
|
+
* @private function of Color
|
|
655
|
+
*/
|
|
656
|
+
function parseRgbColor(rgb) {
|
|
657
|
+
const match = rgb.match(RGB_REGEX);
|
|
658
|
+
if (!match) {
|
|
659
|
+
throw new Error(`Invalid rgb string format: "${rgb}"`);
|
|
660
|
+
}
|
|
661
|
+
return {
|
|
662
|
+
red: parseChannelValue(match[1]),
|
|
663
|
+
green: parseChannelValue(match[2]),
|
|
664
|
+
blue: parseChannelValue(match[3]),
|
|
665
|
+
alpha: 255,
|
|
666
|
+
};
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Parses an RGBA string into RGBA channel values.
|
|
670
|
+
*
|
|
671
|
+
* @param rgba - RGBA string such as `rgba(0, 158, 221, 0.5)`.
|
|
672
|
+
* @returns RGBA channel values.
|
|
673
|
+
*
|
|
674
|
+
* @private function of Color
|
|
675
|
+
*/
|
|
676
|
+
function parseRgbaColor(rgba) {
|
|
677
|
+
const match = rgba.match(RGBA_REGEX);
|
|
678
|
+
if (!match) {
|
|
679
|
+
throw new Error(`Invalid rgba string format: "${rgba}"`);
|
|
680
|
+
}
|
|
681
|
+
return {
|
|
682
|
+
red: parseChannelValue(match[1]),
|
|
683
|
+
green: parseChannelValue(match[2]),
|
|
684
|
+
blue: parseChannelValue(match[3]),
|
|
685
|
+
alpha: parseAlphaValue(match[4]),
|
|
686
|
+
};
|
|
687
|
+
}
|
|
688
|
+
function parseChannelValue(value) {
|
|
689
|
+
if (value.endsWith('%')) {
|
|
690
|
+
const percent = parseFloat(value);
|
|
691
|
+
return Math.round((percent / 100) * 255);
|
|
692
|
+
}
|
|
693
|
+
return Math.round(parseFloat(value));
|
|
694
|
+
}
|
|
695
|
+
function parseAlphaValue(value) {
|
|
696
|
+
if (value.endsWith('%')) {
|
|
697
|
+
const percent = parseFloat(value);
|
|
698
|
+
return Math.round((percent / 100) * 255);
|
|
699
|
+
}
|
|
700
|
+
const parsed = parseFloat(value);
|
|
701
|
+
if (parsed <= 1) {
|
|
702
|
+
return Math.round(parsed * 255);
|
|
703
|
+
}
|
|
704
|
+
return Math.round(parsed);
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
const HSL_REGEX_PATTERN = /^hsl\(\s*([0-9.]+)\s*,\s*([0-9.]+)%\s*,\s*([0-9.]+)%\s*\)$/;
|
|
708
|
+
const RGB_REGEX_PATTERN = /^rgb\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
709
|
+
const RGBA_REGEX_PATTERN = /^rgba\(\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*,\s*([0-9.%-]+)\s*\)$/;
|
|
529
710
|
/**
|
|
530
711
|
* Color object represents an RGB color with alpha channel
|
|
531
712
|
*
|
|
@@ -606,29 +787,24 @@ class Color {
|
|
|
606
787
|
* @returns Color object
|
|
607
788
|
*/
|
|
608
789
|
static fromString(color) {
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
790
|
+
const trimmed = color.trim();
|
|
791
|
+
if (CSS_COLORS[trimmed]) {
|
|
792
|
+
return Color.fromString(CSS_COLORS[trimmed]);
|
|
612
793
|
}
|
|
613
|
-
else if (Color.isHexColorString(
|
|
614
|
-
return Color.fromHex(
|
|
615
|
-
// -----
|
|
794
|
+
else if (Color.isHexColorString(trimmed)) {
|
|
795
|
+
return Color.fromHex(trimmed);
|
|
616
796
|
}
|
|
617
|
-
|
|
618
|
-
return Color.fromHsl(
|
|
619
|
-
// -----
|
|
797
|
+
if (HSL_REGEX_PATTERN.test(trimmed)) {
|
|
798
|
+
return Color.fromHsl(trimmed);
|
|
620
799
|
}
|
|
621
|
-
else if (
|
|
622
|
-
|
|
623
|
-
return Color.fromRgbString(color);
|
|
624
|
-
// -----
|
|
800
|
+
else if (RGB_REGEX_PATTERN.test(trimmed)) {
|
|
801
|
+
return Color.fromRgbString(trimmed);
|
|
625
802
|
}
|
|
626
|
-
else if (
|
|
627
|
-
return Color.fromRgbaString(
|
|
628
|
-
// -----
|
|
803
|
+
else if (RGBA_REGEX_PATTERN.test(trimmed)) {
|
|
804
|
+
return Color.fromRgbaString(trimmed);
|
|
629
805
|
}
|
|
630
806
|
else {
|
|
631
|
-
throw new Error(`Can not create a new Color instance from string "${
|
|
807
|
+
throw new Error(`Can not create a new Color instance from string "${trimmed}".`);
|
|
632
808
|
}
|
|
633
809
|
}
|
|
634
810
|
/**
|
|
@@ -659,73 +835,8 @@ class Color {
|
|
|
659
835
|
* @returns Color object
|
|
660
836
|
*/
|
|
661
837
|
static fromHex(hex) {
|
|
662
|
-
const
|
|
663
|
-
|
|
664
|
-
hex = hex.substring(1);
|
|
665
|
-
}
|
|
666
|
-
if (hex.length === 3) {
|
|
667
|
-
return Color.fromHex3(hex);
|
|
668
|
-
}
|
|
669
|
-
if (hex.length === 4) {
|
|
670
|
-
return Color.fromHex4(hex);
|
|
671
|
-
}
|
|
672
|
-
if (hex.length === 6) {
|
|
673
|
-
return Color.fromHex6(hex);
|
|
674
|
-
}
|
|
675
|
-
if (hex.length === 8) {
|
|
676
|
-
return Color.fromHex8(hex);
|
|
677
|
-
}
|
|
678
|
-
throw new Error(`Can not parse color from hex string "${hexOriginal}"`);
|
|
679
|
-
}
|
|
680
|
-
/**
|
|
681
|
-
* Creates a new Color instance from color in hex format with 3 color digits (without alpha channel)
|
|
682
|
-
*
|
|
683
|
-
* @param color in hex for example `09d`
|
|
684
|
-
* @returns Color object
|
|
685
|
-
*/
|
|
686
|
-
static fromHex3(hex) {
|
|
687
|
-
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
688
|
-
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
689
|
-
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
690
|
-
return take(new Color(r, g, b));
|
|
691
|
-
}
|
|
692
|
-
/**
|
|
693
|
-
* Creates a new Color instance from color in hex format with 4 digits (with alpha channel)
|
|
694
|
-
*
|
|
695
|
-
* @param color in hex for example `09df`
|
|
696
|
-
* @returns Color object
|
|
697
|
-
*/
|
|
698
|
-
static fromHex4(hex) {
|
|
699
|
-
const r = parseInt(hex.substr(0, 1), 16) * 16;
|
|
700
|
-
const g = parseInt(hex.substr(1, 1), 16) * 16;
|
|
701
|
-
const b = parseInt(hex.substr(2, 1), 16) * 16;
|
|
702
|
-
const a = parseInt(hex.substr(3, 1), 16) * 16;
|
|
703
|
-
return take(new Color(r, g, b, a));
|
|
704
|
-
}
|
|
705
|
-
/**
|
|
706
|
-
* Creates a new Color instance from color in hex format with 6 color digits (without alpha channel)
|
|
707
|
-
*
|
|
708
|
-
* @param color in hex for example `009edd`
|
|
709
|
-
* @returns Color object
|
|
710
|
-
*/
|
|
711
|
-
static fromHex6(hex) {
|
|
712
|
-
const r = parseInt(hex.substr(0, 2), 16);
|
|
713
|
-
const g = parseInt(hex.substr(2, 2), 16);
|
|
714
|
-
const b = parseInt(hex.substr(4, 2), 16);
|
|
715
|
-
return take(new Color(r, g, b));
|
|
716
|
-
}
|
|
717
|
-
/**
|
|
718
|
-
* Creates a new Color instance from color in hex format with 8 color digits (with alpha channel)
|
|
719
|
-
*
|
|
720
|
-
* @param color in hex for example `009edd`
|
|
721
|
-
* @returns Color object
|
|
722
|
-
*/
|
|
723
|
-
static fromHex8(hex) {
|
|
724
|
-
const r = parseInt(hex.substr(0, 2), 16);
|
|
725
|
-
const g = parseInt(hex.substr(2, 2), 16);
|
|
726
|
-
const b = parseInt(hex.substr(4, 2), 16);
|
|
727
|
-
const a = parseInt(hex.substr(6, 2), 16);
|
|
728
|
-
return take(new Color(r, g, b, a));
|
|
838
|
+
const { red, green, blue, alpha } = parseHexColor(hex);
|
|
839
|
+
return take(new Color(red, green, blue, alpha));
|
|
729
840
|
}
|
|
730
841
|
/**
|
|
731
842
|
* Creates a new Color instance from color in hsl format
|
|
@@ -734,52 +845,8 @@ class Color {
|
|
|
734
845
|
* @returns Color object
|
|
735
846
|
*/
|
|
736
847
|
static fromHsl(hsl) {
|
|
737
|
-
const
|
|
738
|
-
|
|
739
|
-
throw new Error(`Invalid hsl string format: "${hsl}"`);
|
|
740
|
-
}
|
|
741
|
-
const h = parseFloat(match[1]);
|
|
742
|
-
const s = parseFloat(match[2]) / 100;
|
|
743
|
-
const l = parseFloat(match[3]) / 100;
|
|
744
|
-
// HSL to RGB conversion
|
|
745
|
-
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
746
|
-
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
747
|
-
const m = l - c / 2;
|
|
748
|
-
let r1 = 0, g1 = 0, b1 = 0;
|
|
749
|
-
if (h >= 0 && h < 60) {
|
|
750
|
-
r1 = c;
|
|
751
|
-
g1 = x;
|
|
752
|
-
b1 = 0;
|
|
753
|
-
}
|
|
754
|
-
else if (h >= 60 && h < 120) {
|
|
755
|
-
r1 = x;
|
|
756
|
-
g1 = c;
|
|
757
|
-
b1 = 0;
|
|
758
|
-
}
|
|
759
|
-
else if (h >= 120 && h < 180) {
|
|
760
|
-
r1 = 0;
|
|
761
|
-
g1 = c;
|
|
762
|
-
b1 = x;
|
|
763
|
-
}
|
|
764
|
-
else if (h >= 180 && h < 240) {
|
|
765
|
-
r1 = 0;
|
|
766
|
-
g1 = x;
|
|
767
|
-
b1 = c;
|
|
768
|
-
}
|
|
769
|
-
else if (h >= 240 && h < 300) {
|
|
770
|
-
r1 = x;
|
|
771
|
-
g1 = 0;
|
|
772
|
-
b1 = c;
|
|
773
|
-
}
|
|
774
|
-
else if (h >= 300 && h < 360) {
|
|
775
|
-
r1 = c;
|
|
776
|
-
g1 = 0;
|
|
777
|
-
b1 = x;
|
|
778
|
-
}
|
|
779
|
-
const r = Math.round((r1 + m) * 255);
|
|
780
|
-
const g = Math.round((g1 + m) * 255);
|
|
781
|
-
const b = Math.round((b1 + m) * 255);
|
|
782
|
-
return take(new Color(r, g, b));
|
|
848
|
+
const { red, green, blue, alpha } = parseHslColor(hsl);
|
|
849
|
+
return take(new Color(red, green, blue, alpha));
|
|
783
850
|
}
|
|
784
851
|
/**
|
|
785
852
|
* Creates a new Color instance from color in rgb format
|
|
@@ -788,25 +855,8 @@ class Color {
|
|
|
788
855
|
* @returns Color object
|
|
789
856
|
*/
|
|
790
857
|
static fromRgbString(rgb) {
|
|
791
|
-
const
|
|
792
|
-
|
|
793
|
-
throw new Error(`Invalid rgb string format: "${rgb}"`);
|
|
794
|
-
}
|
|
795
|
-
const parseChannel = (value) => {
|
|
796
|
-
if (value.endsWith('%')) {
|
|
797
|
-
// Percentage value
|
|
798
|
-
const percent = parseFloat(value);
|
|
799
|
-
return Math.round((percent / 100) * 255);
|
|
800
|
-
}
|
|
801
|
-
else {
|
|
802
|
-
// Numeric value
|
|
803
|
-
return Math.round(parseFloat(value));
|
|
804
|
-
}
|
|
805
|
-
};
|
|
806
|
-
const r = parseChannel(match[1]);
|
|
807
|
-
const g = parseChannel(match[2]);
|
|
808
|
-
const b = parseChannel(match[3]);
|
|
809
|
-
return take(new Color(r, g, b));
|
|
858
|
+
const { red, green, blue, alpha } = parseRgbColor(rgb);
|
|
859
|
+
return take(new Color(red, green, blue, alpha));
|
|
810
860
|
}
|
|
811
861
|
/**
|
|
812
862
|
* Creates a new Color instance from color in rbga format
|
|
@@ -815,39 +865,8 @@ class Color {
|
|
|
815
865
|
* @returns Color object
|
|
816
866
|
*/
|
|
817
867
|
static fromRgbaString(rgba) {
|
|
818
|
-
const
|
|
819
|
-
|
|
820
|
-
throw new Error(`Invalid rgba string format: "${rgba}"`);
|
|
821
|
-
}
|
|
822
|
-
const parseChannel = (value) => {
|
|
823
|
-
if (value.endsWith('%')) {
|
|
824
|
-
const percent = parseFloat(value);
|
|
825
|
-
return Math.round((percent / 100) * 255);
|
|
826
|
-
}
|
|
827
|
-
else {
|
|
828
|
-
return Math.round(parseFloat(value));
|
|
829
|
-
}
|
|
830
|
-
};
|
|
831
|
-
const parseAlpha = (value) => {
|
|
832
|
-
if (value.endsWith('%')) {
|
|
833
|
-
const percent = parseFloat(value);
|
|
834
|
-
return Math.round((percent / 100) * 255);
|
|
835
|
-
}
|
|
836
|
-
else {
|
|
837
|
-
const alphaFloat = parseFloat(value);
|
|
838
|
-
// If alpha is between 0 and 1, treat as float
|
|
839
|
-
if (alphaFloat <= 1) {
|
|
840
|
-
return Math.round(alphaFloat * 255);
|
|
841
|
-
}
|
|
842
|
-
// Otherwise, treat as 0-255
|
|
843
|
-
return Math.round(alphaFloat);
|
|
844
|
-
}
|
|
845
|
-
};
|
|
846
|
-
const r = parseChannel(match[1]);
|
|
847
|
-
const g = parseChannel(match[2]);
|
|
848
|
-
const b = parseChannel(match[3]);
|
|
849
|
-
const a = parseAlpha(match[4]);
|
|
850
|
-
return take(new Color(r, g, b, a));
|
|
868
|
+
const { red, green, blue, alpha } = parseRgbaColor(rgba);
|
|
869
|
+
return take(new Color(red, green, blue, alpha));
|
|
851
870
|
}
|
|
852
871
|
/**
|
|
853
872
|
* Creates a new Color for color channels values
|
|
@@ -969,14 +988,16 @@ class Color {
|
|
|
969
988
|
}
|
|
970
989
|
toHex() {
|
|
971
990
|
if (this.alpha === 255) {
|
|
972
|
-
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
991
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
973
992
|
.toString(16)
|
|
974
|
-
.padStart(2, '0')}`;
|
|
993
|
+
.padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}`;
|
|
975
994
|
}
|
|
976
995
|
else {
|
|
977
|
-
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
996
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
978
997
|
.toString(16)
|
|
979
|
-
.padStart(2, '0')}${this.
|
|
998
|
+
.padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}${this.alpha
|
|
999
|
+
.toString(16)
|
|
1000
|
+
.padStart(2, '0')}`;
|
|
980
1001
|
}
|
|
981
1002
|
}
|
|
982
1003
|
toRgb() {
|
|
@@ -991,22 +1012,6 @@ class Color {
|
|
|
991
1012
|
throw new Error(`Getting HSL is not implemented`);
|
|
992
1013
|
}
|
|
993
1014
|
}
|
|
994
|
-
/**
|
|
995
|
-
* TODO: [🥻] Split Color class and color type
|
|
996
|
-
* TODO: For each method a corresponding static method should be created
|
|
997
|
-
* Like clone can be done by color.clone() OR Color.clone(color)
|
|
998
|
-
* TODO: Probably as an independent LIB OR add to LIB xyzt (ask @roseckyj)
|
|
999
|
-
* TODO: !! Transfer back to Collboard (whole directory)
|
|
1000
|
-
* TODO: Maybe [🏌️♂️] change ACRY toString => (toHex) toRgb when there will be toRgb and toRgba united
|
|
1001
|
-
* TODO: Convert getters to methods - getters only for values
|
|
1002
|
-
* TODO: Write tests
|
|
1003
|
-
* TODO: Getters for alpha, opacity, transparency, r, b, g, h, s, l, a,...
|
|
1004
|
-
* TODO: [0] Should be fromRgbString and fromRgbaString one or two functions + one or two regex
|
|
1005
|
-
* TODO: Use rgb, rgba, hsl for testing and parsing with the same regex
|
|
1006
|
-
* TODO: Regex for rgb, rgba, hsl does not support all options like deg, rad, turn,...
|
|
1007
|
-
* TODO: Convolution matrix
|
|
1008
|
-
* TODO: Maybe connect with textures
|
|
1009
|
-
*/
|
|
1010
1015
|
|
|
1011
1016
|
/**
|
|
1012
1017
|
* Makes color transformer which returns a grayscale version of the color
|
|
@@ -1998,6 +2003,12 @@ const RESERVED_PARAMETER_NAMES = exportJson({
|
|
|
1998
2003
|
// <- TODO: Add [emoji] + instructions ACRY when adding new reserved parameter
|
|
1999
2004
|
],
|
|
2000
2005
|
});
|
|
2006
|
+
/**
|
|
2007
|
+
* Prompt parameter that toggles whether the agent runs self-learning after each chat.
|
|
2008
|
+
*
|
|
2009
|
+
* @public exported from `@promptbook/core`
|
|
2010
|
+
*/
|
|
2011
|
+
const PROMPT_PARAMETER_SELF_LEARNING_ENABLED = 'selfLearningEnabled';
|
|
2001
2012
|
/**
|
|
2002
2013
|
* Limits for IDs, names, and other strings
|
|
2003
2014
|
*
|
|
@@ -3096,13 +3107,29 @@ function templateParameters(template, parameters) {
|
|
|
3096
3107
|
return replacedTemplates;
|
|
3097
3108
|
}
|
|
3098
3109
|
|
|
3110
|
+
/**
|
|
3111
|
+
* Unsafe characters that prevent an inline parameter.
|
|
3112
|
+
*
|
|
3113
|
+
* @private constant of ParameterEscaping
|
|
3114
|
+
*/
|
|
3099
3115
|
const INLINE_UNSAFE_PARAMETER_PATTERN = /[\r\n`$'"|<>{};()-*/~+!@#$%^&*\\/[\]]/;
|
|
3116
|
+
/**
|
|
3117
|
+
* Characters that always need escaping for inline placeholders.
|
|
3118
|
+
*
|
|
3119
|
+
* @private constant of ParameterEscaping
|
|
3120
|
+
*/
|
|
3100
3121
|
const PROMPT_PARAMETER_ESCAPE_PATTERN = /[`$]/g;
|
|
3122
|
+
/**
|
|
3123
|
+
* Characters that always need escaping when braces are included.
|
|
3124
|
+
*
|
|
3125
|
+
* @private constant of ParameterEscaping
|
|
3126
|
+
*/
|
|
3101
3127
|
const PROMPT_PARAMETER_ESCAPE_WITH_BRACES_PATTERN = /[{}$`]/g;
|
|
3102
3128
|
/**
|
|
3103
3129
|
* Normalizes a JSON string so it can be safely rendered without double escaping.
|
|
3104
3130
|
*
|
|
3105
3131
|
* @param value Candidate JSON string.
|
|
3132
|
+
* @private function of ParameterEscaping
|
|
3106
3133
|
*/
|
|
3107
3134
|
function normalizeJsonString(value) {
|
|
3108
3135
|
try {
|
|
@@ -3114,59 +3141,35 @@ function normalizeJsonString(value) {
|
|
|
3114
3141
|
}
|
|
3115
3142
|
/**
|
|
3116
3143
|
* Hides brackets in a string to avoid confusion with template parameters.
|
|
3117
|
-
*/
|
|
3118
|
-
function hideBrackets(value) {
|
|
3119
|
-
return value.split('{').join(`${REPLACING_NONCE}beginbracket`).split('}').join(`${REPLACING_NONCE}endbracket`);
|
|
3120
|
-
}
|
|
3121
|
-
/**
|
|
3122
|
-
* Restores brackets in a string.
|
|
3123
|
-
*/
|
|
3124
|
-
function restoreBrackets(value) {
|
|
3125
|
-
return value.split(`${REPLACING_NONCE}beginbracket`).join('{').split(`${REPLACING_NONCE}endbracket`).join('}');
|
|
3126
|
-
}
|
|
3127
|
-
/**
|
|
3128
|
-
* Prompt string wrapper to retain prompt context across interpolations.
|
|
3129
3144
|
*
|
|
3130
|
-
* @
|
|
3145
|
+
* @param value Input string with literal brackets.
|
|
3146
|
+
* @private function of ParameterEscaping
|
|
3131
3147
|
*/
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
}
|
|
3139
|
-
/**
|
|
3140
|
-
* Returns the prompt as a primitive string.
|
|
3141
|
-
*/
|
|
3142
|
-
toString() {
|
|
3143
|
-
return super.toString();
|
|
3144
|
-
}
|
|
3145
|
-
/**
|
|
3146
|
-
* Returns the prompt as a primitive string for implicit coercion.
|
|
3147
|
-
*/
|
|
3148
|
-
valueOf() {
|
|
3149
|
-
return super.valueOf();
|
|
3150
|
-
}
|
|
3151
|
-
/**
|
|
3152
|
-
* Ensures template literal coercion returns the raw string.
|
|
3153
|
-
*/
|
|
3154
|
-
[Symbol.toPrimitive]() {
|
|
3155
|
-
return this.toString();
|
|
3156
|
-
}
|
|
3148
|
+
function hideBrackets(value) {
|
|
3149
|
+
return value
|
|
3150
|
+
.split('{')
|
|
3151
|
+
.join(`${REPLACING_NONCE}beginbracket`)
|
|
3152
|
+
.split('}')
|
|
3153
|
+
.join(`${REPLACING_NONCE}endbracket`);
|
|
3157
3154
|
}
|
|
3158
3155
|
/**
|
|
3159
|
-
*
|
|
3156
|
+
* Restores hidden brackets.
|
|
3160
3157
|
*
|
|
3161
|
-
* @param value
|
|
3158
|
+
* @param value String with hidden brackets.
|
|
3159
|
+
* @private function of ParameterEscaping
|
|
3162
3160
|
*/
|
|
3163
|
-
function
|
|
3164
|
-
return value
|
|
3161
|
+
function restoreBrackets(value) {
|
|
3162
|
+
return value
|
|
3163
|
+
.split(`${REPLACING_NONCE}beginbracket`)
|
|
3164
|
+
.join('{')
|
|
3165
|
+
.split(`${REPLACING_NONCE}endbracket`)
|
|
3166
|
+
.join('}');
|
|
3165
3167
|
}
|
|
3166
3168
|
/**
|
|
3167
|
-
* Decides whether a
|
|
3169
|
+
* Decides whether a parameter can be inlined safely.
|
|
3168
3170
|
*
|
|
3169
|
-
* @param value Parameter
|
|
3171
|
+
* @param value Parameter rendered as string.
|
|
3172
|
+
* @private function of ParameterEscaping
|
|
3170
3173
|
*/
|
|
3171
3174
|
function shouldInlineParameterValue(value) {
|
|
3172
3175
|
if (value.trim() === '') {
|
|
@@ -3175,10 +3178,11 @@ function shouldInlineParameterValue(value) {
|
|
|
3175
3178
|
return !INLINE_UNSAFE_PARAMETER_PATTERN.test(value);
|
|
3176
3179
|
}
|
|
3177
3180
|
/**
|
|
3178
|
-
* Escapes parameter content to avoid breaking
|
|
3181
|
+
* Escapes prompt parameter content to avoid breaking the template structure.
|
|
3179
3182
|
*
|
|
3180
3183
|
* @param value Parameter value to escape.
|
|
3181
3184
|
* @param options Escape options for additional characters.
|
|
3185
|
+
* @private function of ParameterEscaping
|
|
3182
3186
|
*/
|
|
3183
3187
|
function escapePromptParameterValue(value, options) {
|
|
3184
3188
|
const pattern = options.includeBraces
|
|
@@ -3187,17 +3191,32 @@ function escapePromptParameterValue(value, options) {
|
|
|
3187
3191
|
return value.replace(pattern, '\\$&');
|
|
3188
3192
|
}
|
|
3189
3193
|
/**
|
|
3190
|
-
*
|
|
3194
|
+
* Collection of utilities that keep prompt parameters safe during interpolation.
|
|
3195
|
+
*
|
|
3196
|
+
* @private helper of prompt notation
|
|
3197
|
+
*/
|
|
3198
|
+
const ParameterEscaping = {
|
|
3199
|
+
normalizeJsonString,
|
|
3200
|
+
hideBrackets,
|
|
3201
|
+
restoreBrackets,
|
|
3202
|
+
shouldInlineParameterValue,
|
|
3203
|
+
escapePromptParameterValue,
|
|
3204
|
+
};
|
|
3205
|
+
|
|
3206
|
+
/**
|
|
3207
|
+
* Builds numeric parameter names (1, 2, ...).
|
|
3191
3208
|
*
|
|
3192
3209
|
* @param index Zero-based parameter index.
|
|
3210
|
+
* @private function of ParameterNaming
|
|
3193
3211
|
*/
|
|
3194
3212
|
function buildNumericParameterName(index) {
|
|
3195
3213
|
return `${index + 1}`;
|
|
3196
3214
|
}
|
|
3197
3215
|
/**
|
|
3198
|
-
* Builds alphabetic parameter
|
|
3216
|
+
* Builds alphabetic parameter names (a, b, ..., aa).
|
|
3199
3217
|
*
|
|
3200
3218
|
* @param index Zero-based parameter index.
|
|
3219
|
+
* @private function of ParameterNaming
|
|
3201
3220
|
*/
|
|
3202
3221
|
function buildAlphabeticParameterName(index) {
|
|
3203
3222
|
const alphabet = 'abcdefghijklmnopqrstuvwxyz';
|
|
@@ -3213,6 +3232,7 @@ function buildAlphabeticParameterName(index) {
|
|
|
3213
3232
|
* Converts a positive integer into a Roman numeral string.
|
|
3214
3233
|
*
|
|
3215
3234
|
* @param value Positive integer value.
|
|
3235
|
+
* @private function of ParameterNaming
|
|
3216
3236
|
*/
|
|
3217
3237
|
function toRomanNumeral(value) {
|
|
3218
3238
|
const romanTable = [
|
|
@@ -3241,24 +3261,28 @@ function toRomanNumeral(value) {
|
|
|
3241
3261
|
return result;
|
|
3242
3262
|
}
|
|
3243
3263
|
/**
|
|
3244
|
-
* Builds Roman numeral parameter
|
|
3264
|
+
* Builds Roman numeral parameter names (I, II, ...).
|
|
3245
3265
|
*
|
|
3246
3266
|
* @param index Zero-based parameter index.
|
|
3267
|
+
* @private function of ParameterNaming
|
|
3247
3268
|
*/
|
|
3248
3269
|
function buildRomanParameterName(index) {
|
|
3249
3270
|
return toRomanNumeral(index + 1);
|
|
3250
3271
|
}
|
|
3251
3272
|
/**
|
|
3252
|
-
* Creates a
|
|
3273
|
+
* Creates a prefixed naming strategy.
|
|
3253
3274
|
*
|
|
3254
|
-
* @param prefix Prefix
|
|
3255
|
-
* @param builder Base builder
|
|
3275
|
+
* @param prefix Prefix string.
|
|
3276
|
+
* @param builder Base builder function.
|
|
3277
|
+
* @private function of ParameterNaming
|
|
3256
3278
|
*/
|
|
3257
3279
|
function buildPrefixedParameterName(prefix, builder) {
|
|
3258
3280
|
return (index) => `${prefix}${builder(index)}`;
|
|
3259
3281
|
}
|
|
3260
3282
|
/**
|
|
3261
|
-
*
|
|
3283
|
+
* Available strategies that try to avoid placeholder conflicts.
|
|
3284
|
+
*
|
|
3285
|
+
* @private constant of ParameterNaming
|
|
3262
3286
|
*/
|
|
3263
3287
|
const PARAMETER_NAME_STRATEGIES = [
|
|
3264
3288
|
{ buildName: buildNumericParameterName },
|
|
@@ -3271,6 +3295,7 @@ const PARAMETER_NAME_STRATEGIES = [
|
|
|
3271
3295
|
* Collects bracketed tokens from parameter values to avoid placeholder collisions.
|
|
3272
3296
|
*
|
|
3273
3297
|
* @param values Parameter values to scan.
|
|
3298
|
+
* @private function of ParameterNaming
|
|
3274
3299
|
*/
|
|
3275
3300
|
function collectBracketedParameterTokens(values) {
|
|
3276
3301
|
const tokens = new Set();
|
|
@@ -3287,9 +3312,10 @@ function collectBracketedParameterTokens(values) {
|
|
|
3287
3312
|
return tokens;
|
|
3288
3313
|
}
|
|
3289
3314
|
/**
|
|
3290
|
-
* Builds
|
|
3315
|
+
* Builds placeholder names while avoiding collisions with parameter content.
|
|
3291
3316
|
*
|
|
3292
3317
|
* @param values Parameter values to scan for conflicting tokens.
|
|
3318
|
+
* @private function of ParameterNaming
|
|
3293
3319
|
*/
|
|
3294
3320
|
function buildParameterNames(values) {
|
|
3295
3321
|
const count = values.length;
|
|
@@ -3306,28 +3332,40 @@ function buildParameterNames(values) {
|
|
|
3306
3332
|
}
|
|
3307
3333
|
return Array.from({ length: count }, (_, index) => `${REPLACING_NONCE}${index + 1}`);
|
|
3308
3334
|
}
|
|
3335
|
+
/**
|
|
3336
|
+
* Provides naming utilities for prompt parameters.
|
|
3337
|
+
*
|
|
3338
|
+
* @private helper of prompt notation
|
|
3339
|
+
*/
|
|
3340
|
+
const ParameterNaming = {
|
|
3341
|
+
buildParameterNames,
|
|
3342
|
+
};
|
|
3343
|
+
|
|
3309
3344
|
/**
|
|
3310
3345
|
* Formats the placeholder used in the prompt body for a parameter.
|
|
3311
3346
|
*
|
|
3312
3347
|
* @param name Parameter placeholder name.
|
|
3348
|
+
* @private function of ParameterSection
|
|
3313
3349
|
*/
|
|
3314
3350
|
function formatParameterPlaceholder(name) {
|
|
3315
3351
|
return `{${name}}`;
|
|
3316
3352
|
}
|
|
3317
3353
|
/**
|
|
3318
|
-
* Formats a
|
|
3354
|
+
* Formats a single line entry for structured parameters.
|
|
3319
3355
|
*
|
|
3320
3356
|
* @param item Parameter entry data.
|
|
3357
|
+
* @private function of ParameterSection
|
|
3321
3358
|
*/
|
|
3322
3359
|
function formatParameterListItem(item) {
|
|
3323
3360
|
var _a;
|
|
3324
|
-
const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(escapePromptParameterValue(item.value, { includeBraces: true }));
|
|
3361
|
+
const formattedValue = (_a = item.jsonValue) !== null && _a !== void 0 ? _a : JSON.stringify(ParameterEscaping.escapePromptParameterValue(item.value, { includeBraces: true }));
|
|
3325
3362
|
return `${item.name}) ${formattedValue}`;
|
|
3326
3363
|
}
|
|
3327
3364
|
/**
|
|
3328
3365
|
* Builds the structured parameters section appended to the prompt.
|
|
3329
3366
|
*
|
|
3330
3367
|
* @param items Parameter entries to include.
|
|
3368
|
+
* @private function of ParameterSection
|
|
3331
3369
|
*/
|
|
3332
3370
|
function buildParametersSection(items) {
|
|
3333
3371
|
const entries = items
|
|
@@ -3342,6 +3380,55 @@ function buildParametersSection(items) {
|
|
|
3342
3380
|
- Parameter values are escaped in JSON structures to avoid breaking the prompt structure.
|
|
3343
3381
|
`);
|
|
3344
3382
|
}
|
|
3383
|
+
/**
|
|
3384
|
+
* Provides helpers for rendering structured parameter placeholders.
|
|
3385
|
+
*
|
|
3386
|
+
* @private helper of prompt notation
|
|
3387
|
+
*/
|
|
3388
|
+
const ParameterSection = {
|
|
3389
|
+
formatParameterPlaceholder,
|
|
3390
|
+
buildParametersSection,
|
|
3391
|
+
};
|
|
3392
|
+
|
|
3393
|
+
/**
|
|
3394
|
+
* Prompt string wrapper to retain prompt context across interpolations.
|
|
3395
|
+
*
|
|
3396
|
+
* @public exported from `@promptbook/utils`
|
|
3397
|
+
*/
|
|
3398
|
+
class PromptString extends String {
|
|
3399
|
+
/**
|
|
3400
|
+
* @param value Prompt content.
|
|
3401
|
+
*/
|
|
3402
|
+
constructor(value) {
|
|
3403
|
+
super(value);
|
|
3404
|
+
}
|
|
3405
|
+
/**
|
|
3406
|
+
* Returns the prompt as a primitive string.
|
|
3407
|
+
*/
|
|
3408
|
+
toString() {
|
|
3409
|
+
return super.toString();
|
|
3410
|
+
}
|
|
3411
|
+
/**
|
|
3412
|
+
* Returns the prompt as a primitive string for implicit coercion.
|
|
3413
|
+
*/
|
|
3414
|
+
valueOf() {
|
|
3415
|
+
return super.valueOf();
|
|
3416
|
+
}
|
|
3417
|
+
/**
|
|
3418
|
+
* Ensures template literal coercion returns the raw string.
|
|
3419
|
+
*/
|
|
3420
|
+
[Symbol.toPrimitive]() {
|
|
3421
|
+
return this.toString();
|
|
3422
|
+
}
|
|
3423
|
+
}
|
|
3424
|
+
/**
|
|
3425
|
+
* Checks whether a value is a PromptString instance.
|
|
3426
|
+
*
|
|
3427
|
+
* @param value Candidate value.
|
|
3428
|
+
*/
|
|
3429
|
+
function isPromptString(value) {
|
|
3430
|
+
return value instanceof PromptString;
|
|
3431
|
+
}
|
|
3345
3432
|
/**
|
|
3346
3433
|
* Tag function for notating a prompt as template literal
|
|
3347
3434
|
*
|
|
@@ -3359,24 +3446,24 @@ function prompt(strings, ...values) {
|
|
|
3359
3446
|
if (values.length === 0) {
|
|
3360
3447
|
return new PromptString(spaceTrim$2(strings.join('')));
|
|
3361
3448
|
}
|
|
3362
|
-
const stringsWithHiddenParameters = strings.map((stringsItem) => hideBrackets(stringsItem));
|
|
3449
|
+
const stringsWithHiddenParameters = strings.map((stringsItem) => ParameterEscaping.hideBrackets(stringsItem));
|
|
3363
3450
|
const parameterMetadata = values.map((value) => {
|
|
3364
3451
|
const isPrompt = isPromptString(value);
|
|
3365
3452
|
const stringValue = isPrompt ? value.toString() : valueToString(value);
|
|
3366
|
-
const isInline = isPrompt ? true : shouldInlineParameterValue(stringValue);
|
|
3367
|
-
const jsonValue = !isPrompt && !isInline ? normalizeJsonString(stringValue) : null;
|
|
3453
|
+
const isInline = isPrompt ? true : ParameterEscaping.shouldInlineParameterValue(stringValue);
|
|
3454
|
+
const jsonValue = !isPrompt && !isInline ? ParameterEscaping.normalizeJsonString(stringValue) : null;
|
|
3368
3455
|
return { isPrompt, stringValue, isInline, jsonValue };
|
|
3369
3456
|
});
|
|
3370
|
-
const parameterNames = buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
|
|
3457
|
+
const parameterNames = ParameterNaming.buildParameterNames(parameterMetadata.map((entry) => entry.stringValue));
|
|
3371
3458
|
const parameterEntries = parameterMetadata.map((entry, index) => {
|
|
3372
3459
|
var _a;
|
|
3373
|
-
const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a :
|
|
3460
|
+
const name = (_a = parameterNames[index]) !== null && _a !== void 0 ? _a : `${index + 1}`;
|
|
3374
3461
|
const promptMarker = `${REPLACING_NONCE}prompt-${index}`;
|
|
3375
3462
|
const parameterMarker = `${REPLACING_NONCE}parameter-${index}`;
|
|
3376
3463
|
const templateValue = entry.isPrompt
|
|
3377
3464
|
? promptMarker
|
|
3378
3465
|
: entry.isInline
|
|
3379
|
-
? escapePromptParameterValue(entry.stringValue, { includeBraces: false })
|
|
3466
|
+
? ParameterEscaping.escapePromptParameterValue(entry.stringValue, { includeBraces: false })
|
|
3380
3467
|
: parameterMarker;
|
|
3381
3468
|
return {
|
|
3382
3469
|
name,
|
|
@@ -3396,7 +3483,7 @@ function prompt(strings, ...values) {
|
|
|
3396
3483
|
const parameterName = parameterNamesOrdered[i];
|
|
3397
3484
|
return parameterName === undefined
|
|
3398
3485
|
? `${result}${stringsItem}`
|
|
3399
|
-
: `${result}${stringsItem}${formatParameterPlaceholder(parameterName)}`;
|
|
3486
|
+
: `${result}${stringsItem}${ParameterSection.formatParameterPlaceholder(parameterName)}`;
|
|
3400
3487
|
}, '');
|
|
3401
3488
|
pipelineString = spaceTrim$2(pipelineString);
|
|
3402
3489
|
try {
|
|
@@ -3414,14 +3501,16 @@ function prompt(strings, ...values) {
|
|
|
3414
3501
|
|
|
3415
3502
|
`));
|
|
3416
3503
|
}
|
|
3417
|
-
pipelineString = restoreBrackets(pipelineString);
|
|
3504
|
+
pipelineString = ParameterEscaping.restoreBrackets(pipelineString);
|
|
3418
3505
|
for (const entry of parameterEntries) {
|
|
3419
3506
|
if (entry.isPrompt) {
|
|
3420
3507
|
pipelineString = pipelineString.split(entry.promptMarker).join(entry.stringValue);
|
|
3421
3508
|
continue;
|
|
3422
3509
|
}
|
|
3423
3510
|
if (!entry.isInline) {
|
|
3424
|
-
pipelineString = pipelineString
|
|
3511
|
+
pipelineString = pipelineString
|
|
3512
|
+
.split(entry.parameterMarker)
|
|
3513
|
+
.join(ParameterSection.formatParameterPlaceholder(entry.name));
|
|
3425
3514
|
}
|
|
3426
3515
|
}
|
|
3427
3516
|
const structuredParameters = parameterEntries.filter((entry) => !entry.isPrompt && !entry.isInline);
|
|
@@ -3431,7 +3520,7 @@ function prompt(strings, ...values) {
|
|
|
3431
3520
|
value: entry.stringValue,
|
|
3432
3521
|
jsonValue: entry.jsonValue,
|
|
3433
3522
|
}));
|
|
3434
|
-
pipelineString = `${pipelineString}\n\n${buildParametersSection(parameterItems)}`;
|
|
3523
|
+
pipelineString = `${pipelineString}\n\n${ParameterSection.buildParametersSection(parameterItems)}`;
|
|
3435
3524
|
}
|
|
3436
3525
|
return new PromptString(pipelineString);
|
|
3437
3526
|
}
|
|
@@ -7095,6 +7184,7 @@ function resolveMemoryRuntimeContext(args) {
|
|
|
7095
7184
|
agentId: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentId,
|
|
7096
7185
|
agentName: memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.agentName,
|
|
7097
7186
|
isTeamConversation: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isTeamConversation) === true,
|
|
7187
|
+
isPrivateMode: (memoryContext === null || memoryContext === void 0 ? void 0 : memoryContext.isPrivateMode) === true,
|
|
7098
7188
|
};
|
|
7099
7189
|
}
|
|
7100
7190
|
/**
|
|
@@ -7140,12 +7230,15 @@ function createDisabledMemoryResult(action, message) {
|
|
|
7140
7230
|
* @private utility of MEMORY commitment
|
|
7141
7231
|
*/
|
|
7142
7232
|
function getRuntimeAdapterOrDisabledResult(action, runtimeContext) {
|
|
7143
|
-
if (!runtimeContext.enabled || runtimeContext.isTeamConversation) {
|
|
7233
|
+
if (!runtimeContext.enabled || runtimeContext.isTeamConversation || runtimeContext.isPrivateMode) {
|
|
7234
|
+
const message = runtimeContext.isPrivateMode
|
|
7235
|
+
? 'Memory is disabled because private mode is active.'
|
|
7236
|
+
: runtimeContext.isTeamConversation
|
|
7237
|
+
? 'Memory is disabled for TEAM conversations.'
|
|
7238
|
+
: 'Memory is disabled for unauthenticated users.';
|
|
7144
7239
|
return {
|
|
7145
7240
|
adapter: null,
|
|
7146
|
-
disabledResult: createDisabledMemoryResult(action,
|
|
7147
|
-
? 'Memory is disabled for TEAM conversations.'
|
|
7148
|
-
: 'Memory is disabled for unauthenticated users.'),
|
|
7241
|
+
disabledResult: createDisabledMemoryResult(action, message),
|
|
7149
7242
|
};
|
|
7150
7243
|
}
|
|
7151
7244
|
{
|
|
@@ -7869,71 +7962,137 @@ class UserMessageCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
7869
7962
|
}
|
|
7870
7963
|
|
|
7871
7964
|
/**
|
|
7872
|
-
*
|
|
7873
|
-
*
|
|
7874
|
-
* The META commitment handles all meta-information about the agent such as:
|
|
7875
|
-
* - META IMAGE: Sets the agent's avatar/profile image URL
|
|
7876
|
-
* - META LINK: Provides profile/source links for the person the agent models
|
|
7877
|
-
* - META TITLE: Sets the agent's display title
|
|
7878
|
-
* - META DESCRIPTION: Sets the agent's description
|
|
7879
|
-
* - META [ANYTHING]: Any other meta information in uppercase format
|
|
7965
|
+
* MESSAGE SUFFIX commitment definition
|
|
7880
7966
|
*
|
|
7881
|
-
*
|
|
7882
|
-
*
|
|
7967
|
+
* The MESSAGE SUFFIX commitment stores a hardcoded message that is appended
|
|
7968
|
+
* to every assistant response in Agents Server runtimes.
|
|
7883
7969
|
*
|
|
7884
7970
|
* Example usage in agent source:
|
|
7885
7971
|
*
|
|
7886
7972
|
* ```book
|
|
7887
|
-
*
|
|
7888
|
-
* META LINK https://twitter.com/username
|
|
7889
|
-
* META TITLE Professional Assistant
|
|
7890
|
-
* META DESCRIPTION An AI assistant specialized in business tasks
|
|
7891
|
-
* META AUTHOR John Doe
|
|
7892
|
-
* META VERSION 1.0
|
|
7973
|
+
* MESSAGE SUFFIX This message was generated by Promptbook.
|
|
7893
7974
|
* ```
|
|
7894
7975
|
*
|
|
7895
7976
|
* @private [🪔] Maybe export the commitments through some package
|
|
7896
7977
|
*/
|
|
7897
|
-
class
|
|
7978
|
+
class MessageSuffixCommitmentDefinition extends BaseCommitmentDefinition {
|
|
7898
7979
|
constructor() {
|
|
7899
|
-
super('
|
|
7980
|
+
super('MESSAGE SUFFIX');
|
|
7900
7981
|
}
|
|
7901
7982
|
/**
|
|
7902
|
-
* Short one-line description of
|
|
7983
|
+
* Short one-line description of MESSAGE SUFFIX.
|
|
7903
7984
|
*/
|
|
7904
7985
|
get description() {
|
|
7905
|
-
return 'Set
|
|
7986
|
+
return 'Set a hardcoded suffix appended to every assistant response.';
|
|
7906
7987
|
}
|
|
7907
7988
|
/**
|
|
7908
7989
|
* Icon for this commitment.
|
|
7909
7990
|
*/
|
|
7910
7991
|
get icon() {
|
|
7911
|
-
return '
|
|
7992
|
+
return '🏷️';
|
|
7912
7993
|
}
|
|
7913
7994
|
/**
|
|
7914
|
-
* Markdown documentation for
|
|
7995
|
+
* Markdown documentation for MESSAGE SUFFIX commitment.
|
|
7915
7996
|
*/
|
|
7916
7997
|
get documentation() {
|
|
7917
7998
|
return spaceTrim$1(`
|
|
7918
|
-
#
|
|
7919
|
-
|
|
7920
|
-
Sets meta-information about the agent that is used for display and attribution purposes.
|
|
7999
|
+
# MESSAGE SUFFIX
|
|
7921
8000
|
|
|
7922
|
-
|
|
7923
|
-
|
|
7924
|
-
- **META IMAGE** - Sets the agent's avatar/profile image URL
|
|
7925
|
-
- **META LINK** - Provides profile/source links for the person the agent models
|
|
7926
|
-
- **META TITLE** - Sets the agent's display title
|
|
7927
|
-
- **META DESCRIPTION** - Sets the agent's description
|
|
7928
|
-
- **META [ANYTHING]** - Any other meta information in uppercase format
|
|
8001
|
+
Defines a hardcoded message appended to every assistant response.
|
|
7929
8002
|
|
|
7930
8003
|
## Key aspects
|
|
7931
8004
|
|
|
7932
|
-
- Does not modify the
|
|
7933
|
-
-
|
|
7934
|
-
-
|
|
7935
|
-
-
|
|
7936
|
-
|
|
8005
|
+
- Does not modify the system message or model requirements.
|
|
8006
|
+
- Supports multiline markdown content.
|
|
8007
|
+
- Useful for branding, legal notes, and disclosure notices.
|
|
8008
|
+
- If multiple \`MESSAGE SUFFIX\` commitments are present, the last one takes precedence.
|
|
8009
|
+
|
|
8010
|
+
## Example
|
|
8011
|
+
|
|
8012
|
+
\`\`\`book
|
|
8013
|
+
Branded Assistant
|
|
8014
|
+
|
|
8015
|
+
MESSAGE SUFFIX
|
|
8016
|
+
This was generated by Promptbook, the best tool to create AI agents.
|
|
8017
|
+
\`\`\`
|
|
8018
|
+
`);
|
|
8019
|
+
}
|
|
8020
|
+
applyToAgentModelRequirements(requirements, content) {
|
|
8021
|
+
// MESSAGE SUFFIX does not modify model requirements.
|
|
8022
|
+
// It is consumed by parsing/runtime layers in Agents Server.
|
|
8023
|
+
return requirements;
|
|
8024
|
+
}
|
|
8025
|
+
}
|
|
8026
|
+
/**
|
|
8027
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
8028
|
+
*/
|
|
8029
|
+
|
|
8030
|
+
/**
|
|
8031
|
+
* META commitment definition
|
|
8032
|
+
*
|
|
8033
|
+
* The META commitment handles all meta-information about the agent such as:
|
|
8034
|
+
* - META IMAGE: Sets the agent's avatar/profile image URL
|
|
8035
|
+
* - META LINK: Provides profile/source links for the person the agent models
|
|
8036
|
+
* - META TITLE: Sets the agent's display title
|
|
8037
|
+
* - META DESCRIPTION: Sets the agent's description
|
|
8038
|
+
* - META [ANYTHING]: Any other meta information in uppercase format
|
|
8039
|
+
*
|
|
8040
|
+
* These commitments are special because they don't affect the system message,
|
|
8041
|
+
* but are handled separately in the parsing logic for profile display.
|
|
8042
|
+
*
|
|
8043
|
+
* Example usage in agent source:
|
|
8044
|
+
*
|
|
8045
|
+
* ```book
|
|
8046
|
+
* META IMAGE https://example.com/avatar.jpg
|
|
8047
|
+
* META LINK https://twitter.com/username
|
|
8048
|
+
* META TITLE Professional Assistant
|
|
8049
|
+
* META DESCRIPTION An AI assistant specialized in business tasks
|
|
8050
|
+
* META AUTHOR John Doe
|
|
8051
|
+
* META VERSION 1.0
|
|
8052
|
+
* ```
|
|
8053
|
+
*
|
|
8054
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
8055
|
+
*/
|
|
8056
|
+
class MetaCommitmentDefinition extends BaseCommitmentDefinition {
|
|
8057
|
+
constructor() {
|
|
8058
|
+
super('META');
|
|
8059
|
+
}
|
|
8060
|
+
/**
|
|
8061
|
+
* Short one-line description of META commitments.
|
|
8062
|
+
*/
|
|
8063
|
+
get description() {
|
|
8064
|
+
return 'Set meta-information about the agent (IMAGE, LINK, TITLE, DESCRIPTION, etc.).';
|
|
8065
|
+
}
|
|
8066
|
+
/**
|
|
8067
|
+
* Icon for this commitment.
|
|
8068
|
+
*/
|
|
8069
|
+
get icon() {
|
|
8070
|
+
return 'ℹ️';
|
|
8071
|
+
}
|
|
8072
|
+
/**
|
|
8073
|
+
* Markdown documentation for META commitment.
|
|
8074
|
+
*/
|
|
8075
|
+
get documentation() {
|
|
8076
|
+
return spaceTrim$1(`
|
|
8077
|
+
# META
|
|
8078
|
+
|
|
8079
|
+
Sets meta-information about the agent that is used for display and attribution purposes.
|
|
8080
|
+
|
|
8081
|
+
## Supported META types
|
|
8082
|
+
|
|
8083
|
+
- **META IMAGE** - Sets the agent's avatar/profile image URL
|
|
8084
|
+
- **META LINK** - Provides profile/source links for the person the agent models
|
|
8085
|
+
- **META TITLE** - Sets the agent's display title
|
|
8086
|
+
- **META DESCRIPTION** - Sets the agent's description
|
|
8087
|
+
- **META [ANYTHING]** - Any other meta information in uppercase format
|
|
8088
|
+
|
|
8089
|
+
## Key aspects
|
|
8090
|
+
|
|
8091
|
+
- Does not modify the agent's behavior or responses
|
|
8092
|
+
- Used for visual representation and attribution in user interfaces
|
|
8093
|
+
- Multiple META commitments of different types can be used
|
|
8094
|
+
- Multiple META LINK commitments can be used for different social profiles
|
|
8095
|
+
- If multiple META commitments of the same type are specified, the last one takes precedence (except for LINK)
|
|
7937
8096
|
|
|
7938
8097
|
## Examples
|
|
7939
8098
|
|
|
@@ -8109,6 +8268,76 @@ class MetaColorCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
8109
8268
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
8110
8269
|
*/
|
|
8111
8270
|
|
|
8271
|
+
/**
|
|
8272
|
+
* META DISCLAIMER commitment definition
|
|
8273
|
+
*
|
|
8274
|
+
* The META DISCLAIMER commitment stores markdown text that must be acknowledged
|
|
8275
|
+
* by the user before they can chat with the agent.
|
|
8276
|
+
*
|
|
8277
|
+
* Example usage in agent source:
|
|
8278
|
+
*
|
|
8279
|
+
* ```book
|
|
8280
|
+
* META DISCLAIMER
|
|
8281
|
+
*
|
|
8282
|
+
* This agent may provide information that is **not legally binding**.
|
|
8283
|
+
* ```
|
|
8284
|
+
*
|
|
8285
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
8286
|
+
*/
|
|
8287
|
+
class MetaDisclaimerCommitmentDefinition extends BaseCommitmentDefinition {
|
|
8288
|
+
constructor() {
|
|
8289
|
+
super('META DISCLAIMER');
|
|
8290
|
+
}
|
|
8291
|
+
/**
|
|
8292
|
+
* Short one-line description of META DISCLAIMER.
|
|
8293
|
+
*/
|
|
8294
|
+
get description() {
|
|
8295
|
+
return 'Set markdown disclaimer text that users must agree with before chat.';
|
|
8296
|
+
}
|
|
8297
|
+
/**
|
|
8298
|
+
* Icon for this commitment.
|
|
8299
|
+
*/
|
|
8300
|
+
get icon() {
|
|
8301
|
+
return '⚠️';
|
|
8302
|
+
}
|
|
8303
|
+
/**
|
|
8304
|
+
* Markdown documentation for META DISCLAIMER commitment.
|
|
8305
|
+
*/
|
|
8306
|
+
get documentation() {
|
|
8307
|
+
return spaceTrim$1(`
|
|
8308
|
+
# META DISCLAIMER
|
|
8309
|
+
|
|
8310
|
+
Defines a markdown disclaimer shown to users before they can start chatting with the agent.
|
|
8311
|
+
|
|
8312
|
+
## Key aspects
|
|
8313
|
+
|
|
8314
|
+
- Does not modify the system message or model requirements.
|
|
8315
|
+
- Supports multiline markdown content.
|
|
8316
|
+
- Intended for legal warnings, safety notices, and mandatory acknowledgements.
|
|
8317
|
+
- If multiple \`META DISCLAIMER\` commitments are present, the last one takes precedence.
|
|
8318
|
+
|
|
8319
|
+
## Example
|
|
8320
|
+
|
|
8321
|
+
\`\`\`book
|
|
8322
|
+
Legal Assistant
|
|
8323
|
+
|
|
8324
|
+
META DISCLAIMER
|
|
8325
|
+
|
|
8326
|
+
This assistant provides **informational content only** and does not
|
|
8327
|
+
replace professional legal advice.
|
|
8328
|
+
\`\`\`
|
|
8329
|
+
`);
|
|
8330
|
+
}
|
|
8331
|
+
applyToAgentModelRequirements(requirements, content) {
|
|
8332
|
+
// META DISCLAIMER does not modify model requirements.
|
|
8333
|
+
// It is consumed by parsing/UI layers in Agents Server.
|
|
8334
|
+
return requirements;
|
|
8335
|
+
}
|
|
8336
|
+
}
|
|
8337
|
+
/**
|
|
8338
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
8339
|
+
*/
|
|
8340
|
+
|
|
8112
8341
|
/**
|
|
8113
8342
|
* META FONT commitment definition
|
|
8114
8343
|
*
|
|
@@ -11006,75 +11235,290 @@ class UseTimeCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
11006
11235
|
*/
|
|
11007
11236
|
|
|
11008
11237
|
/**
|
|
11009
|
-
*
|
|
11238
|
+
* Tool name used by the USE USER LOCATION commitment.
|
|
11010
11239
|
*
|
|
11011
|
-
*
|
|
11012
|
-
|
|
11240
|
+
* @private internal USE USER LOCATION constant
|
|
11241
|
+
*/
|
|
11242
|
+
const GET_USER_LOCATION_TOOL_NAME = 'get_user_location';
|
|
11243
|
+
/**
|
|
11244
|
+
* Returns a finite number when valid.
|
|
11013
11245
|
*
|
|
11014
|
-
* @
|
|
11246
|
+
* @private utility of USE USER LOCATION commitment
|
|
11015
11247
|
*/
|
|
11016
|
-
|
|
11017
|
-
|
|
11018
|
-
|
|
11248
|
+
function normalizeFiniteNumber(value) {
|
|
11249
|
+
if (typeof value !== 'number') {
|
|
11250
|
+
return undefined;
|
|
11251
|
+
}
|
|
11252
|
+
return Number.isFinite(value) ? value : undefined;
|
|
11253
|
+
}
|
|
11254
|
+
/**
|
|
11255
|
+
* Returns a finite number or null when explicitly null.
|
|
11256
|
+
*
|
|
11257
|
+
* @private utility of USE USER LOCATION commitment
|
|
11258
|
+
*/
|
|
11259
|
+
function normalizeNullableFiniteNumber(value) {
|
|
11260
|
+
if (value === null) {
|
|
11261
|
+
return null;
|
|
11262
|
+
}
|
|
11263
|
+
return normalizeFiniteNumber(value);
|
|
11264
|
+
}
|
|
11265
|
+
/**
|
|
11266
|
+
* Normalizes raw runtime location payload into a safe location object.
|
|
11267
|
+
*
|
|
11268
|
+
* @private utility of USE USER LOCATION commitment
|
|
11269
|
+
*/
|
|
11270
|
+
function normalizeUserLocation(location) {
|
|
11271
|
+
return {
|
|
11272
|
+
permission: location.permission,
|
|
11273
|
+
latitude: normalizeFiniteNumber(location.latitude),
|
|
11274
|
+
longitude: normalizeFiniteNumber(location.longitude),
|
|
11275
|
+
accuracyMeters: normalizeFiniteNumber(location.accuracyMeters),
|
|
11276
|
+
altitudeMeters: normalizeNullableFiniteNumber(location.altitudeMeters),
|
|
11277
|
+
headingDegrees: normalizeNullableFiniteNumber(location.headingDegrees),
|
|
11278
|
+
speedMetersPerSecond: normalizeNullableFiniteNumber(location.speedMetersPerSecond),
|
|
11279
|
+
timestamp: typeof location.timestamp === 'string' ? location.timestamp : undefined,
|
|
11280
|
+
};
|
|
11281
|
+
}
|
|
11282
|
+
/**
|
|
11283
|
+
* Resolves the user location payload from hidden tool runtime context.
|
|
11284
|
+
*
|
|
11285
|
+
* @private utility of USE USER LOCATION commitment
|
|
11286
|
+
*/
|
|
11287
|
+
function resolveUserLocationFromRuntimeContext(args) {
|
|
11288
|
+
const runtimeContext = readToolRuntimeContextFromToolArgs(args);
|
|
11289
|
+
const location = runtimeContext === null || runtimeContext === void 0 ? void 0 : runtimeContext.userLocation;
|
|
11290
|
+
if (!location || typeof location !== 'object') {
|
|
11291
|
+
return null;
|
|
11292
|
+
}
|
|
11293
|
+
return normalizeUserLocation(location);
|
|
11294
|
+
}
|
|
11295
|
+
/**
|
|
11296
|
+
* Creates a standard "unavailable location" tool result.
|
|
11297
|
+
*
|
|
11298
|
+
* @private utility of USE USER LOCATION commitment
|
|
11299
|
+
*/
|
|
11300
|
+
function createUnavailableLocationResult() {
|
|
11301
|
+
return {
|
|
11302
|
+
status: 'unavailable',
|
|
11303
|
+
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.',
|
|
11304
|
+
};
|
|
11305
|
+
}
|
|
11306
|
+
/**
|
|
11307
|
+
* Creates a standard "permission denied" tool result.
|
|
11308
|
+
*
|
|
11309
|
+
* @private utility of USE USER LOCATION commitment
|
|
11310
|
+
*/
|
|
11311
|
+
function createPermissionDeniedResult() {
|
|
11312
|
+
return {
|
|
11313
|
+
status: 'permission-denied',
|
|
11314
|
+
message: 'Location access is denied by the user/browser. Ask the user to enable location access or provide their location manually.',
|
|
11315
|
+
};
|
|
11316
|
+
}
|
|
11317
|
+
/**
|
|
11318
|
+
* USE USER LOCATION commitment definition.
|
|
11319
|
+
*
|
|
11320
|
+
* The `USE USER LOCATION` commitment enables an agent to retrieve user location from runtime context.
|
|
11321
|
+
*
|
|
11322
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
11323
|
+
*/
|
|
11324
|
+
class UseUserLocationCommitmentDefinition extends BaseCommitmentDefinition {
|
|
11325
|
+
constructor() {
|
|
11326
|
+
super('USE USER LOCATION', ['USER LOCATION']);
|
|
11327
|
+
}
|
|
11328
|
+
get requiresContent() {
|
|
11329
|
+
return false;
|
|
11019
11330
|
}
|
|
11020
11331
|
/**
|
|
11021
|
-
* Short one-line description of
|
|
11332
|
+
* Short one-line description of USE USER LOCATION.
|
|
11022
11333
|
*/
|
|
11023
11334
|
get description() {
|
|
11024
|
-
return '
|
|
11335
|
+
return 'Enable the agent to determine the user location when browser permission is granted.';
|
|
11025
11336
|
}
|
|
11026
11337
|
/**
|
|
11027
11338
|
* Icon for this commitment.
|
|
11028
11339
|
*/
|
|
11029
11340
|
get icon() {
|
|
11030
|
-
return '
|
|
11341
|
+
return '📍';
|
|
11031
11342
|
}
|
|
11032
11343
|
/**
|
|
11033
|
-
* Markdown documentation
|
|
11344
|
+
* Markdown documentation for USE USER LOCATION commitment.
|
|
11034
11345
|
*/
|
|
11035
11346
|
get documentation() {
|
|
11036
11347
|
return spaceTrim$1(`
|
|
11037
|
-
#
|
|
11348
|
+
# USE USER LOCATION
|
|
11038
11349
|
|
|
11039
|
-
|
|
11350
|
+
Enables the agent to retrieve the user's location from runtime context.
|
|
11040
11351
|
|
|
11041
11352
|
## Key aspects
|
|
11042
11353
|
|
|
11043
|
-
-
|
|
11044
|
-
-
|
|
11045
|
-
-
|
|
11354
|
+
- The location is requested by the browser runtime (with user permission).
|
|
11355
|
+
- Use the tool \`get_user_location\` when an answer depends on user's location.
|
|
11356
|
+
- If location is unavailable or denied, ask the user to enable location sharing or provide location manually.
|
|
11357
|
+
- The content following \`USE USER LOCATION\` can define additional location usage instructions.
|
|
11046
11358
|
|
|
11047
|
-
##
|
|
11359
|
+
## Examples
|
|
11048
11360
|
|
|
11049
|
-
|
|
11050
|
-
|
|
11051
|
-
- **Future:** Will be replaced with specialized logic
|
|
11361
|
+
\`\`\`book
|
|
11362
|
+
Local Assistant
|
|
11052
11363
|
|
|
11053
|
-
|
|
11364
|
+
PERSONA You help with local recommendations.
|
|
11365
|
+
USE USER LOCATION
|
|
11366
|
+
\`\`\`
|
|
11054
11367
|
|
|
11055
11368
|
\`\`\`book
|
|
11056
|
-
|
|
11369
|
+
Travel Assistant
|
|
11057
11370
|
|
|
11058
|
-
PERSONA You
|
|
11059
|
-
|
|
11060
|
-
RULE Always be helpful
|
|
11371
|
+
PERSONA You help users with nearby transport and weather.
|
|
11372
|
+
USE USER LOCATION Use location only when strictly needed.
|
|
11061
11373
|
\`\`\`
|
|
11062
11374
|
`);
|
|
11063
11375
|
}
|
|
11064
11376
|
applyToAgentModelRequirements(requirements, content) {
|
|
11065
|
-
const
|
|
11066
|
-
|
|
11067
|
-
|
|
11068
|
-
|
|
11069
|
-
|
|
11070
|
-
|
|
11071
|
-
|
|
11377
|
+
const extraInstructions = formatOptionalInstructionBlock('User location instructions', content);
|
|
11378
|
+
const existingTools = requirements.tools || [];
|
|
11379
|
+
const tools = existingTools.some((tool) => tool.name === GET_USER_LOCATION_TOOL_NAME)
|
|
11380
|
+
? existingTools
|
|
11381
|
+
: [
|
|
11382
|
+
...existingTools,
|
|
11383
|
+
{
|
|
11384
|
+
name: GET_USER_LOCATION_TOOL_NAME,
|
|
11385
|
+
description: spaceTrim$1(`
|
|
11386
|
+
Retrieves user location shared by browser runtime (if permission is granted).
|
|
11387
|
+
Returns JSON status with coordinates and metadata when available.
|
|
11388
|
+
`),
|
|
11389
|
+
parameters: {
|
|
11390
|
+
type: 'object',
|
|
11391
|
+
properties: {},
|
|
11392
|
+
required: [],
|
|
11393
|
+
},
|
|
11394
|
+
},
|
|
11395
|
+
];
|
|
11396
|
+
return this.appendToSystemMessage({
|
|
11397
|
+
...requirements,
|
|
11398
|
+
tools,
|
|
11399
|
+
_metadata: {
|
|
11400
|
+
...requirements._metadata,
|
|
11401
|
+
useUserLocation: content || true,
|
|
11402
|
+
},
|
|
11403
|
+
}, spaceTrim$1((block) => `
|
|
11404
|
+
User location:
|
|
11405
|
+
- Use "${GET_USER_LOCATION_TOOL_NAME}" only when location is needed for a better answer.
|
|
11406
|
+
- If the tool returns "unavailable" or "permission-denied", ask user to share location or provide city manually.
|
|
11407
|
+
- Do not invent coordinates or local facts when location is unavailable.
|
|
11408
|
+
${block(extraInstructions)}
|
|
11409
|
+
`));
|
|
11410
|
+
}
|
|
11411
|
+
/**
|
|
11412
|
+
* Gets human-readable titles for tool functions provided by this commitment.
|
|
11413
|
+
*/
|
|
11414
|
+
getToolTitles() {
|
|
11415
|
+
return {
|
|
11416
|
+
[GET_USER_LOCATION_TOOL_NAME]: 'Get user location',
|
|
11417
|
+
};
|
|
11418
|
+
}
|
|
11419
|
+
/**
|
|
11420
|
+
* Gets the `get_user_location` tool function implementation.
|
|
11421
|
+
*/
|
|
11422
|
+
getToolFunctions() {
|
|
11423
|
+
return {
|
|
11424
|
+
async [GET_USER_LOCATION_TOOL_NAME](args) {
|
|
11425
|
+
const location = resolveUserLocationFromRuntimeContext(args);
|
|
11426
|
+
if (!location) {
|
|
11427
|
+
return JSON.stringify(createUnavailableLocationResult());
|
|
11428
|
+
}
|
|
11429
|
+
if (location.permission === 'denied') {
|
|
11430
|
+
return JSON.stringify(createPermissionDeniedResult());
|
|
11431
|
+
}
|
|
11432
|
+
if (location.latitude === undefined || location.longitude === undefined) {
|
|
11433
|
+
return JSON.stringify(createUnavailableLocationResult());
|
|
11434
|
+
}
|
|
11435
|
+
const result = {
|
|
11436
|
+
status: 'ok',
|
|
11437
|
+
location: {
|
|
11438
|
+
...location,
|
|
11439
|
+
permission: location.permission || 'granted',
|
|
11440
|
+
},
|
|
11441
|
+
message: 'User location is available.',
|
|
11442
|
+
};
|
|
11443
|
+
return JSON.stringify(result);
|
|
11444
|
+
},
|
|
11445
|
+
};
|
|
11072
11446
|
}
|
|
11073
11447
|
}
|
|
11074
|
-
|
|
11075
|
-
// Import all commitment definition classes
|
|
11076
11448
|
/**
|
|
11077
|
-
*
|
|
11449
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
11450
|
+
*/
|
|
11451
|
+
|
|
11452
|
+
/**
|
|
11453
|
+
* Placeholder commitment definition for commitments that are not yet implemented
|
|
11454
|
+
*
|
|
11455
|
+
* This commitment simply adds its content 1:1 into the system message,
|
|
11456
|
+
* preserving the original behavior until proper implementation is added.
|
|
11457
|
+
*
|
|
11458
|
+
* @public exported from `@promptbook/core`
|
|
11459
|
+
*/
|
|
11460
|
+
class NotYetImplementedCommitmentDefinition extends BaseCommitmentDefinition {
|
|
11461
|
+
constructor(type) {
|
|
11462
|
+
super(type);
|
|
11463
|
+
}
|
|
11464
|
+
/**
|
|
11465
|
+
* Short one-line description of a placeholder commitment.
|
|
11466
|
+
*/
|
|
11467
|
+
get description() {
|
|
11468
|
+
return 'Placeholder commitment that appends content verbatim to the system message.';
|
|
11469
|
+
}
|
|
11470
|
+
/**
|
|
11471
|
+
* Icon for this commitment.
|
|
11472
|
+
*/
|
|
11473
|
+
get icon() {
|
|
11474
|
+
return '🚧';
|
|
11475
|
+
}
|
|
11476
|
+
/**
|
|
11477
|
+
* Markdown documentation available at runtime.
|
|
11478
|
+
*/
|
|
11479
|
+
get documentation() {
|
|
11480
|
+
return spaceTrim$1(`
|
|
11481
|
+
# ${this.type}
|
|
11482
|
+
|
|
11483
|
+
This commitment is not yet fully implemented.
|
|
11484
|
+
|
|
11485
|
+
## Key aspects
|
|
11486
|
+
|
|
11487
|
+
- Content is appended directly to the system message.
|
|
11488
|
+
- No special processing or validation is performed.
|
|
11489
|
+
- Behavior preserved until proper implementation is added.
|
|
11490
|
+
|
|
11491
|
+
## Status
|
|
11492
|
+
|
|
11493
|
+
- **Status:** Placeholder implementation
|
|
11494
|
+
- **Effect:** Appends content prefixed by commitment type
|
|
11495
|
+
- **Future:** Will be replaced with specialized logic
|
|
11496
|
+
|
|
11497
|
+
## Examples
|
|
11498
|
+
|
|
11499
|
+
\`\`\`book
|
|
11500
|
+
Example Agent
|
|
11501
|
+
|
|
11502
|
+
PERSONA You are a helpful assistant
|
|
11503
|
+
${this.type} Your content here
|
|
11504
|
+
RULE Always be helpful
|
|
11505
|
+
\`\`\`
|
|
11506
|
+
`);
|
|
11507
|
+
}
|
|
11508
|
+
applyToAgentModelRequirements(requirements, content) {
|
|
11509
|
+
const trimmedContent = content.trim();
|
|
11510
|
+
if (!trimmedContent) {
|
|
11511
|
+
return requirements;
|
|
11512
|
+
}
|
|
11513
|
+
// Add the commitment content 1:1 to the system message
|
|
11514
|
+
const commitmentLine = `${this.type} ${trimmedContent}`;
|
|
11515
|
+
return this.appendToSystemMessage(requirements, commitmentLine, '\n\n');
|
|
11516
|
+
}
|
|
11517
|
+
}
|
|
11518
|
+
|
|
11519
|
+
// Import all commitment definition classes
|
|
11520
|
+
/**
|
|
11521
|
+
* Registry of all available commitment definitions
|
|
11078
11522
|
* This array contains instances of all commitment definitions
|
|
11079
11523
|
* This is the single source of truth for all commitments in the system
|
|
11080
11524
|
*
|
|
@@ -11111,6 +11555,7 @@ const COMMITMENT_REGISTRY = [
|
|
|
11111
11555
|
new MetaColorCommitmentDefinition(),
|
|
11112
11556
|
new MetaFontCommitmentDefinition(),
|
|
11113
11557
|
new MetaLinkCommitmentDefinition(),
|
|
11558
|
+
new MetaDisclaimerCommitmentDefinition(),
|
|
11114
11559
|
new MetaCommitmentDefinition(),
|
|
11115
11560
|
new NoteCommitmentDefinition('NOTE'),
|
|
11116
11561
|
new NoteCommitmentDefinition('NOTES'),
|
|
@@ -11122,6 +11567,7 @@ const COMMITMENT_REGISTRY = [
|
|
|
11122
11567
|
new InitialMessageCommitmentDefinition(),
|
|
11123
11568
|
new UserMessageCommitmentDefinition(),
|
|
11124
11569
|
new AgentMessageCommitmentDefinition(),
|
|
11570
|
+
new MessageSuffixCommitmentDefinition(),
|
|
11125
11571
|
new MessageCommitmentDefinition('MESSAGE'),
|
|
11126
11572
|
new MessageCommitmentDefinition('MESSAGES'),
|
|
11127
11573
|
new ScenarioCommitmentDefinition('SCENARIO'),
|
|
@@ -11137,6 +11583,7 @@ const COMMITMENT_REGISTRY = [
|
|
|
11137
11583
|
new UseBrowserCommitmentDefinition(),
|
|
11138
11584
|
new UseSearchEngineCommitmentDefinition(),
|
|
11139
11585
|
new UseTimeCommitmentDefinition(),
|
|
11586
|
+
new UseUserLocationCommitmentDefinition(),
|
|
11140
11587
|
new UseEmailCommitmentDefinition(),
|
|
11141
11588
|
new UseImageGeneratorCommitmentDefinition('USE IMAGE GENERATOR'),
|
|
11142
11589
|
new UseMcpCommitmentDefinition(),
|
|
@@ -11488,6 +11935,14 @@ function parseAgentSource(agentSource) {
|
|
|
11488
11935
|
});
|
|
11489
11936
|
continue;
|
|
11490
11937
|
}
|
|
11938
|
+
if (commitment.type === 'USE USER LOCATION') {
|
|
11939
|
+
capabilities.push({
|
|
11940
|
+
type: 'user-location',
|
|
11941
|
+
label: 'User location',
|
|
11942
|
+
iconName: 'MapPin',
|
|
11943
|
+
});
|
|
11944
|
+
continue;
|
|
11945
|
+
}
|
|
11491
11946
|
if (commitment.type === 'USE EMAIL' /* || commitment.type === 'EMAIL' || commitment.type === 'MAIL' */) {
|
|
11492
11947
|
capabilities.push({
|
|
11493
11948
|
type: 'email',
|
|
@@ -11622,6 +12077,14 @@ function parseAgentSource(agentSource) {
|
|
|
11622
12077
|
meta.description = spaceTrim$2(commitment.content);
|
|
11623
12078
|
continue;
|
|
11624
12079
|
}
|
|
12080
|
+
if (commitment.type === 'META DISCLAIMER') {
|
|
12081
|
+
meta.disclaimer = commitment.content;
|
|
12082
|
+
continue;
|
|
12083
|
+
}
|
|
12084
|
+
if (commitment.type === 'MESSAGE SUFFIX') {
|
|
12085
|
+
meta.messageSuffix = commitment.content;
|
|
12086
|
+
continue;
|
|
12087
|
+
}
|
|
11625
12088
|
if (commitment.type === 'META COLOR') {
|
|
11626
12089
|
meta.color = normalizeSeparator(commitment.content);
|
|
11627
12090
|
continue;
|
|
@@ -11828,73 +12291,6 @@ var css_248z$d = ".BookEditor-module_BookEditor__s-0PU{width:100%}.BookEditor-mo
|
|
|
11828
12291
|
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"};
|
|
11829
12292
|
styleInject(css_248z$d);
|
|
11830
12293
|
|
|
11831
|
-
/**
|
|
11832
|
-
* Helper for manipulating agent books in-memory.
|
|
11833
|
-
*
|
|
11834
|
-
* @private internal helper for `@promptbook/core`
|
|
11835
|
-
*/
|
|
11836
|
-
class BookEditable {
|
|
11837
|
-
/**
|
|
11838
|
-
* Creates a mutable view over the supplied book content.
|
|
11839
|
-
*
|
|
11840
|
-
* @param book - Agent source text to work with.
|
|
11841
|
-
*/
|
|
11842
|
-
constructor(book) {
|
|
11843
|
-
this.lines = book.split(/\r?\n/);
|
|
11844
|
-
}
|
|
11845
|
-
/**
|
|
11846
|
-
* Creates a new instance from the supplied book text.
|
|
11847
|
-
*
|
|
11848
|
-
* @param book - Agent source text to work with.
|
|
11849
|
-
* @returns Editable view over the book content.
|
|
11850
|
-
*/
|
|
11851
|
-
static from(book) {
|
|
11852
|
-
return new BookEditable(book);
|
|
11853
|
-
}
|
|
11854
|
-
/**
|
|
11855
|
-
* Returns the editable content as a string_book.
|
|
11856
|
-
*
|
|
11857
|
-
* @returns Current book content with original line breaks preserved.
|
|
11858
|
-
*/
|
|
11859
|
-
toString() {
|
|
11860
|
-
return this.lines.join('\n');
|
|
11861
|
-
}
|
|
11862
|
-
/**
|
|
11863
|
-
* Checks whether the book contains any non-empty lines.
|
|
11864
|
-
*
|
|
11865
|
-
* @returns `true` when the book has meaningful content beyond blank lines.
|
|
11866
|
-
*/
|
|
11867
|
-
hasNonEmptyContent() {
|
|
11868
|
-
return this.lines.some((line) => line.trim() !== '');
|
|
11869
|
-
}
|
|
11870
|
-
/**
|
|
11871
|
-
* Finds the last line index whose trimmed text matches the commitment name.
|
|
11872
|
-
*
|
|
11873
|
-
* @param commitment - Commitment keyword to locate (for example `CLOSED`).
|
|
11874
|
-
* @returns Zero-based line index or `null` when the commitment is absent.
|
|
11875
|
-
*/
|
|
11876
|
-
findLastCommitmentLineIndex(commitment) {
|
|
11877
|
-
const normalized = commitment.trim().toUpperCase();
|
|
11878
|
-
for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
|
|
11879
|
-
const line = this.lines[lineIndex];
|
|
11880
|
-
if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
|
|
11881
|
-
return lineIndex;
|
|
11882
|
-
}
|
|
11883
|
-
}
|
|
11884
|
-
return null;
|
|
11885
|
-
}
|
|
11886
|
-
}
|
|
11887
|
-
|
|
11888
|
-
/**
|
|
11889
|
-
* Gets all available commitment definitions
|
|
11890
|
-
* @returns Array of all commitment definitions
|
|
11891
|
-
*
|
|
11892
|
-
* @public exported from `@promptbook/core`
|
|
11893
|
-
*/
|
|
11894
|
-
function getAllCommitmentDefinitions() {
|
|
11895
|
-
return $deepFreeze([...COMMITMENT_REGISTRY]);
|
|
11896
|
-
}
|
|
11897
|
-
|
|
11898
12294
|
/**
|
|
11899
12295
|
* Renders a save icon.
|
|
11900
12296
|
*
|
|
@@ -12928,122 +13324,164 @@ function BookEditorActionbar(props) {
|
|
|
12928
13324
|
}, children: jsx(AboutPromptbookInformation, {}) }))] }));
|
|
12929
13325
|
}
|
|
12930
13326
|
|
|
12931
|
-
const BOOK_LANGUAGE_ID = 'book';
|
|
12932
|
-
const LINE_HEIGHT = 28;
|
|
12933
|
-
const CONTENT_PADDING_LEFT = 20;
|
|
12934
|
-
const VERTICAL_LINE_LEFT = 0; // <- TODO: This value is weird
|
|
12935
|
-
const UPLOAD_EDIT_DEBOUNCE_MS = 300;
|
|
12936
|
-
const UPLOAD_PROGRESS_DEBOUNCE_MS = 150;
|
|
12937
|
-
/**
|
|
12938
|
-
* Monaco marker owner used for external diagnostics injected into the editor.
|
|
12939
|
-
*/
|
|
12940
|
-
const DIAGNOSTIC_MARKER_OWNER = 'book-editor-diagnostics';
|
|
12941
|
-
/**
|
|
12942
|
-
* Matches absolute agent URLs (only `/agents/...` paths).
|
|
12943
|
-
*/
|
|
12944
|
-
const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
|
|
12945
|
-
/**
|
|
12946
|
-
* Matches all clickable agent-reference token variants in Book text.
|
|
12947
|
-
*/
|
|
12948
|
-
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;
|
|
12949
13327
|
/**
|
|
12950
|
-
*
|
|
12951
|
-
|
|
12952
|
-
|
|
12953
|
-
/**
|
|
12954
|
-
* Regex rules reused by Monaco tokenization for agent-reference highlighting.
|
|
13328
|
+
* Shared constants for `BookEditorMonaco`.
|
|
13329
|
+
*
|
|
13330
|
+
* @private function of BookEditorMonaco
|
|
12955
13331
|
*/
|
|
12956
|
-
const
|
|
12957
|
-
|
|
12958
|
-
|
|
12959
|
-
|
|
12960
|
-
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
12964
|
-
const UPLOAD_STATUS_LABELS = {
|
|
12965
|
-
queued: 'Queued',
|
|
12966
|
-
uploading: 'Uploading',
|
|
12967
|
-
paused: 'Paused',
|
|
12968
|
-
completed: 'Completed',
|
|
12969
|
-
failed: 'Failed',
|
|
13332
|
+
const BookEditorMonacoConstants = {
|
|
13333
|
+
BOOK_LANGUAGE_ID: 'book',
|
|
13334
|
+
LINE_HEIGHT: 28,
|
|
13335
|
+
CONTENT_PADDING_LEFT: 20,
|
|
13336
|
+
VERTICAL_LINE_LEFT: 0,
|
|
13337
|
+
UPLOAD_EDIT_DEBOUNCE_MS: 300,
|
|
13338
|
+
UPLOAD_PROGRESS_DEBOUNCE_MS: 150,
|
|
13339
|
+
DIAGNOSTIC_MARKER_OWNER: 'book-editor-diagnostics',
|
|
12970
13340
|
};
|
|
13341
|
+
|
|
12971
13342
|
/**
|
|
12972
|
-
*
|
|
13343
|
+
* Adds visual decorations for separators and code blocks inside `BookEditorMonaco`.
|
|
13344
|
+
*
|
|
13345
|
+
* @private function of BookEditorMonaco
|
|
12973
13346
|
*/
|
|
12974
|
-
|
|
13347
|
+
function useBookEditorMonacoDecorations({ editor, monaco }) {
|
|
13348
|
+
const decorationIdsRef = useRef([]);
|
|
13349
|
+
const codeBlockDecorationIdsRef = useRef([]);
|
|
13350
|
+
useEffect(() => {
|
|
13351
|
+
if (!editor || !monaco) {
|
|
13352
|
+
return;
|
|
13353
|
+
}
|
|
13354
|
+
const updateDecorations = () => {
|
|
13355
|
+
const model = editor.getModel();
|
|
13356
|
+
if (!model) {
|
|
13357
|
+
return;
|
|
13358
|
+
}
|
|
13359
|
+
const text = model.getValue();
|
|
13360
|
+
const matches = text.matchAll(/^---[-]*$/gm);
|
|
13361
|
+
const newDecorations = [];
|
|
13362
|
+
for (const match of matches) {
|
|
13363
|
+
if (match.index === undefined) {
|
|
13364
|
+
continue;
|
|
13365
|
+
}
|
|
13366
|
+
const startPos = model.getPositionAt(match.index);
|
|
13367
|
+
const endPos = model.getPositionAt(match.index + match[0].length);
|
|
13368
|
+
newDecorations.push({
|
|
13369
|
+
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13370
|
+
options: {
|
|
13371
|
+
isWholeLine: true,
|
|
13372
|
+
className: 'separator-line',
|
|
13373
|
+
inlineClassName: 'transparent-text',
|
|
13374
|
+
},
|
|
13375
|
+
});
|
|
13376
|
+
}
|
|
13377
|
+
decorationIdsRef.current = editor.deltaDecorations(decorationIdsRef.current, newDecorations);
|
|
13378
|
+
const lines = text.split(/\r?\n/);
|
|
13379
|
+
const codeBlockDecorations = [];
|
|
13380
|
+
let inCodeBlock = false;
|
|
13381
|
+
let codeBlockStartLine = 0;
|
|
13382
|
+
for (let i = 0; i < lines.length; i++) {
|
|
13383
|
+
const line = lines[i];
|
|
13384
|
+
if (line === null || line === void 0 ? void 0 : line.trim().startsWith('```')) {
|
|
13385
|
+
if (!inCodeBlock) {
|
|
13386
|
+
inCodeBlock = true;
|
|
13387
|
+
codeBlockStartLine = i + 1;
|
|
13388
|
+
}
|
|
13389
|
+
else {
|
|
13390
|
+
inCodeBlock = false;
|
|
13391
|
+
const endLine = i + 1;
|
|
13392
|
+
for (let j = codeBlockStartLine; j <= endLine; j++) {
|
|
13393
|
+
const isFirst = j === codeBlockStartLine;
|
|
13394
|
+
const isLast = j === endLine;
|
|
13395
|
+
codeBlockDecorations.push({
|
|
13396
|
+
range: new monaco.Range(j, 1, j, 1),
|
|
13397
|
+
options: {
|
|
13398
|
+
isWholeLine: true,
|
|
13399
|
+
className: `code-block-box${isFirst ? ' code-block-top' : ''}${isLast ? ' code-block-bottom' : ''}`,
|
|
13400
|
+
},
|
|
13401
|
+
});
|
|
13402
|
+
}
|
|
13403
|
+
}
|
|
13404
|
+
}
|
|
13405
|
+
}
|
|
13406
|
+
codeBlockDecorationIdsRef.current = editor.deltaDecorations(codeBlockDecorationIdsRef.current, codeBlockDecorations);
|
|
13407
|
+
};
|
|
13408
|
+
updateDecorations();
|
|
13409
|
+
const changeListener = editor.onDidChangeModelContent(() => {
|
|
13410
|
+
updateDecorations();
|
|
13411
|
+
});
|
|
13412
|
+
return () => {
|
|
13413
|
+
changeListener.dispose();
|
|
13414
|
+
};
|
|
13415
|
+
}, [editor, monaco]);
|
|
13416
|
+
}
|
|
13417
|
+
|
|
13418
|
+
const toMonacoMarkerSeverity = (monaco, severity) => {
|
|
12975
13419
|
if (severity === 'warning') {
|
|
12976
|
-
return MarkerSeverity.Warning;
|
|
13420
|
+
return monaco.MarkerSeverity.Warning;
|
|
12977
13421
|
}
|
|
12978
13422
|
if (severity === 'info') {
|
|
12979
|
-
return MarkerSeverity.Info;
|
|
13423
|
+
return monaco.MarkerSeverity.Info;
|
|
12980
13424
|
}
|
|
12981
13425
|
if (severity === 'hint') {
|
|
12982
|
-
return MarkerSeverity.Hint;
|
|
12983
|
-
}
|
|
12984
|
-
return MarkerSeverity.Error;
|
|
12985
|
-
};
|
|
12986
|
-
/**
|
|
12987
|
-
* Builds the placeholder text for an in-progress upload entry.
|
|
12988
|
-
*/
|
|
12989
|
-
const getUploadPlaceholderText = (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`;
|
|
12990
|
-
/**
|
|
12991
|
-
* Formats a byte size into a readable string.
|
|
12992
|
-
*/
|
|
12993
|
-
const formatBytes = (bytes) => {
|
|
12994
|
-
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
12995
|
-
return '0 B';
|
|
12996
|
-
}
|
|
12997
|
-
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
12998
|
-
const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
|
|
12999
|
-
const value = bytes / Math.pow(1024, exponent);
|
|
13000
|
-
const precision = value >= 10 || exponent === 0 ? 0 : 1;
|
|
13001
|
-
return `${value.toFixed(precision)} ${units[exponent]}`;
|
|
13002
|
-
};
|
|
13003
|
-
/**
|
|
13004
|
-
* Formats a duration in milliseconds into a readable timer string.
|
|
13005
|
-
*/
|
|
13006
|
-
const formatDuration = (durationMs) => {
|
|
13007
|
-
if (!Number.isFinite(durationMs) || durationMs <= 0) {
|
|
13008
|
-
return '0:00';
|
|
13009
|
-
}
|
|
13010
|
-
const totalSeconds = Math.floor(durationMs / 1000);
|
|
13011
|
-
const seconds = totalSeconds % 60;
|
|
13012
|
-
const minutes = Math.floor(totalSeconds / 60) % 60;
|
|
13013
|
-
const hours = Math.floor(totalSeconds / 3600);
|
|
13014
|
-
const paddedSeconds = `${seconds}`.padStart(2, '0');
|
|
13015
|
-
if (hours > 0) {
|
|
13016
|
-
const paddedMinutes = `${minutes}`.padStart(2, '0');
|
|
13017
|
-
return `${hours}:${paddedMinutes}:${paddedSeconds}`;
|
|
13426
|
+
return monaco.MarkerSeverity.Hint;
|
|
13018
13427
|
}
|
|
13019
|
-
return
|
|
13428
|
+
return monaco.MarkerSeverity.Error;
|
|
13020
13429
|
};
|
|
13021
13430
|
/**
|
|
13022
|
-
*
|
|
13431
|
+
* Synchronizes Monaco markers with the diagnostics provided to `BookEditorMonaco`.
|
|
13432
|
+
*
|
|
13433
|
+
* @private function of BookEditorMonaco
|
|
13023
13434
|
*/
|
|
13024
|
-
|
|
13025
|
-
|
|
13026
|
-
|
|
13027
|
-
|
|
13028
|
-
|
|
13029
|
-
|
|
13030
|
-
|
|
13435
|
+
function useBookEditorMonacoDiagnostics({ editor, monaco, diagnostics }) {
|
|
13436
|
+
useEffect(() => {
|
|
13437
|
+
if (!editor || !monaco) {
|
|
13438
|
+
return;
|
|
13439
|
+
}
|
|
13440
|
+
const model = editor.getModel();
|
|
13441
|
+
if (!model) {
|
|
13442
|
+
return;
|
|
13443
|
+
}
|
|
13444
|
+
const markers = (diagnostics || []).map((diagnostic) => ({
|
|
13445
|
+
startLineNumber: diagnostic.startLineNumber,
|
|
13446
|
+
startColumn: diagnostic.startColumn,
|
|
13447
|
+
endLineNumber: diagnostic.endLineNumber,
|
|
13448
|
+
endColumn: diagnostic.endColumn,
|
|
13449
|
+
message: diagnostic.message,
|
|
13450
|
+
source: diagnostic.source,
|
|
13451
|
+
severity: toMonacoMarkerSeverity(monaco, diagnostic.severity),
|
|
13452
|
+
}));
|
|
13453
|
+
monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, markers);
|
|
13454
|
+
return () => {
|
|
13455
|
+
monaco.editor.setModelMarkers(model, BookEditorMonacoConstants.DIAGNOSTIC_MARKER_OWNER, []);
|
|
13456
|
+
};
|
|
13457
|
+
}, [diagnostics, editor, monaco]);
|
|
13458
|
+
}
|
|
13459
|
+
|
|
13031
13460
|
/**
|
|
13032
|
-
*
|
|
13461
|
+
* Gets all available commitment definitions
|
|
13462
|
+
* @returns Array of all commitment definitions
|
|
13463
|
+
*
|
|
13464
|
+
* @public exported from `@promptbook/core`
|
|
13033
13465
|
*/
|
|
13034
|
-
|
|
13035
|
-
|
|
13036
|
-
|
|
13037
|
-
|
|
13038
|
-
if (typeof error === 'object' && 'name' in error) {
|
|
13039
|
-
return error.name === 'AbortError';
|
|
13040
|
-
}
|
|
13041
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
13042
|
-
return message.toLowerCase().includes('abort');
|
|
13043
|
-
};
|
|
13466
|
+
function getAllCommitmentDefinitions() {
|
|
13467
|
+
return $deepFreeze([...COMMITMENT_REGISTRY]);
|
|
13468
|
+
}
|
|
13469
|
+
|
|
13044
13470
|
/**
|
|
13045
|
-
*
|
|
13471
|
+
* Agent reference helpers for `BookEditorMonaco`.
|
|
13472
|
+
*
|
|
13473
|
+
* @private function of BookEditorMonaco
|
|
13046
13474
|
*/
|
|
13475
|
+
const AGENT_URL_REFERENCE_REGEX = /https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/i;
|
|
13476
|
+
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;
|
|
13477
|
+
const AGENT_REFERENCE_BRACED_REGEX = /^\{([\s\S]+)\}$/;
|
|
13478
|
+
const AGENT_REFERENCE_HIGHLIGHT_REGEXES = [
|
|
13479
|
+
/\{https?:\/\/[^\s{}]+\/agents\/[^\s{}]+\}/,
|
|
13480
|
+
/https?:\/\/[^\s{}]+\/agents\/[^\s{}]+/,
|
|
13481
|
+
/\{[A-Za-z0-9_-]{6,}\}/,
|
|
13482
|
+
/\{[^{}\r\n]*\s+[^{}\r\n]*\}/,
|
|
13483
|
+
/@[A-Za-z0-9_-]+/,
|
|
13484
|
+
];
|
|
13047
13485
|
const extractAgentReferenceValue = (token) => {
|
|
13048
13486
|
if (token.startsWith('@')) {
|
|
13049
13487
|
return token.slice(1).trim();
|
|
@@ -13054,9 +13492,6 @@ const extractAgentReferenceValue = (token) => {
|
|
|
13054
13492
|
}
|
|
13055
13493
|
return token.trim();
|
|
13056
13494
|
};
|
|
13057
|
-
/**
|
|
13058
|
-
* Resolves a compact or absolute reference token into a clickable agent URL.
|
|
13059
|
-
*/
|
|
13060
13495
|
const resolveAgentReferenceToUrl = (referenceValue) => {
|
|
13061
13496
|
const normalizedReferenceValue = referenceValue.replace(/[),.;!?]+$/g, '').trim();
|
|
13062
13497
|
if (!normalizedReferenceValue) {
|
|
@@ -13072,9 +13507,6 @@ const resolveAgentReferenceToUrl = (referenceValue) => {
|
|
|
13072
13507
|
const origin = typeof window !== 'undefined' ? window.location.origin : '';
|
|
13073
13508
|
return `${origin}/agents/${encoded}`;
|
|
13074
13509
|
};
|
|
13075
|
-
/**
|
|
13076
|
-
* Finds all agent references that should be highlighted and ctrl/cmd-clickable.
|
|
13077
|
-
*/
|
|
13078
13510
|
const extractAgentReferenceMatches = (content) => {
|
|
13079
13511
|
const matches = [];
|
|
13080
13512
|
let match;
|
|
@@ -13106,147 +13538,423 @@ const extractAgentReferenceMatches = (content) => {
|
|
|
13106
13538
|
return matches;
|
|
13107
13539
|
};
|
|
13108
13540
|
/**
|
|
13109
|
-
*
|
|
13541
|
+
* Agent reference helpers for `BookEditorMonaco`.
|
|
13542
|
+
*
|
|
13543
|
+
* @private function of BookEditorMonaco
|
|
13110
13544
|
*/
|
|
13111
|
-
|
|
13545
|
+
const BookEditorMonacoTokenization = {
|
|
13546
|
+
AGENT_URL_REFERENCE_REGEX,
|
|
13547
|
+
AGENT_REFERENCE_TOKEN_REGEX,
|
|
13548
|
+
AGENT_REFERENCE_BRACED_REGEX,
|
|
13549
|
+
AGENT_REFERENCE_HIGHLIGHT_REGEXES,
|
|
13550
|
+
extractAgentReferenceValue,
|
|
13551
|
+
resolveAgentReferenceToUrl,
|
|
13552
|
+
extractAgentReferenceMatches,
|
|
13553
|
+
};
|
|
13554
|
+
|
|
13112
13555
|
/**
|
|
13113
|
-
*
|
|
13556
|
+
* Registers the language helpers that power Monaco inside `BookEditorMonaco`.
|
|
13557
|
+
*
|
|
13558
|
+
* @private function of BookEditorMonaco
|
|
13114
13559
|
*/
|
|
13115
|
-
function
|
|
13116
|
-
const { value, onChange, diagnostics, isReadonly, translations, onFileUpload, isUploadButtonShown, isCameraButtonShown, isDownloadButtonShown, isAboutButtonShown = true, isFullscreenButtonShown = true, onFullscreenClick, isFullscreen, zoom = 1,
|
|
13117
|
-
// [🚱]> sync,
|
|
13118
|
-
} = props;
|
|
13119
|
-
const zoomLevel = zoom;
|
|
13120
|
-
const scaledLineHeight = Math.round(LINE_HEIGHT * zoomLevel);
|
|
13121
|
-
const scaledContentPaddingLeft = Math.max(8, Math.round(CONTENT_PADDING_LEFT * zoomLevel));
|
|
13122
|
-
const scaledVerticalLineLeft = Math.max(0, Math.round(VERTICAL_LINE_LEFT * zoomLevel));
|
|
13123
|
-
const baseFontSize = 20;
|
|
13124
|
-
const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
|
|
13125
|
-
const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
|
|
13126
|
-
const [isDragOver, setIsDragOver] = useState(false);
|
|
13127
|
-
const [editor, setEditor] = useState(null);
|
|
13128
|
-
const [isFocused, setIsFocused] = useState(false);
|
|
13129
|
-
const [isTouchDevice, setIsTouchDevice] = useState(false);
|
|
13130
|
-
const [isSavedShown, setIsSavedShown] = useState(false);
|
|
13131
|
-
const [uploadItems, setUploadItemsState] = useState([]);
|
|
13132
|
-
const monaco = useMonaco();
|
|
13133
|
-
// stable unique id for this instance
|
|
13134
|
-
const instanceIdRef = useRef(++notebookStyleCounter);
|
|
13135
|
-
const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
|
|
13136
|
-
// [1] Track touch start position to differentiate tap from drag
|
|
13137
|
-
const touchStartRef = useRef(null);
|
|
13138
|
-
const fileUploadInputRef = useRef(null);
|
|
13139
|
-
const cameraInputRef = useRef(null);
|
|
13140
|
-
const uploadItemsRef = useRef([]);
|
|
13141
|
-
const uploadFilesRef = useRef(new Map());
|
|
13142
|
-
const uploadDecorationIdsRef = useRef(new Map());
|
|
13143
|
-
const uploadControllersRef = useRef(new Map());
|
|
13144
|
-
const uploadQueueTimerRef = useRef(null);
|
|
13145
|
-
const editorUpdateTimerRef = useRef(null);
|
|
13146
|
-
const progressUpdateTimerRef = useRef(null);
|
|
13147
|
-
const pendingReplacementsRef = useRef([]);
|
|
13148
|
-
const pendingProgressUpdatesRef = useRef(new Map());
|
|
13149
|
-
const processUploadQueueRef = useRef(() => undefined);
|
|
13150
|
-
/*
|
|
13151
|
-
Note+TODO: [🚱] Yjs logic is commented out because it causes errors in the build of Next.js projects:
|
|
13152
|
-
> ▲ Next.js 15.4.5
|
|
13153
|
-
> - Experiments (use with caution):
|
|
13154
|
-
> ✓ externalDir
|
|
13155
|
-
>
|
|
13156
|
-
> Creating an optimized production build ...
|
|
13157
|
-
> ✓ Compiled successfully in 17.0s
|
|
13158
|
-
> ✓ Linting and checking validity of types
|
|
13159
|
-
> ✓ Collecting page data
|
|
13160
|
-
> Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
|
|
13161
|
-
> ReferenceError: window is not defined
|
|
13162
|
-
> at 27132 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\134.js:1:525485)
|
|
13163
|
-
> at c (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128)
|
|
13164
|
-
> at 89192 (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\chunks\462.js:711:10466)
|
|
13165
|
-
> at Object.c [as require] (C:\Users\me\work\ai\promptbook\apps\book-components\.next\server\webpack-runtime.js:1:128) {
|
|
13166
|
-
> digest: '2500543835'
|
|
13167
|
-
> }
|
|
13168
|
-
> Export encountered an error on /page: /, exiting the build.
|
|
13169
|
-
> ⨯ Next.js build worker exited with code: 1 and signal: null
|
|
13170
|
-
|
|
13171
|
-
|
|
13172
|
-
const [editor, setEditor] = useState<TODO_any>(null);
|
|
13173
|
-
|
|
13560
|
+
function useBookEditorMonacoLanguage({ monaco }) {
|
|
13174
13561
|
useEffect(() => {
|
|
13175
|
-
if (!monaco
|
|
13562
|
+
if (!monaco) {
|
|
13176
13563
|
return;
|
|
13177
13564
|
}
|
|
13178
|
-
|
|
13179
|
-
const
|
|
13180
|
-
const
|
|
13181
|
-
|
|
13182
|
-
|
|
13183
|
-
|
|
13184
|
-
|
|
13565
|
+
monaco.languages.register({ id: BookEditorMonacoConstants.BOOK_LANGUAGE_ID });
|
|
13566
|
+
const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
|
|
13567
|
+
const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
|
|
13568
|
+
.sort((a, b) => b.length - a.length)
|
|
13569
|
+
.map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
|
|
13570
|
+
.join('|')})(?=\\s|$)`);
|
|
13571
|
+
const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
|
|
13572
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13573
|
+
const bookRules = [
|
|
13574
|
+
[/^---[-]*$/, ''],
|
|
13575
|
+
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13576
|
+
...BookEditorMonacoTokenization.AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [
|
|
13577
|
+
regex,
|
|
13578
|
+
'agent-reference',
|
|
13579
|
+
]),
|
|
13580
|
+
[parameterRegex, 'parameter'],
|
|
13581
|
+
[/\{[^}]+\}/, 'parameter'],
|
|
13582
|
+
[commitmentRegex, 'commitment'],
|
|
13583
|
+
];
|
|
13584
|
+
const tokenProvider = monaco.languages.setMonarchTokensProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
|
|
13585
|
+
ignoreCase: true,
|
|
13586
|
+
tokenizer: {
|
|
13587
|
+
root: [
|
|
13588
|
+
[/^\s*$/, 'empty'],
|
|
13589
|
+
[/^-*$/, 'line'],
|
|
13590
|
+
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13591
|
+
[/^.*$/, 'title', '@body'],
|
|
13592
|
+
[commitmentRegex, 'commitment'],
|
|
13593
|
+
],
|
|
13594
|
+
body: bookRules,
|
|
13595
|
+
codeblock: [
|
|
13596
|
+
[/^```.*$/, 'code-block', '@pop'],
|
|
13597
|
+
[/^.*$/, 'code-block'],
|
|
13598
|
+
],
|
|
13599
|
+
},
|
|
13600
|
+
});
|
|
13601
|
+
const completionProvider = monaco.languages.registerCompletionItemProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
|
|
13602
|
+
provideCompletionItems: (model, position) => {
|
|
13603
|
+
const word = model.getWordUntilPosition(position);
|
|
13604
|
+
const range = {
|
|
13605
|
+
startLineNumber: position.lineNumber,
|
|
13606
|
+
endLineNumber: position.lineNumber,
|
|
13607
|
+
startColumn: word.startColumn,
|
|
13608
|
+
endColumn: word.endColumn,
|
|
13609
|
+
};
|
|
13610
|
+
const suggestions = commitmentTypes.map((type) => ({
|
|
13611
|
+
label: type,
|
|
13612
|
+
kind: monaco.languages.CompletionItemKind.Keyword,
|
|
13613
|
+
insertText: type,
|
|
13614
|
+
range,
|
|
13615
|
+
}));
|
|
13616
|
+
return { suggestions };
|
|
13617
|
+
},
|
|
13618
|
+
});
|
|
13619
|
+
const linkProvider = monaco.languages.registerLinkProvider(BookEditorMonacoConstants.BOOK_LANGUAGE_ID, {
|
|
13620
|
+
provideLinks: (model) => {
|
|
13621
|
+
const content = model.getValue();
|
|
13622
|
+
const links = BookEditorMonacoTokenization.extractAgentReferenceMatches(content).map((reference) => {
|
|
13623
|
+
const startPos = model.getPositionAt(reference.index);
|
|
13624
|
+
const endPos = model.getPositionAt(reference.index + reference.length);
|
|
13625
|
+
return {
|
|
13626
|
+
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13627
|
+
url: reference.url,
|
|
13628
|
+
tooltip: `Open agent: ${reference.value}`,
|
|
13629
|
+
};
|
|
13630
|
+
});
|
|
13631
|
+
return { links };
|
|
13632
|
+
},
|
|
13633
|
+
});
|
|
13634
|
+
monaco.editor.defineTheme('book-theme', {
|
|
13635
|
+
base: 'vs',
|
|
13636
|
+
inherit: true,
|
|
13637
|
+
rules: [
|
|
13638
|
+
{
|
|
13639
|
+
token: 'title',
|
|
13640
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
|
|
13641
|
+
fontStyle: 'bold underline',
|
|
13642
|
+
},
|
|
13643
|
+
{
|
|
13644
|
+
token: 'commitment',
|
|
13645
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13646
|
+
fontStyle: 'bold',
|
|
13647
|
+
},
|
|
13648
|
+
{
|
|
13649
|
+
token: 'parameter',
|
|
13650
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
|
|
13651
|
+
fontStyle: 'italic',
|
|
13652
|
+
},
|
|
13653
|
+
{
|
|
13654
|
+
token: 'agent-reference',
|
|
13655
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13656
|
+
fontStyle: 'underline',
|
|
13657
|
+
},
|
|
13658
|
+
{
|
|
13659
|
+
token: 'code-block',
|
|
13660
|
+
foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
|
|
13661
|
+
},
|
|
13662
|
+
],
|
|
13663
|
+
colors: {
|
|
13664
|
+
'editor.scrollbarSlider.background': '#E0E0E0',
|
|
13665
|
+
'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
|
|
13666
|
+
'editor.scrollbarSlider.activeBackground': '#C0C0C0',
|
|
13667
|
+
},
|
|
13668
|
+
});
|
|
13669
|
+
monaco.editor.setTheme('book-theme');
|
|
13185
13670
|
return () => {
|
|
13186
|
-
|
|
13187
|
-
|
|
13671
|
+
tokenProvider.dispose();
|
|
13672
|
+
completionProvider.dispose();
|
|
13673
|
+
linkProvider.dispose();
|
|
13188
13674
|
};
|
|
13189
|
-
}, [monaco
|
|
13190
|
-
|
|
13675
|
+
}, [monaco]);
|
|
13676
|
+
}
|
|
13677
|
+
|
|
13678
|
+
/**
|
|
13679
|
+
* Relative Y offset multiplier for aligning line background with Monaco rendering.
|
|
13680
|
+
*
|
|
13681
|
+
* @private function of BookEditorMonaco
|
|
13682
|
+
*/
|
|
13683
|
+
const BACKGROUND_POSITION_Y_MULTIPLIER = -0.1;
|
|
13684
|
+
/**
|
|
13685
|
+
* Injects notebook-inspired styling that is unique per `BookEditorMonaco` instance.
|
|
13686
|
+
*
|
|
13687
|
+
* @private function of BookEditorMonaco
|
|
13688
|
+
*/
|
|
13689
|
+
function useBookEditorMonacoStyles({ instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel, }) {
|
|
13191
13690
|
useEffect(() => {
|
|
13192
|
-
|
|
13193
|
-
|
|
13194
|
-
|
|
13195
|
-
|
|
13196
|
-
|
|
13197
|
-
|
|
13198
|
-
const setUploadItems = useCallback((updater) => {
|
|
13199
|
-
const next = updater(uploadItemsRef.current);
|
|
13200
|
-
uploadItemsRef.current = next;
|
|
13201
|
-
setUploadItemsState(next);
|
|
13202
|
-
}, []);
|
|
13203
|
-
/**
|
|
13204
|
-
* Batches upload progress updates to reduce render churn.
|
|
13205
|
-
*/
|
|
13206
|
-
const queueProgressUpdate = useCallback((uploadId, progress, loadedBytes, totalBytes) => {
|
|
13207
|
-
pendingProgressUpdatesRef.current.set(uploadId, {
|
|
13208
|
-
progress,
|
|
13209
|
-
loadedBytes,
|
|
13210
|
-
totalBytes,
|
|
13211
|
-
});
|
|
13212
|
-
if (progressUpdateTimerRef.current !== null) {
|
|
13213
|
-
return;
|
|
13214
|
-
}
|
|
13215
|
-
progressUpdateTimerRef.current = window.setTimeout(() => {
|
|
13216
|
-
progressUpdateTimerRef.current = null;
|
|
13217
|
-
const updates = pendingProgressUpdatesRef.current;
|
|
13218
|
-
pendingProgressUpdatesRef.current = new Map();
|
|
13219
|
-
setUploadItems((items) => items.map((item) => {
|
|
13220
|
-
const update = updates.get(item.id);
|
|
13221
|
-
if (!update) {
|
|
13222
|
-
return item;
|
|
13223
|
-
}
|
|
13224
|
-
return {
|
|
13225
|
-
...item,
|
|
13226
|
-
progress: update.progress,
|
|
13227
|
-
loadedBytes: update.loadedBytes,
|
|
13228
|
-
totalBytes: update.totalBytes,
|
|
13229
|
-
};
|
|
13230
|
-
}));
|
|
13231
|
-
}, UPLOAD_PROGRESS_DEBOUNCE_MS);
|
|
13232
|
-
}, [setUploadItems]);
|
|
13233
|
-
/**
|
|
13234
|
-
* Applies queued placeholder replacements in a single editor edit batch.
|
|
13235
|
-
*/
|
|
13236
|
-
const flushEditorReplacements = useCallback(() => {
|
|
13237
|
-
if (!editor) {
|
|
13238
|
-
return;
|
|
13239
|
-
}
|
|
13240
|
-
const model = editor.getModel();
|
|
13241
|
-
if (!model) {
|
|
13242
|
-
return;
|
|
13691
|
+
const styleId = `notebook-margin-line-style-${instanceClass}`;
|
|
13692
|
+
let style = document.getElementById(styleId);
|
|
13693
|
+
if (!style) {
|
|
13694
|
+
style = document.createElement('style');
|
|
13695
|
+
style.id = styleId;
|
|
13696
|
+
document.head.appendChild(style);
|
|
13243
13697
|
}
|
|
13244
|
-
|
|
13245
|
-
|
|
13246
|
-
|
|
13247
|
-
|
|
13248
|
-
|
|
13249
|
-
|
|
13698
|
+
style.innerHTML = `
|
|
13699
|
+
|
|
13700
|
+
@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');
|
|
13701
|
+
/* <- [🚚] */
|
|
13702
|
+
|
|
13703
|
+
.${instanceClass} .monaco-editor .view-lines {
|
|
13704
|
+
background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
|
|
13705
|
+
background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
|
|
13706
|
+
background-position-x: -${scaledContentPaddingLeft}px;
|
|
13707
|
+
background-position-y: ${scaledLineHeight * BACKGROUND_POSITION_Y_MULTIPLIER}px;
|
|
13708
|
+
}
|
|
13709
|
+
.${instanceClass} .monaco-editor .overflow-guard::before {
|
|
13710
|
+
content: '';
|
|
13711
|
+
position: absolute;
|
|
13712
|
+
left: ${scaledVerticalLineLeft}px;
|
|
13713
|
+
top: 0;
|
|
13714
|
+
bottom: 0;
|
|
13715
|
+
width: 1px;
|
|
13716
|
+
background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
|
|
13717
|
+
z-index: 10;
|
|
13718
|
+
}
|
|
13719
|
+
|
|
13720
|
+
.${instanceClass} .monaco-editor .separator-line {
|
|
13721
|
+
background: linear-gradient(
|
|
13722
|
+
to bottom,
|
|
13723
|
+
transparent ${scaledLineHeight * 0.9 - 2}px,
|
|
13724
|
+
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
|
|
13725
|
+
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
|
|
13726
|
+
transparent ${scaledLineHeight * 0.9 + 1}px
|
|
13727
|
+
);
|
|
13728
|
+
}
|
|
13729
|
+
|
|
13730
|
+
.${instanceClass} .monaco-editor .transparent-text {
|
|
13731
|
+
color: transparent !important;
|
|
13732
|
+
}
|
|
13733
|
+
|
|
13734
|
+
.${instanceClass} .monaco-editor .code-block-box {
|
|
13735
|
+
background-color: #f5f5f566;
|
|
13736
|
+
border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13737
|
+
border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13738
|
+
padding-left: ${Math.round(8 * zoomLevel)}px;
|
|
13739
|
+
padding-right: ${Math.round(8 * zoomLevel)}px;
|
|
13740
|
+
}
|
|
13741
|
+
|
|
13742
|
+
.${instanceClass} .monaco-editor .code-block-top {
|
|
13743
|
+
border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13744
|
+
border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13745
|
+
border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13746
|
+
overflow: hidden;
|
|
13747
|
+
}
|
|
13748
|
+
|
|
13749
|
+
.${instanceClass} .monaco-editor .code-block-bottom {
|
|
13750
|
+
border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13751
|
+
border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13752
|
+
border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13753
|
+
overflow: hidden;
|
|
13754
|
+
}
|
|
13755
|
+
`;
|
|
13756
|
+
return () => {
|
|
13757
|
+
// Style intentionally persists to avoid flash of unstyled content when using fast refresh.
|
|
13758
|
+
};
|
|
13759
|
+
}, [instanceClass, scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft, zoomLevel]);
|
|
13760
|
+
}
|
|
13761
|
+
|
|
13762
|
+
/**
|
|
13763
|
+
* Helper for manipulating agent books in-memory.
|
|
13764
|
+
*
|
|
13765
|
+
* @private internal helper for `@promptbook/core`
|
|
13766
|
+
*/
|
|
13767
|
+
class BookEditable {
|
|
13768
|
+
/**
|
|
13769
|
+
* Creates a mutable view over the supplied book content.
|
|
13770
|
+
*
|
|
13771
|
+
* @param book - Agent source text to work with.
|
|
13772
|
+
*/
|
|
13773
|
+
constructor(book) {
|
|
13774
|
+
this.lines = book.split(/\r?\n/);
|
|
13775
|
+
}
|
|
13776
|
+
/**
|
|
13777
|
+
* Creates a new instance from the supplied book text.
|
|
13778
|
+
*
|
|
13779
|
+
* @param book - Agent source text to work with.
|
|
13780
|
+
* @returns Editable view over the book content.
|
|
13781
|
+
*/
|
|
13782
|
+
static from(book) {
|
|
13783
|
+
return new BookEditable(book);
|
|
13784
|
+
}
|
|
13785
|
+
/**
|
|
13786
|
+
* Returns the editable content as a string_book.
|
|
13787
|
+
*
|
|
13788
|
+
* @returns Current book content with original line breaks preserved.
|
|
13789
|
+
*/
|
|
13790
|
+
toString() {
|
|
13791
|
+
return this.lines.join('\n');
|
|
13792
|
+
}
|
|
13793
|
+
/**
|
|
13794
|
+
* Checks whether the book contains any non-empty lines.
|
|
13795
|
+
*
|
|
13796
|
+
* @returns `true` when the book has meaningful content beyond blank lines.
|
|
13797
|
+
*/
|
|
13798
|
+
hasNonEmptyContent() {
|
|
13799
|
+
return this.lines.some((line) => line.trim() !== '');
|
|
13800
|
+
}
|
|
13801
|
+
/**
|
|
13802
|
+
* Finds the last line index whose trimmed text matches the commitment name.
|
|
13803
|
+
*
|
|
13804
|
+
* @param commitment - Commitment keyword to locate (for example `CLOSED`).
|
|
13805
|
+
* @returns Zero-based line index or `null` when the commitment is absent.
|
|
13806
|
+
*/
|
|
13807
|
+
findLastCommitmentLineIndex(commitment) {
|
|
13808
|
+
const normalized = commitment.trim().toUpperCase();
|
|
13809
|
+
for (let lineIndex = this.lines.length - 1; lineIndex >= 0; lineIndex -= 1) {
|
|
13810
|
+
const line = this.lines[lineIndex];
|
|
13811
|
+
if ((line === null || line === void 0 ? void 0 : line.trim().toUpperCase()) === normalized) {
|
|
13812
|
+
return lineIndex;
|
|
13813
|
+
}
|
|
13814
|
+
}
|
|
13815
|
+
return null;
|
|
13816
|
+
}
|
|
13817
|
+
}
|
|
13818
|
+
|
|
13819
|
+
/**
|
|
13820
|
+
* Number of seconds in one hour.
|
|
13821
|
+
*
|
|
13822
|
+
* @private function of BookEditorMonaco
|
|
13823
|
+
*/
|
|
13824
|
+
const SECONDS_IN_HOUR = 3600;
|
|
13825
|
+
/**
|
|
13826
|
+
* Formatting helpers for `BookEditorMonaco`.
|
|
13827
|
+
*
|
|
13828
|
+
* @private function of BookEditorMonaco
|
|
13829
|
+
*/
|
|
13830
|
+
const BookEditorMonacoFormatting = {
|
|
13831
|
+
getUploadPlaceholderText: (fileName) => `KNOWLEDGE ⏳ Uploading ${fileName}...`,
|
|
13832
|
+
formatBytes: (bytes) => {
|
|
13833
|
+
if (!Number.isFinite(bytes) || bytes <= 0) {
|
|
13834
|
+
return '0 B';
|
|
13835
|
+
}
|
|
13836
|
+
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
13837
|
+
const exponent = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
|
|
13838
|
+
const value = bytes / Math.pow(1024, exponent);
|
|
13839
|
+
const precision = value >= 10 || exponent === 0 ? 0 : 1;
|
|
13840
|
+
return `${value.toFixed(precision)} ${units[exponent]}`;
|
|
13841
|
+
},
|
|
13842
|
+
formatDuration: (durationMs) => {
|
|
13843
|
+
if (!Number.isFinite(durationMs) || durationMs <= 0) {
|
|
13844
|
+
return '0:00';
|
|
13845
|
+
}
|
|
13846
|
+
const totalSeconds = Math.floor(durationMs / 1000);
|
|
13847
|
+
const seconds = totalSeconds % 60;
|
|
13848
|
+
const minutes = Math.floor(totalSeconds / 60) % 60;
|
|
13849
|
+
const hours = Math.floor(totalSeconds / SECONDS_IN_HOUR);
|
|
13850
|
+
const paddedSeconds = `${seconds}`.padStart(2, '0');
|
|
13851
|
+
if (hours > 0) {
|
|
13852
|
+
const paddedMinutes = `${minutes}`.padStart(2, '0');
|
|
13853
|
+
return `${hours}:${paddedMinutes}:${paddedSeconds}`;
|
|
13854
|
+
}
|
|
13855
|
+
return `${minutes}:${paddedSeconds}`;
|
|
13856
|
+
},
|
|
13857
|
+
};
|
|
13858
|
+
|
|
13859
|
+
/**
|
|
13860
|
+
* Delay before clearing completed uploads from UI.
|
|
13861
|
+
*
|
|
13862
|
+
* @private function of BookEditorMonaco
|
|
13863
|
+
*/
|
|
13864
|
+
const COMPLETED_UPLOADS_CLEAR_DELAY_MS = 1500;
|
|
13865
|
+
/**
|
|
13866
|
+
* Generates deterministic ids for uploads that support server preloading.
|
|
13867
|
+
*
|
|
13868
|
+
* @private function of BookEditorMonaco
|
|
13869
|
+
*/
|
|
13870
|
+
const createUploadId = (() => {
|
|
13871
|
+
let sequence = 0;
|
|
13872
|
+
return () => {
|
|
13873
|
+
if (typeof crypto !== 'undefined' && 'randomUUID' in crypto) {
|
|
13874
|
+
return crypto.randomUUID();
|
|
13875
|
+
}
|
|
13876
|
+
sequence += 1;
|
|
13877
|
+
return `upload-${Date.now()}-${sequence}`;
|
|
13878
|
+
};
|
|
13879
|
+
})();
|
|
13880
|
+
/**
|
|
13881
|
+
* Recognizes abort signals that should pause but not mark uploads as failed.
|
|
13882
|
+
*
|
|
13883
|
+
* @private function of BookEditorMonaco
|
|
13884
|
+
*/
|
|
13885
|
+
const isAbortError = (error) => {
|
|
13886
|
+
if (!error) {
|
|
13887
|
+
return false;
|
|
13888
|
+
}
|
|
13889
|
+
if (typeof error === 'object' && 'name' in error) {
|
|
13890
|
+
return error.name === 'AbortError';
|
|
13891
|
+
}
|
|
13892
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
13893
|
+
return message.toLowerCase().includes('abort');
|
|
13894
|
+
};
|
|
13895
|
+
/**
|
|
13896
|
+
* Handles file uploads and placeholder rendering inside `BookEditorMonaco`.
|
|
13897
|
+
*
|
|
13898
|
+
* @private function of BookEditorMonaco
|
|
13899
|
+
*/
|
|
13900
|
+
function useBookEditorMonacoUploads({ editor, monaco, onFileUpload }) {
|
|
13901
|
+
const [uploadItems, setUploadItemsState] = useState([]);
|
|
13902
|
+
const uploadItemsRef = useRef([]);
|
|
13903
|
+
const uploadFilesRef = useRef(new Map());
|
|
13904
|
+
const uploadDecorationIdsRef = useRef(new Map());
|
|
13905
|
+
const uploadControllersRef = useRef(new Map());
|
|
13906
|
+
const uploadQueueTimerRef = useRef(null);
|
|
13907
|
+
const editorUpdateTimerRef = useRef(null);
|
|
13908
|
+
const progressUpdateTimerRef = useRef(null);
|
|
13909
|
+
const pendingReplacementsRef = useRef([]);
|
|
13910
|
+
const pendingProgressUpdatesRef = useRef(new Map());
|
|
13911
|
+
const processUploadQueueRef = useRef(() => undefined);
|
|
13912
|
+
const setUploadItems = useCallback((updater) => {
|
|
13913
|
+
const next = updater(uploadItemsRef.current);
|
|
13914
|
+
uploadItemsRef.current = next;
|
|
13915
|
+
setUploadItemsState(next);
|
|
13916
|
+
}, []);
|
|
13917
|
+
const queueProgressUpdate = useCallback((uploadId, progress, loadedBytes, totalBytes) => {
|
|
13918
|
+
pendingProgressUpdatesRef.current.set(uploadId, {
|
|
13919
|
+
progress,
|
|
13920
|
+
loadedBytes,
|
|
13921
|
+
totalBytes,
|
|
13922
|
+
});
|
|
13923
|
+
if (progressUpdateTimerRef.current !== null) {
|
|
13924
|
+
return;
|
|
13925
|
+
}
|
|
13926
|
+
progressUpdateTimerRef.current = window.setTimeout(() => {
|
|
13927
|
+
progressUpdateTimerRef.current = null;
|
|
13928
|
+
const updates = pendingProgressUpdatesRef.current;
|
|
13929
|
+
pendingProgressUpdatesRef.current = new Map();
|
|
13930
|
+
setUploadItems((items) => items.map((item) => {
|
|
13931
|
+
const update = updates.get(item.id);
|
|
13932
|
+
if (!update) {
|
|
13933
|
+
return item;
|
|
13934
|
+
}
|
|
13935
|
+
return {
|
|
13936
|
+
...item,
|
|
13937
|
+
progress: update.progress,
|
|
13938
|
+
loadedBytes: update.loadedBytes,
|
|
13939
|
+
totalBytes: update.totalBytes,
|
|
13940
|
+
};
|
|
13941
|
+
}));
|
|
13942
|
+
}, BookEditorMonacoConstants.UPLOAD_PROGRESS_DEBOUNCE_MS);
|
|
13943
|
+
}, [setUploadItems]);
|
|
13944
|
+
const flushEditorReplacements = useCallback(() => {
|
|
13945
|
+
if (!editor) {
|
|
13946
|
+
return;
|
|
13947
|
+
}
|
|
13948
|
+
const model = editor.getModel();
|
|
13949
|
+
if (!model) {
|
|
13950
|
+
return;
|
|
13951
|
+
}
|
|
13952
|
+
const replacements = pendingReplacementsRef.current;
|
|
13953
|
+
pendingReplacementsRef.current = [];
|
|
13954
|
+
const edits = [];
|
|
13955
|
+
const decorationsToRemove = [];
|
|
13956
|
+
for (const replacement of replacements) {
|
|
13957
|
+
const range = model.getDecorationRange(replacement.decorationId);
|
|
13250
13958
|
if (!range) {
|
|
13251
13959
|
uploadDecorationIdsRef.current.delete(replacement.uploadId);
|
|
13252
13960
|
continue;
|
|
@@ -13266,9 +13974,6 @@ function BookEditorMonaco(props) {
|
|
|
13266
13974
|
editor.deltaDecorations(decorationsToRemove, []);
|
|
13267
13975
|
}
|
|
13268
13976
|
}, [editor]);
|
|
13269
|
-
/**
|
|
13270
|
-
* Queues a placeholder replacement and debounces editor updates.
|
|
13271
|
-
*/
|
|
13272
13977
|
const queueEditorReplacement = useCallback((uploadId, replacementText) => {
|
|
13273
13978
|
const decorationId = uploadDecorationIdsRef.current.get(uploadId);
|
|
13274
13979
|
if (!decorationId) {
|
|
@@ -13292,11 +13997,8 @@ function BookEditorMonaco(props) {
|
|
|
13292
13997
|
editorUpdateTimerRef.current = window.setTimeout(() => {
|
|
13293
13998
|
editorUpdateTimerRef.current = null;
|
|
13294
13999
|
flushEditorReplacements();
|
|
13295
|
-
}, UPLOAD_EDIT_DEBOUNCE_MS);
|
|
14000
|
+
}, BookEditorMonacoConstants.UPLOAD_EDIT_DEBOUNCE_MS);
|
|
13296
14001
|
}, [flushEditorReplacements]);
|
|
13297
|
-
/**
|
|
13298
|
-
* Schedules upload queue processing on the next tick.
|
|
13299
|
-
*/
|
|
13300
14002
|
const queueUploadProcessing = useCallback(() => {
|
|
13301
14003
|
if (uploadQueueTimerRef.current !== null) {
|
|
13302
14004
|
return;
|
|
@@ -13306,9 +14008,6 @@ function BookEditorMonaco(props) {
|
|
|
13306
14008
|
processUploadQueueRef.current();
|
|
13307
14009
|
}, 0);
|
|
13308
14010
|
}, []);
|
|
13309
|
-
/**
|
|
13310
|
-
* Starts uploading a queued item.
|
|
13311
|
-
*/
|
|
13312
14011
|
const startUpload = useCallback(async (uploadId) => {
|
|
13313
14012
|
if (!onFileUpload) {
|
|
13314
14013
|
return;
|
|
@@ -13383,9 +14082,6 @@ function BookEditorMonaco(props) {
|
|
|
13383
14082
|
queueUploadProcessing();
|
|
13384
14083
|
}
|
|
13385
14084
|
}, [onFileUpload, queueEditorReplacement, queueProgressUpdate, queueUploadProcessing, setUploadItems]);
|
|
13386
|
-
/**
|
|
13387
|
-
* Starts queued uploads up to the concurrency limit.
|
|
13388
|
-
*/
|
|
13389
14085
|
const processUploadQueue = useCallback(() => {
|
|
13390
14086
|
if (!onFileUpload) {
|
|
13391
14087
|
return;
|
|
@@ -13402,9 +14098,6 @@ function BookEditorMonaco(props) {
|
|
|
13402
14098
|
});
|
|
13403
14099
|
}, [onFileUpload, startUpload]);
|
|
13404
14100
|
processUploadQueueRef.current = processUploadQueue;
|
|
13405
|
-
/**
|
|
13406
|
-
* Pauses a queued or active upload.
|
|
13407
|
-
*/
|
|
13408
14101
|
const pauseUpload = useCallback((uploadId) => {
|
|
13409
14102
|
setUploadItems((items) => items.map((item) => item.id === uploadId && item.status === 'queued'
|
|
13410
14103
|
? {
|
|
@@ -13415,9 +14108,6 @@ function BookEditorMonaco(props) {
|
|
|
13415
14108
|
const controller = uploadControllersRef.current.get(uploadId);
|
|
13416
14109
|
controller === null || controller === void 0 ? void 0 : controller.abort();
|
|
13417
14110
|
}, [setUploadItems]);
|
|
13418
|
-
/**
|
|
13419
|
-
* Resumes a paused or failed upload by re-queuing it.
|
|
13420
|
-
*/
|
|
13421
14111
|
const resumeUpload = useCallback((uploadId) => {
|
|
13422
14112
|
setUploadItems((items) => items.map((item) => item.id === uploadId
|
|
13423
14113
|
? {
|
|
@@ -13433,57 +14123,20 @@ function BookEditorMonaco(props) {
|
|
|
13433
14123
|
queueUploadProcessing();
|
|
13434
14124
|
}, [queueUploadProcessing, setUploadItems]);
|
|
13435
14125
|
useEffect(() => {
|
|
13436
|
-
if (!editor) {
|
|
13437
|
-
return;
|
|
13438
|
-
}
|
|
13439
|
-
const focusListener = editor.onDidFocusEditorWidget(() => {
|
|
13440
|
-
setIsFocused(true);
|
|
13441
|
-
});
|
|
13442
|
-
const blurListener = editor.onDidBlurEditorWidget(() => {
|
|
13443
|
-
setIsFocused(false);
|
|
13444
|
-
});
|
|
13445
|
-
const saveAction = editor.addAction({
|
|
13446
|
-
id: 'save-book',
|
|
13447
|
-
label: 'Save',
|
|
13448
|
-
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
|
|
13449
|
-
run: () => {
|
|
13450
|
-
setIsSavedShown(false);
|
|
13451
|
-
setTimeout(() => setIsSavedShown(true), 0);
|
|
13452
|
-
// Note: We don't prevent default, so browser's save dialog still opens
|
|
13453
|
-
},
|
|
13454
|
-
});
|
|
13455
14126
|
return () => {
|
|
13456
|
-
|
|
13457
|
-
|
|
13458
|
-
|
|
13459
|
-
|
|
13460
|
-
|
|
13461
|
-
|
|
13462
|
-
|
|
13463
|
-
|
|
13464
|
-
|
|
13465
|
-
|
|
13466
|
-
|
|
13467
|
-
|
|
13468
|
-
|
|
13469
|
-
clearTimeout(timer);
|
|
13470
|
-
};
|
|
13471
|
-
}, [isSavedShown]);
|
|
13472
|
-
useEffect(() => {
|
|
13473
|
-
return () => {
|
|
13474
|
-
if (uploadQueueTimerRef.current !== null) {
|
|
13475
|
-
clearTimeout(uploadQueueTimerRef.current);
|
|
13476
|
-
}
|
|
13477
|
-
if (editorUpdateTimerRef.current !== null) {
|
|
13478
|
-
clearTimeout(editorUpdateTimerRef.current);
|
|
13479
|
-
}
|
|
13480
|
-
if (progressUpdateTimerRef.current !== null) {
|
|
13481
|
-
clearTimeout(progressUpdateTimerRef.current);
|
|
13482
|
-
}
|
|
13483
|
-
for (const controller of uploadControllersRef.current.values()) {
|
|
13484
|
-
controller.abort();
|
|
13485
|
-
}
|
|
13486
|
-
uploadControllersRef.current.clear();
|
|
14127
|
+
if (uploadQueueTimerRef.current !== null) {
|
|
14128
|
+
clearTimeout(uploadQueueTimerRef.current);
|
|
14129
|
+
}
|
|
14130
|
+
if (editorUpdateTimerRef.current !== null) {
|
|
14131
|
+
clearTimeout(editorUpdateTimerRef.current);
|
|
14132
|
+
}
|
|
14133
|
+
if (progressUpdateTimerRef.current !== null) {
|
|
14134
|
+
clearTimeout(progressUpdateTimerRef.current);
|
|
14135
|
+
}
|
|
14136
|
+
for (const controller of uploadControllersRef.current.values()) {
|
|
14137
|
+
controller.abort();
|
|
14138
|
+
}
|
|
14139
|
+
uploadControllersRef.current.clear();
|
|
13487
14140
|
};
|
|
13488
14141
|
}, []);
|
|
13489
14142
|
useEffect(() => {
|
|
@@ -13498,380 +14151,242 @@ function BookEditorMonaco(props) {
|
|
|
13498
14151
|
uploadFilesRef.current.clear();
|
|
13499
14152
|
uploadDecorationIdsRef.current.clear();
|
|
13500
14153
|
setUploadItems(() => []);
|
|
13501
|
-
},
|
|
14154
|
+
}, COMPLETED_UPLOADS_CLEAR_DELAY_MS);
|
|
13502
14155
|
return () => {
|
|
13503
14156
|
clearTimeout(timer);
|
|
13504
14157
|
};
|
|
13505
|
-
}, [
|
|
13506
|
-
|
|
13507
|
-
|
|
14158
|
+
}, [uploadItems]);
|
|
14159
|
+
const handleFiles = useCallback(async (files) => {
|
|
14160
|
+
var _a;
|
|
14161
|
+
if (!onFileUpload || !editor || !monaco) {
|
|
13508
14162
|
return;
|
|
13509
14163
|
}
|
|
13510
|
-
|
|
13511
|
-
monaco.languages.register({ id: BOOK_LANGUAGE_ID });
|
|
13512
|
-
const commitmentTypes = [...new Set(getAllCommitmentDefinitions().map(({ type }) => type))];
|
|
13513
|
-
const commitmentRegex = new RegExp(`^\\s*(${commitmentTypes
|
|
13514
|
-
.sort((a, b) => b.length - a.length) // [1] Prefer longer commitments to avoid partial matching (e.g. LANGUAGES vs LANGUAGE)
|
|
13515
|
-
.map((type) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
|
|
13516
|
-
.join('|')})(?=\\s|$)`);
|
|
13517
|
-
// Note: Using a broad character set for Latin and Cyrillic to support international characters in parameters.
|
|
13518
|
-
// Monarch tokenizer does not support Unicode property escapes like \p{L}.
|
|
13519
|
-
const parameterRegex = /@([a-zA-Z0-9_á-žÁ-Žč-řČ-Řš-žŠ-Žа-яА-ЯёЁ]+)/;
|
|
13520
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13521
|
-
const bookRules = [
|
|
13522
|
-
[/^---[-]*$/, ''],
|
|
13523
|
-
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13524
|
-
...AGENT_REFERENCE_HIGHLIGHT_REGEXES.map((regex) => [regex, 'agent-reference']),
|
|
13525
|
-
[parameterRegex, 'parameter'],
|
|
13526
|
-
[/\{[^}]+\}/, 'parameter'],
|
|
13527
|
-
[commitmentRegex, 'commitment'],
|
|
13528
|
-
];
|
|
13529
|
-
// Register a tokens provider for the language
|
|
13530
|
-
const tokenProvider = monaco.languages.setMonarchTokensProvider(BOOK_LANGUAGE_ID, {
|
|
13531
|
-
ignoreCase: true,
|
|
13532
|
-
tokenizer: {
|
|
13533
|
-
root: [
|
|
13534
|
-
[/^\s*$/, 'empty'],
|
|
13535
|
-
[/^-*$/, 'line'],
|
|
13536
|
-
[/^```.*$/, 'code-block', '@codeblock'],
|
|
13537
|
-
[/^.*$/, 'title', '@body'],
|
|
13538
|
-
[commitmentRegex, 'commitment'],
|
|
13539
|
-
],
|
|
13540
|
-
body: bookRules,
|
|
13541
|
-
codeblock: [
|
|
13542
|
-
[/^```.*$/, 'code-block', '@pop'],
|
|
13543
|
-
[/^.*$/, 'code-block'],
|
|
13544
|
-
],
|
|
13545
|
-
},
|
|
13546
|
-
});
|
|
13547
|
-
// Register a completion item provider for the language
|
|
13548
|
-
const completionProvider = monaco.languages.registerCompletionItemProvider(BOOK_LANGUAGE_ID, {
|
|
13549
|
-
provideCompletionItems: (model, position) => {
|
|
13550
|
-
const word = model.getWordUntilPosition(position);
|
|
13551
|
-
const range = {
|
|
13552
|
-
startLineNumber: position.lineNumber,
|
|
13553
|
-
endLineNumber: position.lineNumber,
|
|
13554
|
-
startColumn: word.startColumn,
|
|
13555
|
-
endColumn: word.endColumn,
|
|
13556
|
-
};
|
|
13557
|
-
const suggestions = commitmentTypes.map((type) => ({
|
|
13558
|
-
label: type,
|
|
13559
|
-
kind: monaco.languages.CompletionItemKind.Keyword,
|
|
13560
|
-
insertText: type,
|
|
13561
|
-
range: range,
|
|
13562
|
-
}));
|
|
13563
|
-
return { suggestions: suggestions };
|
|
13564
|
-
},
|
|
13565
|
-
});
|
|
13566
|
-
const linkProvider = monaco.languages.registerLinkProvider(BOOK_LANGUAGE_ID, {
|
|
13567
|
-
provideLinks: (model) => {
|
|
13568
|
-
const content = model.getValue();
|
|
13569
|
-
const links = extractAgentReferenceMatches(content).map((reference) => {
|
|
13570
|
-
const startPos = model.getPositionAt(reference.index);
|
|
13571
|
-
const endPos = model.getPositionAt(reference.index + reference.length);
|
|
13572
|
-
return {
|
|
13573
|
-
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13574
|
-
url: reference.url,
|
|
13575
|
-
tooltip: `Open agent: ${reference.value}`,
|
|
13576
|
-
};
|
|
13577
|
-
});
|
|
13578
|
-
return { links };
|
|
13579
|
-
},
|
|
13580
|
-
});
|
|
13581
|
-
monaco.editor.defineTheme('book-theme', {
|
|
13582
|
-
base: 'vs',
|
|
13583
|
-
inherit: true,
|
|
13584
|
-
rules: [
|
|
13585
|
-
{
|
|
13586
|
-
token: 'title',
|
|
13587
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.TITLE.toHex(),
|
|
13588
|
-
// [🚚]> fontStyle: 'underline italic',
|
|
13589
|
-
fontStyle: 'bold underline',
|
|
13590
|
-
},
|
|
13591
|
-
{
|
|
13592
|
-
token: 'commitment',
|
|
13593
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13594
|
-
fontStyle: 'bold',
|
|
13595
|
-
},
|
|
13596
|
-
{
|
|
13597
|
-
token: 'parameter',
|
|
13598
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.PARAMETER.toHex(),
|
|
13599
|
-
fontStyle: `italic`,
|
|
13600
|
-
},
|
|
13601
|
-
{
|
|
13602
|
-
token: 'agent-reference',
|
|
13603
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.COMMITMENT.toHex(),
|
|
13604
|
-
fontStyle: 'underline',
|
|
13605
|
-
},
|
|
13606
|
-
{
|
|
13607
|
-
token: 'code-block',
|
|
13608
|
-
foreground: PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex(),
|
|
13609
|
-
},
|
|
13610
|
-
],
|
|
13611
|
-
colors: {
|
|
13612
|
-
'editor.scrollbarSlider.background': '#E0E0E0',
|
|
13613
|
-
'editor.scrollbarSlider.hoverBackground': '#D0D0D0',
|
|
13614
|
-
'editor.scrollbarSlider.activeBackground': '#C0C0C0',
|
|
13615
|
-
},
|
|
13616
|
-
});
|
|
13617
|
-
monaco.editor.setTheme('book-theme');
|
|
13618
|
-
return () => {
|
|
13619
|
-
tokenProvider.dispose();
|
|
13620
|
-
completionProvider.dispose();
|
|
13621
|
-
linkProvider.dispose();
|
|
13622
|
-
};
|
|
13623
|
-
}, [monaco]);
|
|
13624
|
-
useEffect(() => {
|
|
13625
|
-
const styleId = `notebook-margin-line-style-${instanceIdRef.current}`; // <-- unique per instance
|
|
13626
|
-
let style = document.getElementById(styleId);
|
|
13627
|
-
if (!style) {
|
|
13628
|
-
style = document.createElement('style');
|
|
13629
|
-
style.id = styleId;
|
|
13630
|
-
document.head.appendChild(style);
|
|
13631
|
-
}
|
|
13632
|
-
style.innerHTML = `
|
|
13633
|
-
|
|
13634
|
-
@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');
|
|
13635
|
-
/* <- [🚚] */
|
|
13636
|
-
|
|
13637
|
-
.${instanceClass} .monaco-editor .view-lines {
|
|
13638
|
-
background-image: linear-gradient(to bottom, transparent ${scaledLineHeight - 1}px, ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()} ${scaledLineHeight - 1}px);
|
|
13639
|
-
background-size: calc(100% + ${scaledContentPaddingLeft}px) ${scaledLineHeight}px;
|
|
13640
|
-
background-position-x: -${scaledContentPaddingLeft}px;
|
|
13641
|
-
background-position-y: ${scaledLineHeight * -0.1}px;
|
|
13642
|
-
}
|
|
13643
|
-
.${instanceClass} .monaco-editor .overflow-guard::before {
|
|
13644
|
-
content: '';
|
|
13645
|
-
position: absolute;
|
|
13646
|
-
left: ${scaledVerticalLineLeft}px;
|
|
13647
|
-
top: 0;
|
|
13648
|
-
bottom: 0;
|
|
13649
|
-
width: 1px;
|
|
13650
|
-
background-color: ${PROMPTBOOK_SYNTAX_COLORS.LINE.toHex()};
|
|
13651
|
-
z-index: 10;
|
|
13652
|
-
}
|
|
13653
|
-
|
|
13654
|
-
.${instanceClass} .monaco-editor .separator-line {
|
|
13655
|
-
background: linear-gradient(
|
|
13656
|
-
to bottom,
|
|
13657
|
-
transparent ${scaledLineHeight * 0.9 - 2}px,
|
|
13658
|
-
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 - 2}px,
|
|
13659
|
-
${PROMPTBOOK_SYNTAX_COLORS.SEPARATOR.toHex()} ${scaledLineHeight * 0.9 + 1}px,
|
|
13660
|
-
transparent ${scaledLineHeight * 0.9 + 1}px
|
|
13661
|
-
);
|
|
13662
|
-
}
|
|
13663
|
-
|
|
13664
|
-
.${instanceClass} .monaco-editor .transparent-text {
|
|
13665
|
-
color: transparent !important;
|
|
13666
|
-
}
|
|
13667
|
-
|
|
13668
|
-
.${instanceClass} .monaco-editor .code-block-box {
|
|
13669
|
-
background-color: #f5f5f566;
|
|
13670
|
-
border-left: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13671
|
-
border-right: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13672
|
-
padding-left: ${Math.round(8 * zoomLevel)}px;
|
|
13673
|
-
padding-right: ${Math.round(8 * zoomLevel)}px;
|
|
13674
|
-
}
|
|
13675
|
-
|
|
13676
|
-
.${instanceClass} .monaco-editor .code-block-top {
|
|
13677
|
-
border-top: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13678
|
-
border-top-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13679
|
-
border-top-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13680
|
-
overflow: hidden;
|
|
13681
|
-
}
|
|
13682
|
-
|
|
13683
|
-
.${instanceClass} .monaco-editor .code-block-bottom {
|
|
13684
|
-
border-bottom: 1px solid ${PROMPTBOOK_SYNTAX_COLORS.CODE_BLOCK.toHex()};
|
|
13685
|
-
border-bottom-left-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13686
|
-
border-bottom-right-radius: ${Math.round(10 * zoomLevel)}px;
|
|
13687
|
-
overflow: hidden;
|
|
13688
|
-
}
|
|
13689
|
-
`;
|
|
13690
|
-
return () => {
|
|
13691
|
-
// Note: Style is not removed on purpose to avoid flickering during development with fast refresh
|
|
13692
|
-
};
|
|
13693
|
-
}, [scaledLineHeight, scaledContentPaddingLeft, scaledVerticalLineLeft]);
|
|
13694
|
-
const decorationIdsRef = useRef([]);
|
|
13695
|
-
const codeBlockDecorationIdsRef = useRef([]);
|
|
13696
|
-
useEffect(() => {
|
|
13697
|
-
if (!editor || !monaco) {
|
|
14164
|
+
if (files.length === 0) {
|
|
13698
14165
|
return;
|
|
13699
14166
|
}
|
|
13700
14167
|
const model = editor.getModel();
|
|
13701
14168
|
if (!model) {
|
|
13702
14169
|
return;
|
|
13703
14170
|
}
|
|
13704
|
-
const
|
|
13705
|
-
|
|
13706
|
-
|
|
13707
|
-
|
|
13708
|
-
endColumn: diagnostic.endColumn,
|
|
13709
|
-
message: diagnostic.message,
|
|
13710
|
-
source: diagnostic.source,
|
|
13711
|
-
severity: toMonacoMarkerSeverity(diagnostic.severity),
|
|
14171
|
+
const placeholders = files.map((file) => ({
|
|
14172
|
+
id: createUploadId(),
|
|
14173
|
+
file,
|
|
14174
|
+
placeholder: BookEditorMonacoFormatting.getUploadPlaceholderText(file.name),
|
|
13712
14175
|
}));
|
|
13713
|
-
|
|
13714
|
-
|
|
13715
|
-
|
|
13716
|
-
|
|
13717
|
-
|
|
13718
|
-
|
|
13719
|
-
|
|
13720
|
-
|
|
14176
|
+
const currentValue = ((_a = model.getValue()) !== null && _a !== void 0 ? _a : '');
|
|
14177
|
+
const bookEditable = new BookEditable(currentValue);
|
|
14178
|
+
const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
|
|
14179
|
+
const insertingBeforeClosed = closedLineIndex !== null;
|
|
14180
|
+
const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
|
|
14181
|
+
const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
|
|
14182
|
+
const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
|
|
14183
|
+
const prefix = shouldAddLeadingLineBreak ? '\n' : '';
|
|
14184
|
+
const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
|
|
14185
|
+
const textToInsert = `${prefix}${placeholderBlock}`;
|
|
14186
|
+
const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
|
|
14187
|
+
editor.executeEdits('upload-placeholders', [
|
|
14188
|
+
{
|
|
14189
|
+
range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
|
|
14190
|
+
text: textToInsert,
|
|
14191
|
+
forceMoveMarkers: true,
|
|
14192
|
+
},
|
|
14193
|
+
]);
|
|
14194
|
+
const decorations = [];
|
|
14195
|
+
let runningOffset = prefix.length;
|
|
14196
|
+
for (const entry of placeholders) {
|
|
14197
|
+
const startOffset = insertStartOffset + runningOffset;
|
|
14198
|
+
const endOffset = startOffset + entry.placeholder.length;
|
|
14199
|
+
const startPos = model.getPositionAt(startOffset);
|
|
14200
|
+
const endPos = model.getPositionAt(endOffset);
|
|
14201
|
+
decorations.push({
|
|
14202
|
+
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
14203
|
+
options: {
|
|
14204
|
+
stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
|
14205
|
+
},
|
|
14206
|
+
});
|
|
14207
|
+
runningOffset += entry.placeholder.length + 1;
|
|
13721
14208
|
}
|
|
13722
|
-
const
|
|
13723
|
-
|
|
13724
|
-
|
|
13725
|
-
|
|
13726
|
-
|
|
13727
|
-
|
|
13728
|
-
const matches = text.matchAll(/^---[-]*$/gm);
|
|
13729
|
-
const newDecorations = [];
|
|
13730
|
-
for (const match of matches) {
|
|
13731
|
-
if (match.index === undefined) {
|
|
13732
|
-
continue;
|
|
13733
|
-
}
|
|
13734
|
-
const startPos = model.getPositionAt(match.index);
|
|
13735
|
-
const endPos = model.getPositionAt(match.index + match[0].length);
|
|
13736
|
-
newDecorations.push({
|
|
13737
|
-
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13738
|
-
options: {
|
|
13739
|
-
isWholeLine: true,
|
|
13740
|
-
className: 'separator-line',
|
|
13741
|
-
inlineClassName: 'transparent-text',
|
|
13742
|
-
},
|
|
13743
|
-
});
|
|
14209
|
+
const decorationIds = editor.deltaDecorations([], decorations);
|
|
14210
|
+
placeholders.forEach((entry, index) => {
|
|
14211
|
+
uploadFilesRef.current.set(entry.id, entry.file);
|
|
14212
|
+
const decorationId = decorationIds[index];
|
|
14213
|
+
if (decorationId) {
|
|
14214
|
+
uploadDecorationIdsRef.current.set(entry.id, decorationId);
|
|
13744
14215
|
}
|
|
13745
|
-
|
|
13746
|
-
|
|
13747
|
-
|
|
13748
|
-
|
|
13749
|
-
|
|
13750
|
-
|
|
13751
|
-
|
|
13752
|
-
|
|
13753
|
-
|
|
13754
|
-
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13759
|
-
|
|
13760
|
-
|
|
13761
|
-
|
|
13762
|
-
|
|
13763
|
-
|
|
13764
|
-
|
|
13765
|
-
|
|
13766
|
-
|
|
13767
|
-
|
|
13768
|
-
|
|
13769
|
-
|
|
13770
|
-
|
|
13771
|
-
|
|
13772
|
-
|
|
13773
|
-
|
|
13774
|
-
|
|
13775
|
-
|
|
13776
|
-
|
|
14216
|
+
});
|
|
14217
|
+
const newUploadItems = placeholders.map((entry) => ({
|
|
14218
|
+
id: entry.id,
|
|
14219
|
+
fileName: entry.file.name,
|
|
14220
|
+
fileSize: entry.file.size,
|
|
14221
|
+
status: 'queued',
|
|
14222
|
+
progress: 0,
|
|
14223
|
+
loadedBytes: 0,
|
|
14224
|
+
totalBytes: entry.file.size,
|
|
14225
|
+
startedAt: null,
|
|
14226
|
+
completedAt: null,
|
|
14227
|
+
}));
|
|
14228
|
+
setUploadItems((items) => [...items, ...newUploadItems]);
|
|
14229
|
+
queueUploadProcessing();
|
|
14230
|
+
}, [onFileUpload, editor, monaco, queueUploadProcessing]);
|
|
14231
|
+
const uploadStats = useMemo(() => {
|
|
14232
|
+
const totalFiles = uploadItems.length;
|
|
14233
|
+
const queuedFiles = uploadItems.filter((item) => item.status === 'queued').length;
|
|
14234
|
+
const uploadingFiles = uploadItems.filter((item) => item.status === 'uploading').length;
|
|
14235
|
+
const pausedFiles = uploadItems.filter((item) => item.status === 'paused').length;
|
|
14236
|
+
const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
|
|
14237
|
+
const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
|
|
14238
|
+
const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
|
|
14239
|
+
const uploadedBytes = uploadItems.reduce((sum, item) => {
|
|
14240
|
+
const total = item.totalBytes || 0;
|
|
14241
|
+
const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
|
|
14242
|
+
return sum + loaded;
|
|
14243
|
+
}, 0);
|
|
14244
|
+
const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
|
|
14245
|
+
const startedAt = uploadItems.reduce((min, item) => {
|
|
14246
|
+
if (!item.startedAt) {
|
|
14247
|
+
return min;
|
|
13777
14248
|
}
|
|
13778
|
-
|
|
14249
|
+
return Math.min(min, item.startedAt);
|
|
14250
|
+
}, Number.POSITIVE_INFINITY);
|
|
14251
|
+
const elapsedMs = Number.isFinite(startedAt) ? Math.max(0, Date.now() - startedAt) : 0;
|
|
14252
|
+
const speedBytesPerSecond = elapsedMs > 0 ? uploadedBytes / (elapsedMs / 1000) : 0;
|
|
14253
|
+
return {
|
|
14254
|
+
totalFiles,
|
|
14255
|
+
queuedFiles,
|
|
14256
|
+
uploadingFiles,
|
|
14257
|
+
pausedFiles,
|
|
14258
|
+
failedFiles,
|
|
14259
|
+
completedFiles,
|
|
14260
|
+
totalBytes,
|
|
14261
|
+
uploadedBytes,
|
|
14262
|
+
progress,
|
|
14263
|
+
elapsedMs,
|
|
14264
|
+
speedBytesPerSecond,
|
|
13779
14265
|
};
|
|
13780
|
-
|
|
13781
|
-
|
|
13782
|
-
|
|
14266
|
+
}, [uploadItems]);
|
|
14267
|
+
const activeUploadItems = useMemo(() => uploadItems.filter((item) => item.status !== 'completed'), [uploadItems]);
|
|
14268
|
+
return {
|
|
14269
|
+
activeUploadItems,
|
|
14270
|
+
uploadItems,
|
|
14271
|
+
uploadStats,
|
|
14272
|
+
handleFiles,
|
|
14273
|
+
pauseUpload,
|
|
14274
|
+
resumeUpload,
|
|
14275
|
+
};
|
|
14276
|
+
}
|
|
14277
|
+
|
|
14278
|
+
const UPLOAD_STATUS_LABELS = {
|
|
14279
|
+
queued: 'Queued',
|
|
14280
|
+
uploading: 'Uploading',
|
|
14281
|
+
paused: 'Paused',
|
|
14282
|
+
completed: 'Completed',
|
|
14283
|
+
failed: 'Failed',
|
|
14284
|
+
};
|
|
14285
|
+
/**
|
|
14286
|
+
* Shows upload progress details for active uploads inside `BookEditorMonaco`.
|
|
14287
|
+
*
|
|
14288
|
+
* @private function of BookEditorMonaco
|
|
14289
|
+
*/
|
|
14290
|
+
function BookEditorMonacoUploadPanel({ activeUploadItems, uploadStats, pauseUpload, resumeUpload, }) {
|
|
14291
|
+
if (activeUploadItems.length === 0) {
|
|
14292
|
+
return null;
|
|
14293
|
+
}
|
|
14294
|
+
return (jsxs("div", { className: styles$d.uploadPanel, role: "status", "aria-live": "polite", children: [jsxs("div", { className: styles$d.uploadPanelHeader, children: [jsx("div", { className: styles$d.uploadPanelTitle, children: "Uploads" }), jsxs("div", { className: styles$d.uploadPanelHeaderMeta, children: [uploadStats.uploadingFiles + uploadStats.queuedFiles, " active / ", uploadStats.totalFiles, " total"] })] }), jsxs("div", { className: styles$d.uploadPanelSummary, children: [jsxs("div", { children: ["Files: ", uploadStats.totalFiles, " total, ", uploadStats.completedFiles, " done"] }), jsxs("div", { children: ["Data: ", BookEditorMonacoFormatting.formatBytes(uploadStats.uploadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(uploadStats.totalBytes)] }), jsxs("div", { children: ["Speed:", ' ', uploadStats.speedBytesPerSecond > 0
|
|
14295
|
+
? `${BookEditorMonacoFormatting.formatBytes(uploadStats.speedBytesPerSecond)}/s`
|
|
14296
|
+
: '--'] }), jsxs("div", { children: ["Elapsed: ", BookEditorMonacoFormatting.formatDuration(uploadStats.elapsedMs)] }), jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
|
|
14297
|
+
const percent = Math.round(item.progress * 100);
|
|
14298
|
+
const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
|
|
14299
|
+
const canPause = item.status === 'uploading' || item.status === 'queued';
|
|
14300
|
+
const canResume = item.status === 'paused' || item.status === 'failed';
|
|
14301
|
+
return (jsxs("div", { className: styles$d.uploadRow, children: [jsxs("div", { className: styles$d.uploadRowHeader, children: [jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxs("span", { children: [BookEditorMonacoFormatting.formatBytes(item.loadedBytes), " /", ' ', BookEditorMonacoFormatting.formatBytes(item.totalBytes)] }), jsxs("span", { children: [percent, "%"] })] }), jsx("div", { className: styles$d.uploadRowProgressBar, children: jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
|
|
14302
|
+
}) })] }));
|
|
14303
|
+
}
|
|
14304
|
+
|
|
14305
|
+
let notebookStyleCounter = 0;
|
|
14306
|
+
/**
|
|
14307
|
+
* @private Internal component used by `BookEditor`
|
|
14308
|
+
*/
|
|
14309
|
+
function BookEditorMonaco(props) {
|
|
14310
|
+
const { value, onChange, diagnostics, isReadonly, translations, onFileUpload, isUploadButtonShown, isCameraButtonShown, isDownloadButtonShown, isAboutButtonShown = true, isFullscreenButtonShown = true, onFullscreenClick, isFullscreen, zoom = 1, } = props;
|
|
14311
|
+
const zoomLevel = zoom;
|
|
14312
|
+
const scaledLineHeight = Math.round(BookEditorMonacoConstants.LINE_HEIGHT * zoomLevel);
|
|
14313
|
+
const scaledContentPaddingLeft = Math.max(8, Math.round(BookEditorMonacoConstants.CONTENT_PADDING_LEFT * zoomLevel));
|
|
14314
|
+
const scaledVerticalLineLeft = Math.max(0, Math.round(BookEditorMonacoConstants.VERTICAL_LINE_LEFT * zoomLevel));
|
|
14315
|
+
const baseFontSize = 20;
|
|
14316
|
+
const scaledFontSize = Math.max(8, Math.round(baseFontSize * zoomLevel));
|
|
14317
|
+
const scaledScrollbarSize = Math.max(2, Math.round(5 * zoomLevel));
|
|
14318
|
+
const [isDragOver, setIsDragOver] = useState(false);
|
|
14319
|
+
const [editor, setEditor] = useState(null);
|
|
14320
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
14321
|
+
const [isTouchDevice, setIsTouchDevice] = useState(false);
|
|
14322
|
+
const [isSavedShown, setIsSavedShown] = useState(false);
|
|
14323
|
+
const monaco = useMonaco();
|
|
14324
|
+
const instanceIdRef = useRef(++notebookStyleCounter);
|
|
14325
|
+
const instanceClass = `book-editor-instance-${instanceIdRef.current}`;
|
|
14326
|
+
const touchStartRef = useRef(null);
|
|
14327
|
+
const fileUploadInputRef = useRef(null);
|
|
14328
|
+
const cameraInputRef = useRef(null);
|
|
14329
|
+
const { activeUploadItems, uploadStats, pauseUpload, resumeUpload, handleFiles, } = useBookEditorMonacoUploads({
|
|
14330
|
+
editor,
|
|
14331
|
+
monaco,
|
|
14332
|
+
onFileUpload,
|
|
14333
|
+
});
|
|
14334
|
+
useBookEditorMonacoLanguage({ monaco });
|
|
14335
|
+
useBookEditorMonacoDiagnostics({ monaco, editor, diagnostics });
|
|
14336
|
+
useBookEditorMonacoDecorations({ editor, monaco });
|
|
14337
|
+
useBookEditorMonacoStyles({
|
|
14338
|
+
instanceClass,
|
|
14339
|
+
scaledContentPaddingLeft,
|
|
14340
|
+
scaledLineHeight,
|
|
14341
|
+
scaledVerticalLineLeft,
|
|
14342
|
+
zoomLevel,
|
|
14343
|
+
});
|
|
14344
|
+
useEffect(() => {
|
|
14345
|
+
setIsTouchDevice(typeof window !== 'undefined' && window.matchMedia('(pointer: coarse)').matches);
|
|
14346
|
+
}, []);
|
|
14347
|
+
useEffect(() => {
|
|
14348
|
+
if (!editor) {
|
|
14349
|
+
return;
|
|
14350
|
+
}
|
|
14351
|
+
const focusListener = editor.onDidFocusEditorWidget(() => {
|
|
14352
|
+
setIsFocused(true);
|
|
14353
|
+
});
|
|
14354
|
+
const blurListener = editor.onDidBlurEditorWidget(() => {
|
|
14355
|
+
setIsFocused(false);
|
|
14356
|
+
});
|
|
14357
|
+
const saveAction = editor.addAction({
|
|
14358
|
+
id: 'save-book',
|
|
14359
|
+
label: 'Save',
|
|
14360
|
+
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
|
|
14361
|
+
run: () => {
|
|
14362
|
+
setIsSavedShown(false);
|
|
14363
|
+
setTimeout(() => setIsSavedShown(true), 0);
|
|
14364
|
+
// Note: We don't prevent default, so browser's save dialog still opens
|
|
14365
|
+
},
|
|
13783
14366
|
});
|
|
13784
14367
|
return () => {
|
|
13785
|
-
|
|
14368
|
+
focusListener.dispose();
|
|
14369
|
+
blurListener.dispose();
|
|
14370
|
+
saveAction.dispose();
|
|
13786
14371
|
};
|
|
13787
14372
|
}, [editor, monaco]);
|
|
13788
|
-
|
|
13789
|
-
|
|
13790
|
-
*/
|
|
13791
|
-
const handleFiles = useCallback(async (files) => {
|
|
13792
|
-
var _a;
|
|
13793
|
-
if (!onFileUpload || !editor || !monaco) {
|
|
13794
|
-
return;
|
|
13795
|
-
}
|
|
13796
|
-
if (files.length === 0) {
|
|
13797
|
-
return;
|
|
13798
|
-
}
|
|
13799
|
-
const model = editor.getModel();
|
|
13800
|
-
if (!model) {
|
|
14373
|
+
useEffect(() => {
|
|
14374
|
+
if (!isSavedShown) {
|
|
13801
14375
|
return;
|
|
13802
14376
|
}
|
|
13803
|
-
const
|
|
13804
|
-
|
|
13805
|
-
|
|
13806
|
-
|
|
13807
|
-
|
|
13808
|
-
|
|
13809
|
-
|
|
13810
|
-
const closedLineIndex = bookEditable.findLastCommitmentLineIndex('CLOSED');
|
|
13811
|
-
const insertingBeforeClosed = closedLineIndex !== null;
|
|
13812
|
-
const insertLine = insertingBeforeClosed ? closedLineIndex + 1 : model.getLineCount();
|
|
13813
|
-
const insertColumn = insertingBeforeClosed ? 1 : model.getLineMaxColumn(insertLine);
|
|
13814
|
-
const shouldAddLeadingLineBreak = !insertingBeforeClosed && Boolean(model.getValue());
|
|
13815
|
-
const prefix = shouldAddLeadingLineBreak ? '\n' : '';
|
|
13816
|
-
const placeholderBlock = placeholders.map((entry) => `${entry.placeholder}\n`).join('');
|
|
13817
|
-
const textToInsert = `${prefix}${placeholderBlock}`;
|
|
13818
|
-
const insertStartOffset = model.getOffsetAt(new monaco.Position(insertLine, insertColumn));
|
|
13819
|
-
editor.executeEdits('upload-placeholders', [
|
|
13820
|
-
{
|
|
13821
|
-
range: new monaco.Range(insertLine, insertColumn, insertLine, insertColumn),
|
|
13822
|
-
text: textToInsert,
|
|
13823
|
-
forceMoveMarkers: true,
|
|
13824
|
-
},
|
|
13825
|
-
]);
|
|
13826
|
-
const decorations = [];
|
|
13827
|
-
let runningOffset = prefix.length;
|
|
13828
|
-
for (const entry of placeholders) {
|
|
13829
|
-
const startOffset = insertStartOffset + runningOffset;
|
|
13830
|
-
const endOffset = startOffset + entry.placeholder.length;
|
|
13831
|
-
const startPos = model.getPositionAt(startOffset);
|
|
13832
|
-
const endPos = model.getPositionAt(endOffset);
|
|
13833
|
-
decorations.push({
|
|
13834
|
-
range: new monaco.Range(startPos.lineNumber, startPos.column, endPos.lineNumber, endPos.column),
|
|
13835
|
-
options: {
|
|
13836
|
-
stickiness: monaco.editor.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
|
13837
|
-
},
|
|
13838
|
-
});
|
|
13839
|
-
runningOffset += entry.placeholder.length + 1;
|
|
13840
|
-
}
|
|
13841
|
-
const decorationIds = editor.deltaDecorations([], decorations);
|
|
13842
|
-
placeholders.forEach((entry, index) => {
|
|
13843
|
-
uploadFilesRef.current.set(entry.id, entry.file);
|
|
13844
|
-
const decorationId = decorationIds[index];
|
|
13845
|
-
if (decorationId) {
|
|
13846
|
-
uploadDecorationIdsRef.current.set(entry.id, decorationId);
|
|
13847
|
-
}
|
|
13848
|
-
});
|
|
13849
|
-
const newUploadItems = placeholders.map((entry) => ({
|
|
13850
|
-
id: entry.id,
|
|
13851
|
-
fileName: entry.file.name,
|
|
13852
|
-
fileSize: entry.file.size,
|
|
13853
|
-
status: 'queued',
|
|
13854
|
-
progress: 0,
|
|
13855
|
-
loadedBytes: 0,
|
|
13856
|
-
totalBytes: entry.file.size,
|
|
13857
|
-
startedAt: null,
|
|
13858
|
-
completedAt: null,
|
|
13859
|
-
}));
|
|
13860
|
-
setUploadItems((items) => [...items, ...newUploadItems]);
|
|
13861
|
-
queueUploadProcessing();
|
|
13862
|
-
}, [onFileUpload, editor, monaco, queueUploadProcessing, setUploadItems]);
|
|
13863
|
-
/**
|
|
13864
|
-
* Handles file drop uploads.
|
|
13865
|
-
*/
|
|
14377
|
+
const timer = setTimeout(() => {
|
|
14378
|
+
setIsSavedShown(false);
|
|
14379
|
+
}, 2000);
|
|
14380
|
+
return () => {
|
|
14381
|
+
clearTimeout(timer);
|
|
14382
|
+
};
|
|
14383
|
+
}, [isSavedShown]);
|
|
13866
14384
|
const handleDrop = useCallback(async (event) => {
|
|
13867
14385
|
event.preventDefault();
|
|
13868
14386
|
setIsDragOver(false);
|
|
13869
14387
|
const files = Array.from(event.dataTransfer.files);
|
|
13870
14388
|
await handleFiles(files);
|
|
13871
14389
|
}, [handleFiles]);
|
|
13872
|
-
/**
|
|
13873
|
-
* Handles paste uploads.
|
|
13874
|
-
*/
|
|
13875
14390
|
const handlePaste = useCallback(async (event) => {
|
|
13876
14391
|
const files = Array.from(event.clipboardData.files);
|
|
13877
14392
|
if (files.length === 0) {
|
|
@@ -13881,95 +14396,58 @@ function BookEditorMonaco(props) {
|
|
|
13881
14396
|
event.stopPropagation();
|
|
13882
14397
|
await handleFiles(files);
|
|
13883
14398
|
}, [handleFiles]);
|
|
13884
|
-
// <- TODO: [✨🏺] !!!! Maybe not working
|
|
13885
|
-
/**
|
|
13886
|
-
* Opens the document upload input.
|
|
13887
|
-
*/
|
|
13888
14399
|
const handleUploadDocument = useCallback(() => {
|
|
13889
|
-
|
|
13890
|
-
|
|
13891
|
-
}
|
|
14400
|
+
var _a;
|
|
14401
|
+
(_a = fileUploadInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
13892
14402
|
}, []);
|
|
13893
|
-
/**
|
|
13894
|
-
* Opens the camera capture input.
|
|
13895
|
-
*/
|
|
13896
14403
|
const handleTakePhoto = useCallback(() => {
|
|
13897
|
-
|
|
13898
|
-
|
|
13899
|
-
}
|
|
14404
|
+
var _a;
|
|
14405
|
+
(_a = cameraInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
13900
14406
|
}, []);
|
|
13901
|
-
/**
|
|
13902
|
-
* Handles file selection from hidden inputs.
|
|
13903
|
-
*/
|
|
13904
14407
|
const handleFileInputChange = useCallback((event) => {
|
|
13905
14408
|
const files = Array.from(event.target.files || []);
|
|
13906
|
-
handleFiles(files);
|
|
13907
|
-
// Reset the input value so the same file can be selected again
|
|
14409
|
+
void handleFiles(files);
|
|
13908
14410
|
event.target.value = '';
|
|
13909
14411
|
}, [handleFiles]);
|
|
13910
|
-
/**
|
|
13911
|
-
* Shows drag overlay while dragging over the editor.
|
|
13912
|
-
*/
|
|
13913
14412
|
const handleDragOver = useCallback((event) => {
|
|
13914
14413
|
event.preventDefault();
|
|
13915
14414
|
setIsDragOver(true);
|
|
13916
14415
|
}, []);
|
|
13917
|
-
/**
|
|
13918
|
-
* Shows drag overlay when entering the editor.
|
|
13919
|
-
*/
|
|
13920
14416
|
const handleDragEnter = useCallback((event) => {
|
|
13921
14417
|
event.preventDefault();
|
|
13922
14418
|
setIsDragOver(true);
|
|
13923
14419
|
}, []);
|
|
13924
|
-
/**
|
|
13925
|
-
* Hides drag overlay when leaving the editor.
|
|
13926
|
-
*/
|
|
13927
14420
|
const handleDragLeave = useCallback((event) => {
|
|
13928
14421
|
event.preventDefault();
|
|
13929
14422
|
setIsDragOver(false);
|
|
13930
14423
|
}, []);
|
|
13931
|
-
const
|
|
13932
|
-
|
|
13933
|
-
|
|
13934
|
-
|
|
13935
|
-
|
|
13936
|
-
const failedFiles = uploadItems.filter((item) => item.status === 'failed').length;
|
|
13937
|
-
const completedFiles = uploadItems.filter((item) => item.status === 'completed').length;
|
|
13938
|
-
const totalBytes = uploadItems.reduce((sum, item) => sum + item.totalBytes, 0);
|
|
13939
|
-
const uploadedBytes = uploadItems.reduce((sum, item) => {
|
|
13940
|
-
const total = item.totalBytes || 0;
|
|
13941
|
-
const loaded = total > 0 ? Math.min(item.loadedBytes, total) : item.loadedBytes;
|
|
13942
|
-
return sum + loaded;
|
|
13943
|
-
}, 0);
|
|
13944
|
-
const progress = totalBytes > 0 ? uploadedBytes / totalBytes : 0;
|
|
13945
|
-
const startedAt = uploadItems.reduce((min, item) => {
|
|
13946
|
-
if (!item.startedAt) {
|
|
13947
|
-
return min;
|
|
14424
|
+
const focusOverlayTouchHandlers = {
|
|
14425
|
+
onTouchStart: (event) => {
|
|
14426
|
+
const touch = event.touches[0];
|
|
14427
|
+
if (touch) {
|
|
14428
|
+
touchStartRef.current = { x: touch.clientX, y: touch.clientY };
|
|
13948
14429
|
}
|
|
13949
|
-
|
|
13950
|
-
|
|
13951
|
-
|
|
13952
|
-
|
|
13953
|
-
|
|
13954
|
-
|
|
13955
|
-
|
|
13956
|
-
|
|
13957
|
-
|
|
13958
|
-
|
|
13959
|
-
|
|
13960
|
-
|
|
13961
|
-
|
|
13962
|
-
|
|
13963
|
-
|
|
13964
|
-
|
|
13965
|
-
|
|
13966
|
-
|
|
13967
|
-
|
|
13968
|
-
|
|
13969
|
-
|
|
13970
|
-
isDownloadButtonShown ||
|
|
13971
|
-
isAboutButtonShown ||
|
|
13972
|
-
isFullscreenButtonShown) && (jsx(BookEditorActionbar, { value,
|
|
14430
|
+
},
|
|
14431
|
+
onTouchEnd: (event) => {
|
|
14432
|
+
event.preventDefault();
|
|
14433
|
+
const touch = event.changedTouches[0];
|
|
14434
|
+
if (touch && touchStartRef.current) {
|
|
14435
|
+
const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
|
|
14436
|
+
const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
|
|
14437
|
+
const threshold = 10;
|
|
14438
|
+
if (deltaX < threshold && deltaY < threshold) {
|
|
14439
|
+
editor === null || editor === void 0 ? void 0 : editor.focus();
|
|
14440
|
+
}
|
|
14441
|
+
}
|
|
14442
|
+
touchStartRef.current = null;
|
|
14443
|
+
},
|
|
14444
|
+
};
|
|
14445
|
+
const isActionBarVisible = isUploadButtonShown ||
|
|
14446
|
+
isCameraButtonShown ||
|
|
14447
|
+
isDownloadButtonShown ||
|
|
14448
|
+
isAboutButtonShown ||
|
|
14449
|
+
isFullscreenButtonShown;
|
|
14450
|
+
return (jsxs("div", { className: classNames(styles$d.bookEditorContainer, instanceClass), onDrop: handleDrop, onPaste: handlePaste, onDragOver: handleDragOver, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, children: [isActionBarVisible && (jsx(BookEditorActionbar, { value,
|
|
13973
14451
|
isUploadButtonShown,
|
|
13974
14452
|
isCameraButtonShown: isCameraButtonShown !== null && isCameraButtonShown !== void 0 ? isCameraButtonShown : isTouchDevice,
|
|
13975
14453
|
isDownloadButtonShown,
|
|
@@ -13978,20 +14456,11 @@ function BookEditorMonaco(props) {
|
|
|
13978
14456
|
onFullscreenClick,
|
|
13979
14457
|
onUploadDocument: handleUploadDocument,
|
|
13980
14458
|
onTakePhoto: handleTakePhoto,
|
|
13981
|
-
isFullscreen })), jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxs("div", { className: styles$d.savedNotification, children: [jsx(SaveIcon, {}), "Saved"] })),
|
|
13982
|
-
? `${formatBytes(uploadStats.speedBytesPerSecond)}/s`
|
|
13983
|
-
: '--'] }), jsxs("div", { children: ["Elapsed: ", formatDuration(uploadStats.elapsedMs)] }), jsxs("div", { children: ["Paused: ", uploadStats.pausedFiles, ", Failed: ", uploadStats.failedFiles] })] }), jsx("div", { className: styles$d.uploadPanelProgressBar, children: jsx("div", { className: styles$d.uploadPanelProgressFill, style: { width: `${Math.round(uploadStats.progress * 100)}%` } }) }), jsx("div", { className: styles$d.uploadPanelList, children: activeUploadItems.map((item) => {
|
|
13984
|
-
const percent = Math.round(item.progress * 100);
|
|
13985
|
-
const actionLabel = item.status === 'paused' ? 'Resume' : item.status === 'failed' ? 'Retry' : 'Pause';
|
|
13986
|
-
const canPause = item.status === 'uploading' || item.status === 'queued';
|
|
13987
|
-
const canResume = item.status === 'paused' || item.status === 'failed';
|
|
13988
|
-
return (jsxs("div", { className: styles$d.uploadRow, children: [jsxs("div", { className: styles$d.uploadRowHeader, children: [jsx("div", { className: styles$d.uploadRowName, title: item.fileName, children: item.fileName }), jsx("div", { className: styles$d.uploadRowStatus, children: UPLOAD_STATUS_LABELS[item.status] })] }), jsxs("div", { className: styles$d.uploadRowMeta, children: [jsxs("span", { children: [formatBytes(item.loadedBytes), " / ", formatBytes(item.totalBytes)] }), jsxs("span", { children: [percent, "%"] })] }), jsx("div", { className: styles$d.uploadRowProgressBar, children: jsx("div", { className: styles$d.uploadRowProgressFill, style: { width: `${percent}%` } }) }), jsxs("div", { className: styles$d.uploadRowActions, children: [canPause && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => pauseUpload(item.id), children: "Pause" })), canResume && (jsx("button", { type: "button", className: styles$d.uploadActionButton, onClick: () => resumeUpload(item.id), children: actionLabel }))] }), item.errorMessage && item.status === 'failed' && (jsx("div", { className: styles$d.uploadRowError, children: item.errorMessage }))] }, item.id));
|
|
13989
|
-
}) })] })), jsxs("div", { style: {
|
|
14459
|
+
isFullscreen })), jsx("input", { type: "file", ref: fileUploadInputRef, style: { display: 'none' }, onChange: handleFileInputChange, multiple: true }), jsx("input", { type: "file", ref: cameraInputRef, style: { display: 'none' }, accept: "image/*", capture: "environment", onChange: handleFileInputChange }), isDragOver && jsx("div", { className: styles$d.dropOverlay, children: "Drop files to upload" }), isSavedShown && (jsxs("div", { className: styles$d.savedNotification, children: [jsx(SaveIcon, {}), "Saved"] })), jsx(BookEditorMonacoUploadPanel, { activeUploadItems: activeUploadItems, uploadStats: uploadStats, pauseUpload: pauseUpload, resumeUpload: resumeUpload }), jsxs("div", { style: {
|
|
13990
14460
|
position: 'relative',
|
|
13991
14461
|
flex: 1,
|
|
13992
14462
|
height: '100%',
|
|
13993
14463
|
width: '100%',
|
|
13994
|
-
// outline: '1px dotted #ff3333'
|
|
13995
14464
|
}, children: [isTouchDevice && !isFocused && (jsx("div", { style: {
|
|
13996
14465
|
position: 'absolute',
|
|
13997
14466
|
top: 0,
|
|
@@ -14002,29 +14471,7 @@ function BookEditorMonaco(props) {
|
|
|
14002
14471
|
height: '100%',
|
|
14003
14472
|
width: '100%',
|
|
14004
14473
|
backgroundColor: 'transparent',
|
|
14005
|
-
|
|
14006
|
-
}, onTouchStart: (event) => {
|
|
14007
|
-
// [1] Record the starting position of the touch
|
|
14008
|
-
const touch = event.touches[0];
|
|
14009
|
-
if (touch) {
|
|
14010
|
-
touchStartRef.current = { x: touch.clientX, y: touch.clientY };
|
|
14011
|
-
}
|
|
14012
|
-
}, onTouchEnd: (event) => {
|
|
14013
|
-
event.preventDefault();
|
|
14014
|
-
// [1] Check if this was a tap (not a drag)
|
|
14015
|
-
const touch = event.changedTouches[0];
|
|
14016
|
-
if (touch && touchStartRef.current) {
|
|
14017
|
-
const deltaX = Math.abs(touch.clientX - touchStartRef.current.x);
|
|
14018
|
-
const deltaY = Math.abs(touch.clientY - touchStartRef.current.y);
|
|
14019
|
-
const threshold = 10; // pixels
|
|
14020
|
-
// [1] Only focus if the touch hasn't moved much (it's a tap)
|
|
14021
|
-
if (deltaX < threshold && deltaY < threshold) {
|
|
14022
|
-
// alert('Tap inside the book editor to focus and start editing.');
|
|
14023
|
-
editor === null || editor === void 0 ? void 0 : editor.focus();
|
|
14024
|
-
}
|
|
14025
|
-
}
|
|
14026
|
-
touchStartRef.current = null;
|
|
14027
|
-
} })), jsx(Editor, { language: BOOK_LANGUAGE_ID, value: value, onMount: (editor) => setEditor(editor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
|
|
14474
|
+
}, ...focusOverlayTouchHandlers })), jsx(Editor, { language: BookEditorMonacoConstants.BOOK_LANGUAGE_ID, value: value, onMount: (mountedEditor) => setEditor(mountedEditor), onChange: (newValue) => onChange === null || onChange === void 0 ? void 0 : onChange(newValue), options: {
|
|
14028
14475
|
readOnly: isReadonly,
|
|
14029
14476
|
readOnlyMessage: {
|
|
14030
14477
|
value: (translations === null || translations === void 0 ? void 0 : translations.readonlyMessage) || 'You cannot edit this book',
|
|
@@ -14033,13 +14480,9 @@ function BookEditorMonaco(props) {
|
|
|
14033
14480
|
minimap: { enabled: false },
|
|
14034
14481
|
lineNumbers: 'off',
|
|
14035
14482
|
fontSize: scaledFontSize,
|
|
14036
|
-
// TODO: [🚚] Allow to pass font family as prop + [😺] Make the font asset hosted on Promptbook CDN side
|
|
14037
|
-
// <- TODO: [😺]Pass font as asset
|
|
14038
14483
|
fontFamily: `"Playfair Display", serif`,
|
|
14039
|
-
// [🚚]> fontFamily: `"Bitcount Grid Single", system-ui`,
|
|
14040
14484
|
lineHeight: scaledLineHeight,
|
|
14041
14485
|
renderLineHighlight: 'none',
|
|
14042
|
-
// Note: To add little lines between each line of the book, like a notebook page
|
|
14043
14486
|
lineDecorationsWidth: scaledContentPaddingLeft,
|
|
14044
14487
|
glyphMargin: false,
|
|
14045
14488
|
folding: false,
|
|
@@ -15159,7 +15602,7 @@ const ROLE_COLOR_FALLBACKS = {
|
|
|
15159
15602
|
*
|
|
15160
15603
|
* @private Internal helper of the HTML export renderer.
|
|
15161
15604
|
*/
|
|
15162
|
-
function escapeHtml(value) {
|
|
15605
|
+
function escapeHtml$1(value) {
|
|
15163
15606
|
return String(value)
|
|
15164
15607
|
.replace(/&/g, '&')
|
|
15165
15608
|
.replace(/</g, '<')
|
|
@@ -15179,7 +15622,7 @@ function formatMessageContent(content) {
|
|
|
15179
15622
|
const paragraphs = content.split(/\n{2,}/).map((paragraph) => paragraph.trim());
|
|
15180
15623
|
const rendered = paragraphs
|
|
15181
15624
|
.filter(Boolean)
|
|
15182
|
-
.map((paragraph) => `<p>${escapeHtml(paragraph).replace(/\n/g, '<br />')}</p>`)
|
|
15625
|
+
.map((paragraph) => `<p>${escapeHtml$1(paragraph).replace(/\n/g, '<br />')}</p>`)
|
|
15183
15626
|
.join('');
|
|
15184
15627
|
if (rendered) {
|
|
15185
15628
|
return rendered;
|
|
@@ -15274,9 +15717,9 @@ function buildAttachmentsMarkup(message) {
|
|
|
15274
15717
|
var _a;
|
|
15275
15718
|
const hasUrl = Boolean(attachment.url);
|
|
15276
15719
|
const tag = hasUrl ? 'a' : 'span';
|
|
15277
|
-
const href = hasUrl ? ` href="${escapeHtml((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
|
|
15278
|
-
const name = escapeHtml(attachment.name || 'Attachment');
|
|
15279
|
-
const meta = escapeHtml(attachment.type || 'file');
|
|
15720
|
+
const href = hasUrl ? ` href="${escapeHtml$1((_a = attachment.url) !== null && _a !== void 0 ? _a : '#')}" target="_blank" rel="noopener"` : '';
|
|
15721
|
+
const name = escapeHtml$1(attachment.name || 'Attachment');
|
|
15722
|
+
const meta = escapeHtml$1(attachment.type || 'file');
|
|
15280
15723
|
return spaceTrim$2(`
|
|
15281
15724
|
<${tag} class="attachment-chip"${href}>
|
|
15282
15725
|
<span class="attachment-icon">📎</span>
|
|
@@ -15298,15 +15741,15 @@ function buildCitationsMarkup(message) {
|
|
|
15298
15741
|
return '';
|
|
15299
15742
|
}
|
|
15300
15743
|
const chips = citations.map((citation) => {
|
|
15301
|
-
const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml(citation.excerpt)}</p>` : '';
|
|
15744
|
+
const excerpt = citation.excerpt ? `<p class="citation-excerpt">${escapeHtml$1(citation.excerpt)}</p>` : '';
|
|
15302
15745
|
const urlLink = citation.url
|
|
15303
|
-
? `<a class="citation-link" href="${escapeHtml(citation.url)}" target="_blank" rel="noopener">Open source</a>`
|
|
15746
|
+
? `<a class="citation-link" href="${escapeHtml$1(citation.url)}" target="_blank" rel="noopener">Open source</a>`
|
|
15304
15747
|
: '';
|
|
15305
15748
|
return spaceTrim$2(`
|
|
15306
15749
|
<article class="citation-chip">
|
|
15307
15750
|
<div class="citation-header">
|
|
15308
|
-
<span class="citation-badge">${escapeHtml(citation.id)}</span>
|
|
15309
|
-
<span class="citation-source">${escapeHtml(citation.source)}</span>
|
|
15751
|
+
<span class="citation-badge">${escapeHtml$1(citation.id)}</span>
|
|
15752
|
+
<span class="citation-source">${escapeHtml$1(citation.source)}</span>
|
|
15310
15753
|
</div>
|
|
15311
15754
|
${excerpt}
|
|
15312
15755
|
${urlLink}
|
|
@@ -15332,8 +15775,8 @@ function renderMessageBlock(message, participants) {
|
|
|
15332
15775
|
const citations = buildCitationsMarkup(message);
|
|
15333
15776
|
const alignmentClass = upperSender === 'USER' ? 'message-user' : 'message-assistant';
|
|
15334
15777
|
const avatarMarkup = visuals.avatarSrc
|
|
15335
|
-
? `<img class="message-avatar-img" src="${escapeHtml(visuals.avatarSrc)}" alt="${escapeHtml(visuals.displayName)}" />`
|
|
15336
|
-
: `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml(visuals.avatarLabel)}</span>`;
|
|
15778
|
+
? `<img class="message-avatar-img" src="${escapeHtml$1(visuals.avatarSrc)}" alt="${escapeHtml$1(visuals.displayName)}" />`
|
|
15779
|
+
: `<span class="message-avatar-fallback" style="background:${visuals.accentColor};color:${bubbleTextColor};">${escapeHtml$1(visuals.avatarLabel)}</span>`;
|
|
15337
15780
|
return spaceTrim$2(`
|
|
15338
15781
|
<article class="message-block ${alignmentClass}">
|
|
15339
15782
|
<div class="message-avatar">${avatarMarkup}</div>
|
|
@@ -15341,14 +15784,14 @@ function renderMessageBlock(message, participants) {
|
|
|
15341
15784
|
<div class="message-card-inner">
|
|
15342
15785
|
<header class="message-card-header">
|
|
15343
15786
|
<div>
|
|
15344
|
-
<strong class="message-name">${escapeHtml(visuals.displayName)}</strong>
|
|
15345
|
-
<span class="message-role">${escapeHtml(upperSender)}</span>
|
|
15787
|
+
<strong class="message-name">${escapeHtml$1(visuals.displayName)}</strong>
|
|
15788
|
+
<span class="message-role">${escapeHtml$1(upperSender)}</span>
|
|
15346
15789
|
</div>
|
|
15347
|
-
${timestamp ? `<time class="message-time">${escapeHtml(timestamp)}</time>` : ''}
|
|
15790
|
+
${timestamp ? `<time class="message-time">${escapeHtml$1(timestamp)}</time>` : ''}
|
|
15348
15791
|
</header>
|
|
15349
15792
|
<div class="message-content">${formatMessageContent(message.content)}</div>
|
|
15350
15793
|
${durationLabel
|
|
15351
|
-
? `<div class="message-duration">Responded in ${escapeHtml(durationLabel)}</div>`
|
|
15794
|
+
? `<div class="message-duration">Responded in ${escapeHtml$1(durationLabel)}</div>`
|
|
15352
15795
|
: ''}
|
|
15353
15796
|
${attachments}
|
|
15354
15797
|
${citations}
|
|
@@ -15366,7 +15809,7 @@ const htmlSaveFormatDefinition = {
|
|
|
15366
15809
|
formatName: 'html',
|
|
15367
15810
|
label: 'Html',
|
|
15368
15811
|
getContent: ({ title, messages, participants }) => {
|
|
15369
|
-
const safeTitle = escapeHtml(title || 'Chat');
|
|
15812
|
+
const safeTitle = escapeHtml$1(title || 'Chat');
|
|
15370
15813
|
const participantLookup = buildParticipantMap(participants);
|
|
15371
15814
|
const exportedAt = new Date();
|
|
15372
15815
|
const exportedLabel = formatTimestamp(exportedAt);
|
|
@@ -15787,13 +16230,13 @@ const htmlSaveFormatDefinition = {
|
|
|
15787
16230
|
<div class="hero-content">
|
|
15788
16231
|
<p class="hero-kicker">Chat export</p>
|
|
15789
16232
|
<h1>Conversation with ${safeTitle}</h1>
|
|
15790
|
-
<p class="hero-subtitle">${escapeHtml(heroSubtitle)}</p>
|
|
16233
|
+
<p class="hero-subtitle">${escapeHtml$1(heroSubtitle)}</p>
|
|
15791
16234
|
<div class="stat-grid">
|
|
15792
16235
|
${statCards
|
|
15793
16236
|
.map((stat) => spaceTrim$2(`
|
|
15794
16237
|
<div class="stat-card">
|
|
15795
|
-
<span class="stat-value">${escapeHtml(stat.value)}</span>
|
|
15796
|
-
<span class="stat-label">${escapeHtml(stat.label)}</span>
|
|
16238
|
+
<span class="stat-value">${escapeHtml$1(stat.value)}</span>
|
|
16239
|
+
<span class="stat-label">${escapeHtml$1(stat.label)}</span>
|
|
15797
16240
|
</div>
|
|
15798
16241
|
`))
|
|
15799
16242
|
.join('')}
|
|
@@ -15810,8 +16253,8 @@ const htmlSaveFormatDefinition = {
|
|
|
15810
16253
|
<p class="chat-panel-subhead">Captured messages, ready to share</p>
|
|
15811
16254
|
</div>
|
|
15812
16255
|
<div class="chat-panel-meta">
|
|
15813
|
-
<span>${escapeHtml(`${messages.length} messages`)}</span>
|
|
15814
|
-
<span>${escapeHtml(`${participantCount} participants`)}</span>
|
|
16256
|
+
<span>${escapeHtml$1(`${messages.length} messages`)}</span>
|
|
16257
|
+
<span>${escapeHtml$1(`${participantCount} participants`)}</span>
|
|
15815
16258
|
</div>
|
|
15816
16259
|
</div>
|
|
15817
16260
|
<div class="chat-messages">
|
|
@@ -15821,7 +16264,7 @@ const htmlSaveFormatDefinition = {
|
|
|
15821
16264
|
<footer class="export-footer">
|
|
15822
16265
|
<div>
|
|
15823
16266
|
<p>Generated by Promptbook</p>
|
|
15824
|
-
<p class="footer-meta">Exported ${escapeHtml(exportedLabel)}</p>
|
|
16267
|
+
<p class="footer-meta">Exported ${escapeHtml$1(exportedLabel)}</p>
|
|
15825
16268
|
</div>
|
|
15826
16269
|
<div class="footer-brand">
|
|
15827
16270
|
<img src="${BRAND_MARK_URL}" alt="" aria-hidden="true" />
|
|
@@ -21984,27 +22427,6 @@ const $llmToolsRegister = new $Register('llm_execution_tools_constructors');
|
|
|
21984
22427
|
* TODO: [®] DRY Register logic
|
|
21985
22428
|
*/
|
|
21986
22429
|
|
|
21987
|
-
/*! *****************************************************************************
|
|
21988
|
-
Copyright (c) Microsoft Corporation.
|
|
21989
|
-
|
|
21990
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
21991
|
-
purpose with or without fee is hereby granted.
|
|
21992
|
-
|
|
21993
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
21994
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
21995
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
21996
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
21997
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
21998
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
21999
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
22000
|
-
***************************************************************************** */
|
|
22001
|
-
|
|
22002
|
-
function __classPrivateFieldGet(receiver, state, kind, f) {
|
|
22003
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
22004
|
-
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");
|
|
22005
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
22006
|
-
}
|
|
22007
|
-
|
|
22008
22430
|
/**
|
|
22009
22431
|
* Helper of usage compute
|
|
22010
22432
|
*
|
|
@@ -25780,6 +26202,24 @@ function emitAssistantPreparationProgress(options) {
|
|
|
25780
26202
|
],
|
|
25781
26203
|
});
|
|
25782
26204
|
}
|
|
26205
|
+
/**
|
|
26206
|
+
* Merges the agent's predefined knowledge sources with user-provided attachment URLs.
|
|
26207
|
+
*
|
|
26208
|
+
* @private internal helper for `AgentLlmExecutionTools`
|
|
26209
|
+
*/
|
|
26210
|
+
function mergeKnowledgeSourcesWithAttachments(baseSources, attachmentUrls) {
|
|
26211
|
+
const combined = [];
|
|
26212
|
+
if (baseSources && baseSources.length > 0) {
|
|
26213
|
+
combined.push(...baseSources.filter((value) => typeof value === 'string' && value.trim() !== ''));
|
|
26214
|
+
}
|
|
26215
|
+
for (const url of attachmentUrls) {
|
|
26216
|
+
const trimmed = String(url !== null && url !== void 0 ? url : '').trim();
|
|
26217
|
+
if (trimmed !== '') {
|
|
26218
|
+
combined.push(trimmed);
|
|
26219
|
+
}
|
|
26220
|
+
}
|
|
26221
|
+
return Array.from(new Set(combined));
|
|
26222
|
+
}
|
|
25783
26223
|
/**
|
|
25784
26224
|
* Execution Tools for calling LLM models with a predefined agent "soul"
|
|
25785
26225
|
* This wraps underlying LLM execution tools and applies agent-specific system prompts and requirements
|
|
@@ -25924,7 +26364,7 @@ class AgentLlmExecutionTools {
|
|
|
25924
26364
|
* Calls the chat model with agent-specific system prompt and requirements with streaming
|
|
25925
26365
|
*/
|
|
25926
26366
|
async callChatModelStream(prompt, onProgress) {
|
|
25927
|
-
var _a
|
|
26367
|
+
var _a;
|
|
25928
26368
|
// Ensure we're working with a chat prompt
|
|
25929
26369
|
if (prompt.modelRequirements.modelVariant !== 'CHAT') {
|
|
25930
26370
|
throw new Error('AgentLlmExecutionTools only supports chat prompts');
|
|
@@ -25932,6 +26372,14 @@ class AgentLlmExecutionTools {
|
|
|
25932
26372
|
const modelRequirements = await this.getModelRequirements();
|
|
25933
26373
|
const { _metadata, promptSuffix, ...sanitizedRequirements } = modelRequirements;
|
|
25934
26374
|
const chatPrompt = prompt;
|
|
26375
|
+
const attachmentUrls = Array.isArray(chatPrompt.attachments) && chatPrompt.attachments.length > 0
|
|
26376
|
+
? chatPrompt.attachments
|
|
26377
|
+
.map((attachment) => (typeof (attachment === null || attachment === void 0 ? void 0 : attachment.url) === 'string' ? attachment.url.trim() : ''))
|
|
26378
|
+
.filter((url) => url !== '')
|
|
26379
|
+
: [];
|
|
26380
|
+
const knowledgeSourcesForAgentList = mergeKnowledgeSourcesWithAttachments(sanitizedRequirements.knowledgeSources, attachmentUrls);
|
|
26381
|
+
const knowledgeSourcesForAgent = knowledgeSourcesForAgentList.length > 0 ? knowledgeSourcesForAgentList : undefined;
|
|
26382
|
+
const hasAttachmentSources = attachmentUrls.length > 0;
|
|
25935
26383
|
let underlyingLlmResult;
|
|
25936
26384
|
const chatPromptContentWithSuffix = promptSuffix
|
|
25937
26385
|
? `${chatPrompt.content}\n\n${promptSuffix}`
|
|
@@ -25947,9 +26395,7 @@ class AgentLlmExecutionTools {
|
|
|
25947
26395
|
? [...sanitizedRequirements.tools]
|
|
25948
26396
|
: chatPrompt.modelRequirements.tools,
|
|
25949
26397
|
// Spread knowledgeSources to convert readonly array to mutable
|
|
25950
|
-
knowledgeSources:
|
|
25951
|
-
? [...sanitizedRequirements.knowledgeSources]
|
|
25952
|
-
: undefined,
|
|
26398
|
+
knowledgeSources: knowledgeSourcesForAgent,
|
|
25953
26399
|
// Prepend agent system message to existing system message
|
|
25954
26400
|
systemMessage: sanitizedRequirements.systemMessage +
|
|
25955
26401
|
(chatPrompt.modelRequirements.systemMessage
|
|
@@ -25959,27 +26405,34 @@ class AgentLlmExecutionTools {
|
|
|
25959
26405
|
};
|
|
25960
26406
|
console.log('!!!! promptWithAgentModelRequirements:', promptWithAgentModelRequirements);
|
|
25961
26407
|
if (OpenAiAgentKitExecutionTools.isOpenAiAgentKitExecutionTools(this.options.llmTools)) {
|
|
25962
|
-
const
|
|
25963
|
-
|
|
25964
|
-
const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
|
|
25965
|
-
const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
|
|
25966
|
-
let preparedAgentKit = this.options.assistantPreparationMode === 'external'
|
|
26408
|
+
const shouldUseCache = !hasAttachmentSources;
|
|
26409
|
+
let preparedAgentKit = shouldUseCache && this.options.assistantPreparationMode === 'external'
|
|
25967
26410
|
? this.options.llmTools.getPreparedAgentKitAgent()
|
|
25968
26411
|
: null;
|
|
25969
|
-
|
|
25970
|
-
|
|
25971
|
-
|
|
25972
|
-
|
|
25973
|
-
|
|
25974
|
-
|
|
25975
|
-
|
|
25976
|
-
|
|
25977
|
-
|
|
26412
|
+
let vectorStoreId;
|
|
26413
|
+
let vectorStoreHash;
|
|
26414
|
+
let requirementsHash;
|
|
26415
|
+
if (shouldUseCache) {
|
|
26416
|
+
requirementsHash = SHA256(JSON.stringify(sanitizedRequirements)).toString();
|
|
26417
|
+
vectorStoreHash = SHA256(JSON.stringify((_a = sanitizedRequirements.knowledgeSources) !== null && _a !== void 0 ? _a : [])).toString();
|
|
26418
|
+
const cachedVectorStore = AgentLlmExecutionTools.vectorStoreCache.get(this.title);
|
|
26419
|
+
const cachedAgentKit = AgentLlmExecutionTools.agentKitAgentCache.get(this.title);
|
|
26420
|
+
vectorStoreId =
|
|
26421
|
+
(preparedAgentKit === null || preparedAgentKit === void 0 ? void 0 : preparedAgentKit.vectorStoreId) ||
|
|
26422
|
+
(cachedVectorStore && cachedVectorStore.requirementsHash === vectorStoreHash
|
|
26423
|
+
? cachedVectorStore.vectorStoreId
|
|
26424
|
+
: undefined);
|
|
26425
|
+
if (!preparedAgentKit && cachedAgentKit && cachedAgentKit.requirementsHash === requirementsHash) {
|
|
26426
|
+
if (this.options.isVerbose) {
|
|
26427
|
+
console.info('[🤰]', 'Using cached OpenAI AgentKit agent', {
|
|
26428
|
+
agent: this.title,
|
|
26429
|
+
});
|
|
26430
|
+
}
|
|
26431
|
+
preparedAgentKit = {
|
|
26432
|
+
agent: cachedAgentKit.agent,
|
|
26433
|
+
vectorStoreId: cachedAgentKit.vectorStoreId,
|
|
26434
|
+
};
|
|
25978
26435
|
}
|
|
25979
|
-
preparedAgentKit = {
|
|
25980
|
-
agent: cachedAgentKit.agent,
|
|
25981
|
-
vectorStoreId: cachedAgentKit.vectorStoreId,
|
|
25982
|
-
};
|
|
25983
26436
|
}
|
|
25984
26437
|
if (!preparedAgentKit) {
|
|
25985
26438
|
if (this.options.isVerbose) {
|
|
@@ -25987,7 +26440,7 @@ class AgentLlmExecutionTools {
|
|
|
25987
26440
|
agent: this.title,
|
|
25988
26441
|
});
|
|
25989
26442
|
}
|
|
25990
|
-
if (!vectorStoreId && (
|
|
26443
|
+
if (!vectorStoreId && (knowledgeSourcesForAgent === null || knowledgeSourcesForAgent === void 0 ? void 0 : knowledgeSourcesForAgent.length)) {
|
|
25991
26444
|
emitAssistantPreparationProgress({
|
|
25992
26445
|
onProgress,
|
|
25993
26446
|
prompt,
|
|
@@ -26004,22 +26457,24 @@ class AgentLlmExecutionTools {
|
|
|
26004
26457
|
preparedAgentKit = await this.options.llmTools.prepareAgentKitAgent({
|
|
26005
26458
|
name: this.title,
|
|
26006
26459
|
instructions: sanitizedRequirements.systemMessage || '',
|
|
26007
|
-
knowledgeSources:
|
|
26460
|
+
knowledgeSources: knowledgeSourcesForAgent,
|
|
26008
26461
|
tools: sanitizedRequirements.tools ? [...sanitizedRequirements.tools] : undefined,
|
|
26009
|
-
vectorStoreId,
|
|
26462
|
+
vectorStoreId: shouldUseCache ? vectorStoreId : undefined,
|
|
26010
26463
|
});
|
|
26011
26464
|
}
|
|
26012
|
-
if (preparedAgentKit.vectorStoreId) {
|
|
26465
|
+
if (shouldUseCache && vectorStoreHash && preparedAgentKit.vectorStoreId) {
|
|
26013
26466
|
AgentLlmExecutionTools.vectorStoreCache.set(this.title, {
|
|
26014
26467
|
vectorStoreId: preparedAgentKit.vectorStoreId,
|
|
26015
26468
|
requirementsHash: vectorStoreHash,
|
|
26016
26469
|
});
|
|
26017
26470
|
}
|
|
26018
|
-
|
|
26019
|
-
|
|
26020
|
-
|
|
26021
|
-
|
|
26022
|
-
|
|
26471
|
+
if (shouldUseCache && requirementsHash) {
|
|
26472
|
+
AgentLlmExecutionTools.agentKitAgentCache.set(this.title, {
|
|
26473
|
+
agent: preparedAgentKit.agent,
|
|
26474
|
+
requirementsHash,
|
|
26475
|
+
vectorStoreId: preparedAgentKit.vectorStoreId,
|
|
26476
|
+
});
|
|
26477
|
+
}
|
|
26023
26478
|
const responseFormatOutputType = mapResponseFormatToAgentOutputType(promptWithAgentModelRequirements.modelRequirements.responseFormat);
|
|
26024
26479
|
underlyingLlmResult = await this.options.llmTools.callChatModelStreamWithPreparedAgent({
|
|
26025
26480
|
openAiAgentKitAgent: preparedAgentKit.agent,
|
|
@@ -26176,9 +26631,148 @@ AgentLlmExecutionTools.vectorStoreCache = new Map();
|
|
|
26176
26631
|
* TODO: [🧠] Adding parameter substitution support (here or should be responsibility of the underlying LLM Tools)
|
|
26177
26632
|
*/
|
|
26178
26633
|
|
|
26179
|
-
|
|
26634
|
+
/**
|
|
26635
|
+
* Coordinates the Agent self-learning workflow that was extracted from the main class.
|
|
26636
|
+
*
|
|
26637
|
+
* @private helper for Agent
|
|
26638
|
+
*/
|
|
26639
|
+
class SelfLearningManager {
|
|
26640
|
+
constructor(options) {
|
|
26641
|
+
this.options = options;
|
|
26642
|
+
this.teacherAgent = options.teacherAgent;
|
|
26643
|
+
}
|
|
26644
|
+
/**
|
|
26645
|
+
* Runs nonce, sampling, and teacher steps for every interaction that should learn.
|
|
26646
|
+
*
|
|
26647
|
+
* @param prompt Received prompt for the interaction
|
|
26648
|
+
* @param result Response produced by the agent
|
|
26649
|
+
* @returns Teacher summary or null when no teacher is configured
|
|
26650
|
+
* @private helper of Agent
|
|
26651
|
+
*/
|
|
26652
|
+
async runSelfLearning(prompt, result) {
|
|
26653
|
+
if (just(false)) {
|
|
26654
|
+
await this.appendNonce();
|
|
26655
|
+
}
|
|
26656
|
+
this.appendSample(prompt, result);
|
|
26657
|
+
if (this.teacherAgent === null) {
|
|
26658
|
+
return null;
|
|
26659
|
+
}
|
|
26660
|
+
try {
|
|
26661
|
+
return await this.callTeacher(prompt, result);
|
|
26662
|
+
}
|
|
26663
|
+
catch (error) {
|
|
26664
|
+
console.error(colors.bgCyan('[Self-learning]') + colors.red(' Failed to learn from teacher agent'));
|
|
26665
|
+
console.error(error);
|
|
26666
|
+
return buildTeacherSummary('', true);
|
|
26667
|
+
}
|
|
26668
|
+
}
|
|
26669
|
+
/**
|
|
26670
|
+
* Appends the nonce section to the agent source with slight delay to avoid thundering herd lookups.
|
|
26671
|
+
*
|
|
26672
|
+
* @private helper of Agent
|
|
26673
|
+
*/
|
|
26674
|
+
async appendNonce() {
|
|
26675
|
+
await forTime(Math.random() * 5000);
|
|
26676
|
+
console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Nonce'));
|
|
26677
|
+
const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
|
|
26678
|
+
this.appendToAgentSource('\n\n---\n\n' + nonce);
|
|
26679
|
+
}
|
|
26680
|
+
/**
|
|
26681
|
+
* Appends the recent user/agent exchange as a new sample.
|
|
26682
|
+
*
|
|
26683
|
+
* @private helper of Agent
|
|
26684
|
+
*/
|
|
26685
|
+
appendSample(prompt, result) {
|
|
26686
|
+
console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Sampling'));
|
|
26687
|
+
const learningExample = spaceTrim$2((block) => `
|
|
26688
|
+
|
|
26689
|
+
USER MESSAGE
|
|
26690
|
+
${block(prompt.content)}
|
|
26691
|
+
|
|
26692
|
+
AGENT MESSAGE
|
|
26693
|
+
${block(result.content)}
|
|
26694
|
+
|
|
26695
|
+
`);
|
|
26696
|
+
this.appendToAgentSource('\n\n---\n\n' + learningExample);
|
|
26697
|
+
}
|
|
26698
|
+
/**
|
|
26699
|
+
* Calls the teacher agent, appends its commitments, and summarizes the results.
|
|
26700
|
+
*
|
|
26701
|
+
* @private helper of Agent
|
|
26702
|
+
*/
|
|
26703
|
+
async callTeacher(prompt, result) {
|
|
26704
|
+
console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Teacher'));
|
|
26705
|
+
const teacherPromptContent = spaceTrim$2((block) => `
|
|
26706
|
+
|
|
26707
|
+
You are a teacher agent helping another agent to learn from its interactions.
|
|
26708
|
+
|
|
26709
|
+
Here is your current client which you are teaching:
|
|
26710
|
+
|
|
26711
|
+
\`\`\`book
|
|
26712
|
+
${block(this.options.getAgentSource())}
|
|
26713
|
+
\`\`\`
|
|
26714
|
+
|
|
26715
|
+
**And here is the latest interaction:**
|
|
26716
|
+
|
|
26717
|
+
**User:**
|
|
26718
|
+
${block(prompt.content)}
|
|
26719
|
+
|
|
26720
|
+
**Agent:**
|
|
26721
|
+
${block(result.content)}
|
|
26722
|
+
|
|
26723
|
+
|
|
26724
|
+
**Rules:**
|
|
26725
|
+
|
|
26726
|
+
- Decide what the agent should learn from this interaction.
|
|
26727
|
+
- Append new commitments at the end of the agent source.
|
|
26728
|
+
- Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
|
|
26729
|
+
- If there is nothing new to learn, return empty book code block
|
|
26730
|
+
- Wrap the commitments in a book code block.
|
|
26731
|
+
- Do not explain anything, just return the commitments wrapped in a book code block.
|
|
26732
|
+
- Write the learned commitments in the same style and language as in the original agent source.
|
|
26733
|
+
|
|
26734
|
+
|
|
26735
|
+
This is how book code block looks like:
|
|
26736
|
+
|
|
26737
|
+
\`\`\`book
|
|
26738
|
+
KNOWLEDGE The sky is blue.
|
|
26739
|
+
RULE Always be polite.
|
|
26740
|
+
\`\`\`
|
|
26741
|
+
`);
|
|
26742
|
+
const teacherResult = await this.teacherAgent.callChatModel({
|
|
26743
|
+
title: 'Self-learning',
|
|
26744
|
+
modelRequirements: {
|
|
26745
|
+
modelVariant: 'CHAT',
|
|
26746
|
+
},
|
|
26747
|
+
content: teacherPromptContent,
|
|
26748
|
+
parameters: {},
|
|
26749
|
+
});
|
|
26750
|
+
console.log('!!!! teacherResult', teacherResult);
|
|
26751
|
+
const teacherCommitments = unwrapResult(teacherResult.content);
|
|
26752
|
+
if (teacherCommitments === '') {
|
|
26753
|
+
console.info(colors.bgCyan('[Self-learning]') +
|
|
26754
|
+
colors.cyan(' Teacher agent did not provide new commitments to learn'));
|
|
26755
|
+
return buildTeacherSummary('', true);
|
|
26756
|
+
}
|
|
26757
|
+
this.appendToAgentSource('\n\n' + teacherCommitments);
|
|
26758
|
+
return buildTeacherSummary(teacherCommitments, true);
|
|
26759
|
+
}
|
|
26760
|
+
/**
|
|
26761
|
+
* Appends a new fragment to the agent source and triggers normalization.
|
|
26762
|
+
*
|
|
26763
|
+
* @param section Fragment that should be appended
|
|
26764
|
+
* @private helper of Agent
|
|
26765
|
+
*/
|
|
26766
|
+
appendToAgentSource(section) {
|
|
26767
|
+
const currentSource = this.options.getAgentSource();
|
|
26768
|
+
const newSource = padBook(validateBook(spaceTrim$2(currentSource) + section));
|
|
26769
|
+
this.options.updateAgentSource(newSource);
|
|
26770
|
+
}
|
|
26771
|
+
}
|
|
26180
26772
|
/**
|
|
26181
26773
|
* Creates an empty commitment breakdown for self-learning summaries.
|
|
26774
|
+
*
|
|
26775
|
+
* @private function of Agent
|
|
26182
26776
|
*/
|
|
26183
26777
|
function createEmptySelfLearningCommitmentCounts() {
|
|
26184
26778
|
return {
|
|
@@ -26191,6 +26785,9 @@ function createEmptySelfLearningCommitmentCounts() {
|
|
|
26191
26785
|
}
|
|
26192
26786
|
/**
|
|
26193
26787
|
* Normalizes teacher commitments into trimmed, display-ready lines.
|
|
26788
|
+
*
|
|
26789
|
+
* @param commitments Raw teacher output
|
|
26790
|
+
* @private function of Agent
|
|
26194
26791
|
*/
|
|
26195
26792
|
function getTeacherCommitmentLines(commitments) {
|
|
26196
26793
|
return commitments
|
|
@@ -26200,6 +26797,9 @@ function getTeacherCommitmentLines(commitments) {
|
|
|
26200
26797
|
}
|
|
26201
26798
|
/**
|
|
26202
26799
|
* Summarizes teacher commitment lines into user-friendly counts for self-learning.
|
|
26800
|
+
*
|
|
26801
|
+
* @param lines Parsed teacher commitment lines
|
|
26802
|
+
* @private function of Agent
|
|
26203
26803
|
*/
|
|
26204
26804
|
function summarizeTeacherCommitmentLines(lines) {
|
|
26205
26805
|
var _a, _b;
|
|
@@ -26227,6 +26827,11 @@ function summarizeTeacherCommitmentLines(lines) {
|
|
|
26227
26827
|
}
|
|
26228
26828
|
/**
|
|
26229
26829
|
* Builds the teacher summary payload for the self-learning tool call.
|
|
26830
|
+
*
|
|
26831
|
+
* @param commitments Raw teacher commitments
|
|
26832
|
+
* @param used Whether the teacher was invoked
|
|
26833
|
+
* @returns Summary of learned commitments
|
|
26834
|
+
* @private function of Agent
|
|
26230
26835
|
*/
|
|
26231
26836
|
function buildTeacherSummary(commitments, used) {
|
|
26232
26837
|
const commitmentLines = getTeacherCommitmentLines(commitments);
|
|
@@ -26236,6 +26841,34 @@ function buildTeacherSummary(commitments, used) {
|
|
|
26236
26841
|
commitments: commitmentLines.length > 0 ? commitmentLines : undefined,
|
|
26237
26842
|
};
|
|
26238
26843
|
}
|
|
26844
|
+
|
|
26845
|
+
/**
|
|
26846
|
+
* Parses boolean prompt parameters, defaulting when the value is missing or invalid.
|
|
26847
|
+
*
|
|
26848
|
+
* @private
|
|
26849
|
+
*/
|
|
26850
|
+
function parseBooleanPromptParameter(value, fallback) {
|
|
26851
|
+
if (value === undefined) {
|
|
26852
|
+
return fallback;
|
|
26853
|
+
}
|
|
26854
|
+
const normalized = value.trim().toLowerCase();
|
|
26855
|
+
if (normalized === 'true') {
|
|
26856
|
+
return true;
|
|
26857
|
+
}
|
|
26858
|
+
if (normalized === 'false') {
|
|
26859
|
+
return false;
|
|
26860
|
+
}
|
|
26861
|
+
try {
|
|
26862
|
+
const parsed = JSON.parse(value);
|
|
26863
|
+
if (typeof parsed === 'boolean') {
|
|
26864
|
+
return parsed;
|
|
26865
|
+
}
|
|
26866
|
+
}
|
|
26867
|
+
catch (_a) {
|
|
26868
|
+
// If JSON parsing fails, fall back to the default.
|
|
26869
|
+
}
|
|
26870
|
+
return fallback;
|
|
26871
|
+
}
|
|
26239
26872
|
/**
|
|
26240
26873
|
* Represents one AI Agent
|
|
26241
26874
|
*
|
|
@@ -26278,7 +26911,6 @@ class Agent extends AgentLlmExecutionTools {
|
|
|
26278
26911
|
assistantPreparationMode: options.assistantPreparationMode,
|
|
26279
26912
|
agentSource: agentSource.value, // <- TODO: [🐱🚀] Allow to pass BehaviorSubject<string_book> OR refresh llmExecutionTools.callChat on agentSource change
|
|
26280
26913
|
});
|
|
26281
|
-
_Agent_instances.add(this);
|
|
26282
26914
|
this._agentName = undefined;
|
|
26283
26915
|
/**
|
|
26284
26916
|
* Description of the agent
|
|
@@ -26317,8 +26949,12 @@ class Agent extends AgentLlmExecutionTools {
|
|
|
26317
26949
|
this.toolTitles = {};
|
|
26318
26950
|
// TODO: [🐱🚀] Add `Agent` simple "mocked" learning by appending to agent source
|
|
26319
26951
|
// TODO: [🐱🚀] Add `Agent` learning by promptbookAgent
|
|
26320
|
-
this.teacherAgent = options.teacherAgent;
|
|
26321
26952
|
this.agentSource = agentSource;
|
|
26953
|
+
this.selfLearningManager = new SelfLearningManager({
|
|
26954
|
+
teacherAgent: options.teacherAgent,
|
|
26955
|
+
getAgentSource: () => this.agentSource.value,
|
|
26956
|
+
updateAgentSource: (source) => this.agentSource.next(source),
|
|
26957
|
+
});
|
|
26322
26958
|
this.agentSource.subscribe((source) => {
|
|
26323
26959
|
this.updateAgentSource(source);
|
|
26324
26960
|
const { agentName, personaDescription, initialMessage, links, meta, capabilities, samples, knowledgeSources, } = parseAgentSource(source);
|
|
@@ -26342,6 +26978,7 @@ class Agent extends AgentLlmExecutionTools {
|
|
|
26342
26978
|
* Note: This method also implements the learning mechanism
|
|
26343
26979
|
*/
|
|
26344
26980
|
async callChatModelStream(prompt, onProgress) {
|
|
26981
|
+
var _a;
|
|
26345
26982
|
// [1] Check if the user is asking the same thing as in the samples
|
|
26346
26983
|
const modelRequirements = await this.getModelRequirements();
|
|
26347
26984
|
if (modelRequirements.samples) {
|
|
@@ -26392,6 +27029,10 @@ class Agent extends AgentLlmExecutionTools {
|
|
|
26392
27029
|
if (modelRequirements.isClosed) {
|
|
26393
27030
|
return result;
|
|
26394
27031
|
}
|
|
27032
|
+
const shouldSelfLearn = parseBooleanPromptParameter((_a = prompt.parameters) === null || _a === void 0 ? void 0 : _a[PROMPT_PARAMETER_SELF_LEARNING_ENABLED], true);
|
|
27033
|
+
if (!shouldSelfLearn) {
|
|
27034
|
+
return result;
|
|
27035
|
+
}
|
|
26395
27036
|
// Note: [0] Notify start of self-learning
|
|
26396
27037
|
const selfLearningToolCall = {
|
|
26397
27038
|
name: 'self-learning',
|
|
@@ -26403,24 +27044,7 @@ class Agent extends AgentLlmExecutionTools {
|
|
|
26403
27044
|
toolCalls: [...(result.toolCalls || []), selfLearningToolCall],
|
|
26404
27045
|
};
|
|
26405
27046
|
onProgress(resultWithLearning);
|
|
26406
|
-
|
|
26407
|
-
if (just(false)) {
|
|
26408
|
-
await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnNonce).call(this);
|
|
26409
|
-
}
|
|
26410
|
-
// Note: [2] Do the append of the samples
|
|
26411
|
-
await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnSamples).call(this, prompt, result);
|
|
26412
|
-
// Note: [3] Asynchronously call the teacher agent and invoke the silver link. When the teacher fails, keep just the samples
|
|
26413
|
-
let teacherSummary = null;
|
|
26414
|
-
try {
|
|
26415
|
-
teacherSummary = await __classPrivateFieldGet(this, _Agent_instances, "m", _Agent_selfLearnTeacher).call(this, prompt, result);
|
|
26416
|
-
}
|
|
26417
|
-
catch (error) {
|
|
26418
|
-
// !!!!! if (this.options.isVerbose) {
|
|
26419
|
-
console.error(colors.bgCyan('[Self-learning]') + colors.red(' Failed to learn from teacher agent'));
|
|
26420
|
-
console.error(error);
|
|
26421
|
-
// }
|
|
26422
|
-
teacherSummary = this.teacherAgent ? buildTeacherSummary('', true) : null;
|
|
26423
|
-
}
|
|
27047
|
+
const teacherSummary = await this.selfLearningManager.runSelfLearning(prompt, result);
|
|
26424
27048
|
// Note: [4] Notify end of self-learning
|
|
26425
27049
|
const completedAt = new Date().toISOString();
|
|
26426
27050
|
const selfLearningResult = {
|
|
@@ -26442,110 +27066,6 @@ class Agent extends AgentLlmExecutionTools {
|
|
|
26442
27066
|
return finalResult;
|
|
26443
27067
|
}
|
|
26444
27068
|
}
|
|
26445
|
-
_Agent_instances = new WeakSet(), _Agent_selfLearnNonce =
|
|
26446
|
-
/**
|
|
26447
|
-
* Self-learning Step 0: Asynchronously with random timing add nonce to the agent source
|
|
26448
|
-
*/
|
|
26449
|
-
async function _Agent_selfLearnNonce() {
|
|
26450
|
-
await forTime(Math.random() * 5000);
|
|
26451
|
-
// <- TODO: [🕓] `await forRandom(...)`
|
|
26452
|
-
console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Nonce'));
|
|
26453
|
-
const nonce = `NONCE ${await linguisticHash(Math.random().toString())}`;
|
|
26454
|
-
// Append to the current source
|
|
26455
|
-
const currentSource = this.agentSource.value;
|
|
26456
|
-
const newSource = padBook(validateBook(spaceTrim$2(currentSource) + '\n\n---\n\n' + nonce));
|
|
26457
|
-
// <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
|
|
26458
|
-
// Update the source (which will trigger the subscription and update the underlying tools)
|
|
26459
|
-
this.agentSource.next(newSource);
|
|
26460
|
-
}, _Agent_selfLearnSamples = function _Agent_selfLearnSamples(prompt, result) {
|
|
26461
|
-
console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Sampling'));
|
|
26462
|
-
const learningExample = spaceTrim$2((block) => `
|
|
26463
|
-
|
|
26464
|
-
USER MESSAGE
|
|
26465
|
-
${block(prompt.content)}
|
|
26466
|
-
|
|
26467
|
-
AGENT MESSAGE
|
|
26468
|
-
${block(result.content)}
|
|
26469
|
-
|
|
26470
|
-
`);
|
|
26471
|
-
// Append to the current source
|
|
26472
|
-
const currentSource = this.agentSource.value;
|
|
26473
|
-
const newSource = padBook(validateBook(spaceTrim$2(currentSource) + '\n\n---\n\n' + learningExample));
|
|
26474
|
-
// <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
|
|
26475
|
-
// Update the source (which will trigger the subscription and update the underlying tools)
|
|
26476
|
-
this.agentSource.next(newSource);
|
|
26477
|
-
}, _Agent_selfLearnTeacher =
|
|
26478
|
-
/**
|
|
26479
|
-
* Self-learning Step 2: Asynchronously call the teacher agent and invoke the silver link
|
|
26480
|
-
*/
|
|
26481
|
-
async function _Agent_selfLearnTeacher(prompt, result) {
|
|
26482
|
-
// [1] Call the teacher agent // <- !!!!! Emojis
|
|
26483
|
-
if (this.teacherAgent === null) {
|
|
26484
|
-
return null;
|
|
26485
|
-
}
|
|
26486
|
-
console.info(colors.bgCyan('[Self-learning]') + colors.cyan(' Teacher'));
|
|
26487
|
-
const teacherResult = await this.teacherAgent.callChatModel({
|
|
26488
|
-
title: 'Self-learning',
|
|
26489
|
-
modelRequirements: {
|
|
26490
|
-
modelVariant: 'CHAT',
|
|
26491
|
-
},
|
|
26492
|
-
// TODO: !!!! Use prompt notation
|
|
26493
|
-
content: spaceTrim$2((block) => `
|
|
26494
|
-
|
|
26495
|
-
You are a teacher agent helping another agent to learn from its interactions.
|
|
26496
|
-
|
|
26497
|
-
Here is your current client which you are teaching:
|
|
26498
|
-
|
|
26499
|
-
\`\`\`book
|
|
26500
|
-
${block(this.agentSource.value)}
|
|
26501
|
-
\`\`\`
|
|
26502
|
-
|
|
26503
|
-
**And here is the latest interaction:**
|
|
26504
|
-
|
|
26505
|
-
**User:**
|
|
26506
|
-
${block(prompt.content)}
|
|
26507
|
-
|
|
26508
|
-
**Agent:**
|
|
26509
|
-
${block(result.content)}
|
|
26510
|
-
|
|
26511
|
-
|
|
26512
|
-
**Rules:**
|
|
26513
|
-
|
|
26514
|
-
- Decide what the agent should learn from this interaction.
|
|
26515
|
-
- Append new commitments at the end of the agent source.
|
|
26516
|
-
- Do not modify the current agent source, just return new commitments (KNOWLEDGE, RULE, etc.).
|
|
26517
|
-
- If there is nothing new to learn, return empty book code block
|
|
26518
|
-
- Wrap the commitments in a book code block.
|
|
26519
|
-
- Do not explain anything, just return the commitments wrapped in a book code block.
|
|
26520
|
-
- Write the learned commitments in the same style and language as in the original agent source.
|
|
26521
|
-
|
|
26522
|
-
|
|
26523
|
-
This is how book code block looks like:
|
|
26524
|
-
|
|
26525
|
-
\`\`\`book
|
|
26526
|
-
KNOWLEDGE The sky is blue.
|
|
26527
|
-
RULE Always be polite.
|
|
26528
|
-
\`\`\`
|
|
26529
|
-
`),
|
|
26530
|
-
// pipelineUrl: 'https://github.com/webgptorg/promptbook/blob/main/prompts/self-learning.ptbk.md',
|
|
26531
|
-
// <- TODO: !!!! Remove and `pipelineUrl` for agent purposes
|
|
26532
|
-
parameters: {},
|
|
26533
|
-
});
|
|
26534
|
-
console.log('!!!! teacherResult', teacherResult);
|
|
26535
|
-
const teacherCommitments = unwrapResult(teacherResult.content);
|
|
26536
|
-
if (teacherCommitments === '') {
|
|
26537
|
-
console.info(colors.bgCyan('[Self-learning]') +
|
|
26538
|
-
colors.cyan(' Teacher agent did not provide new commitments to learn'));
|
|
26539
|
-
return buildTeacherSummary('', true);
|
|
26540
|
-
}
|
|
26541
|
-
// [2] Append to the current source
|
|
26542
|
-
const currentSource = this.agentSource.value;
|
|
26543
|
-
const newSource = padBook(validateBook(spaceTrim$2(currentSource) + '\n\n' + teacherCommitments));
|
|
26544
|
-
// <- TODO: [🈲] Use some object-based way how to append on book (with sections `---`)
|
|
26545
|
-
// [3] Update the source
|
|
26546
|
-
this.agentSource.next(newSource);
|
|
26547
|
-
return buildTeacherSummary(teacherCommitments, true);
|
|
26548
|
-
};
|
|
26549
27069
|
/**
|
|
26550
27070
|
* TODO: [🧠][😰]Agent is not working with the parameters, should it be?
|
|
26551
27071
|
*/
|
|
@@ -26820,13 +27340,23 @@ class RemoteAgent extends Agent {
|
|
|
26820
27340
|
remoteAgent.samples = profile.samples || [];
|
|
26821
27341
|
remoteAgent.toolTitles = profile.toolTitles || {};
|
|
26822
27342
|
remoteAgent._isVoiceCallingEnabled = profile.isVoiceCallingEnabled === true; // [✨✷] Store voice calling status
|
|
27343
|
+
remoteAgent._isVoiceTtsSttEnabled = profile.isVoiceTtsSttEnabled !== false;
|
|
26823
27344
|
remoteAgent.knowledgeSources = profile.knowledgeSources || [];
|
|
26824
27345
|
return remoteAgent;
|
|
26825
27346
|
}
|
|
27347
|
+
/**
|
|
27348
|
+
* Indicates whether the remote server allows text-to-speech and speech-to-text.
|
|
27349
|
+
*
|
|
27350
|
+
* @public exported from `@promptbook/core`
|
|
27351
|
+
*/
|
|
27352
|
+
get isVoiceTtsSttEnabled() {
|
|
27353
|
+
return this._isVoiceTtsSttEnabled;
|
|
27354
|
+
}
|
|
26826
27355
|
constructor(options) {
|
|
26827
27356
|
super(options);
|
|
26828
27357
|
this.toolTitles = {};
|
|
26829
27358
|
this._isVoiceCallingEnabled = false; // [✨✷] Track voice calling status
|
|
27359
|
+
this._isVoiceTtsSttEnabled = true;
|
|
26830
27360
|
this.knowledgeSources = [];
|
|
26831
27361
|
this.agentUrl = options.agentUrl;
|
|
26832
27362
|
}
|
|
@@ -26848,7 +27378,7 @@ class RemoteAgent extends Agent {
|
|
|
26848
27378
|
* Returns undefined if voice calling is disabled
|
|
26849
27379
|
*/
|
|
26850
27380
|
get callVoiceChatModel() {
|
|
26851
|
-
if (!this._isVoiceCallingEnabled) {
|
|
27381
|
+
if (!this._isVoiceCallingEnabled || !this._isVoiceTtsSttEnabled) {
|
|
26852
27382
|
return undefined;
|
|
26853
27383
|
}
|
|
26854
27384
|
return async (audio, prompt) => {
|
|
@@ -26911,6 +27441,7 @@ class RemoteAgent extends Agent {
|
|
|
26911
27441
|
const toolCalls = [];
|
|
26912
27442
|
const preparationToolCalls = [];
|
|
26913
27443
|
let hasReceivedModelOutput = false;
|
|
27444
|
+
let pendingToolCallLineFragment = '';
|
|
26914
27445
|
const normalizeToolCall = (toolCall) => {
|
|
26915
27446
|
if (toolCall.createdAt) {
|
|
26916
27447
|
return toolCall;
|
|
@@ -26963,6 +27494,113 @@ class RemoteAgent extends Agent {
|
|
|
26963
27494
|
* Builds the tool call list including any preparation marker still active.
|
|
26964
27495
|
*/
|
|
26965
27496
|
const getActiveToolCalls = () => preparationToolCalls.length > 0 ? [...preparationToolCalls, ...toolCalls] : toolCalls;
|
|
27497
|
+
/**
|
|
27498
|
+
* Emits one progress snapshot using current aggregated text and tool calls.
|
|
27499
|
+
*/
|
|
27500
|
+
const emitProgress = () => {
|
|
27501
|
+
onProgress({
|
|
27502
|
+
content,
|
|
27503
|
+
modelName: this.modelName,
|
|
27504
|
+
timing: {},
|
|
27505
|
+
usage: {},
|
|
27506
|
+
rawPromptContent: {},
|
|
27507
|
+
rawRequest: {},
|
|
27508
|
+
rawResponse: {},
|
|
27509
|
+
toolCalls: getActiveToolCalls(),
|
|
27510
|
+
});
|
|
27511
|
+
};
|
|
27512
|
+
/**
|
|
27513
|
+
* Attempts to parse one completed NDJSON tool-call line.
|
|
27514
|
+
*/
|
|
27515
|
+
const tryParseToolCallLine = (trimmedLine) => {
|
|
27516
|
+
if (!trimmedLine.startsWith('{') || !trimmedLine.endsWith('}')) {
|
|
27517
|
+
return false;
|
|
27518
|
+
}
|
|
27519
|
+
try {
|
|
27520
|
+
const chunk = JSON.parse(trimmedLine);
|
|
27521
|
+
if (!chunk.toolCalls) {
|
|
27522
|
+
return false;
|
|
27523
|
+
}
|
|
27524
|
+
const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
|
|
27525
|
+
upsertToolCalls(normalizedToolCalls);
|
|
27526
|
+
emitProgress();
|
|
27527
|
+
return true;
|
|
27528
|
+
}
|
|
27529
|
+
catch (_a) {
|
|
27530
|
+
return false;
|
|
27531
|
+
}
|
|
27532
|
+
};
|
|
27533
|
+
/**
|
|
27534
|
+
* Detects whether an incomplete trailing line might be a split tool-call payload.
|
|
27535
|
+
*/
|
|
27536
|
+
const isPotentialToolCallLineFragment = (trimmedLine) => {
|
|
27537
|
+
if (trimmedLine.length === 0) {
|
|
27538
|
+
return false;
|
|
27539
|
+
}
|
|
27540
|
+
const toolCallPrefix = '{"toolCalls":';
|
|
27541
|
+
return toolCallPrefix.startsWith(trimmedLine) || trimmedLine.startsWith(toolCallPrefix);
|
|
27542
|
+
};
|
|
27543
|
+
/**
|
|
27544
|
+
* Appends model text to accumulated content and emits progress.
|
|
27545
|
+
*/
|
|
27546
|
+
const appendTextChunk = (textChunk) => {
|
|
27547
|
+
if (!textChunk) {
|
|
27548
|
+
return;
|
|
27549
|
+
}
|
|
27550
|
+
content += textChunk;
|
|
27551
|
+
if (!hasReceivedModelOutput && content.trim().length > 0) {
|
|
27552
|
+
hasReceivedModelOutput = true;
|
|
27553
|
+
preparationToolCalls.length = 0;
|
|
27554
|
+
}
|
|
27555
|
+
emitProgress();
|
|
27556
|
+
};
|
|
27557
|
+
/**
|
|
27558
|
+
* Consumes one decoded transport chunk, removing keep-alive pings and tool-call frames.
|
|
27559
|
+
*
|
|
27560
|
+
* Note: Tool-call JSON is line-delimited but may arrive split across transport chunks.
|
|
27561
|
+
*/
|
|
27562
|
+
const processDecodedChunk = (decodedChunk) => {
|
|
27563
|
+
var _a;
|
|
27564
|
+
if (!decodedChunk) {
|
|
27565
|
+
return;
|
|
27566
|
+
}
|
|
27567
|
+
const combinedChunk = pendingToolCallLineFragment + decodedChunk;
|
|
27568
|
+
pendingToolCallLineFragment = '';
|
|
27569
|
+
const hasTrailingNewline = combinedChunk.endsWith('\n') || combinedChunk.endsWith('\r');
|
|
27570
|
+
const lines = combinedChunk.split(/\r?\n/);
|
|
27571
|
+
const trailingFragment = hasTrailingNewline ? '' : ((_a = lines.pop()) !== null && _a !== void 0 ? _a : '');
|
|
27572
|
+
let hasNonEmptyText = false;
|
|
27573
|
+
const textLines = [];
|
|
27574
|
+
for (const line of lines) {
|
|
27575
|
+
const trimmedLine = line.trim();
|
|
27576
|
+
if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
|
|
27577
|
+
continue;
|
|
27578
|
+
}
|
|
27579
|
+
if (tryParseToolCallLine(trimmedLine)) {
|
|
27580
|
+
continue;
|
|
27581
|
+
}
|
|
27582
|
+
textLines.push(line);
|
|
27583
|
+
if (trimmedLine.length > 0) {
|
|
27584
|
+
hasNonEmptyText = true;
|
|
27585
|
+
}
|
|
27586
|
+
}
|
|
27587
|
+
if (trailingFragment !== '') {
|
|
27588
|
+
const trimmedTrailingFragment = trailingFragment.trim();
|
|
27589
|
+
if (isPotentialToolCallLineFragment(trimmedTrailingFragment)) {
|
|
27590
|
+
pendingToolCallLineFragment = trailingFragment;
|
|
27591
|
+
}
|
|
27592
|
+
else {
|
|
27593
|
+
textLines.push(trailingFragment);
|
|
27594
|
+
if (trimmedTrailingFragment.length > 0) {
|
|
27595
|
+
hasNonEmptyText = true;
|
|
27596
|
+
}
|
|
27597
|
+
}
|
|
27598
|
+
}
|
|
27599
|
+
if (!hasNonEmptyText) {
|
|
27600
|
+
return;
|
|
27601
|
+
}
|
|
27602
|
+
appendTextChunk(textLines.join('\n'));
|
|
27603
|
+
};
|
|
26966
27604
|
if (!bookResponse.body) {
|
|
26967
27605
|
content = await bookResponse.text();
|
|
26968
27606
|
}
|
|
@@ -26978,84 +27616,26 @@ class RemoteAgent extends Agent {
|
|
|
26978
27616
|
doneReading = !!done;
|
|
26979
27617
|
if (value) {
|
|
26980
27618
|
const textChunk = decoder.decode(value, { stream: true });
|
|
26981
|
-
|
|
26982
|
-
const textLines = [];
|
|
26983
|
-
const lines = textChunk.split(/\r?\n/);
|
|
26984
|
-
for (const line of lines) {
|
|
26985
|
-
const trimmedLine = line.trim();
|
|
26986
|
-
if (trimmedLine === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
|
|
26987
|
-
continue;
|
|
26988
|
-
}
|
|
26989
|
-
let isToolCallLine = false;
|
|
26990
|
-
if (trimmedLine.startsWith('{') && trimmedLine.endsWith('}')) {
|
|
26991
|
-
try {
|
|
26992
|
-
const chunk = JSON.parse(trimmedLine);
|
|
26993
|
-
if (chunk.toolCalls) {
|
|
26994
|
-
const normalizedToolCalls = chunk.toolCalls.map(normalizeToolCall);
|
|
26995
|
-
upsertToolCalls(normalizedToolCalls);
|
|
26996
|
-
onProgress({
|
|
26997
|
-
content,
|
|
26998
|
-
modelName: this.modelName,
|
|
26999
|
-
timing: {},
|
|
27000
|
-
usage: {},
|
|
27001
|
-
rawPromptContent: {},
|
|
27002
|
-
rawRequest: {},
|
|
27003
|
-
rawResponse: {},
|
|
27004
|
-
toolCalls: getActiveToolCalls(),
|
|
27005
|
-
});
|
|
27006
|
-
isToolCallLine = true;
|
|
27007
|
-
}
|
|
27008
|
-
}
|
|
27009
|
-
catch (error) {
|
|
27010
|
-
// Ignore non-json lines
|
|
27011
|
-
}
|
|
27012
|
-
}
|
|
27013
|
-
if (!isToolCallLine) {
|
|
27014
|
-
textLines.push(line);
|
|
27015
|
-
if (trimmedLine.length > 0) {
|
|
27016
|
-
hasNonEmptyText = true;
|
|
27017
|
-
}
|
|
27018
|
-
}
|
|
27019
|
-
}
|
|
27020
|
-
if (!hasNonEmptyText) {
|
|
27021
|
-
continue;
|
|
27022
|
-
}
|
|
27023
|
-
const textChunkWithoutToolCalls = textLines.join('\n');
|
|
27024
|
-
content += textChunkWithoutToolCalls;
|
|
27025
|
-
if (!hasReceivedModelOutput && content.trim().length > 0) {
|
|
27026
|
-
hasReceivedModelOutput = true;
|
|
27027
|
-
preparationToolCalls.length = 0;
|
|
27028
|
-
}
|
|
27029
|
-
onProgress({
|
|
27030
|
-
content,
|
|
27031
|
-
modelName: this.modelName,
|
|
27032
|
-
timing: {},
|
|
27033
|
-
usage: {},
|
|
27034
|
-
rawPromptContent: {},
|
|
27035
|
-
rawRequest: {},
|
|
27036
|
-
rawResponse: {},
|
|
27037
|
-
toolCalls: getActiveToolCalls(),
|
|
27038
|
-
});
|
|
27619
|
+
processDecodedChunk(textChunk);
|
|
27039
27620
|
}
|
|
27040
27621
|
}
|
|
27041
27622
|
// Flush any remaining decoder internal state
|
|
27042
27623
|
const lastChunk = decoder.decode();
|
|
27043
27624
|
if (lastChunk) {
|
|
27044
|
-
|
|
27045
|
-
|
|
27046
|
-
|
|
27047
|
-
|
|
27625
|
+
processDecodedChunk(lastChunk);
|
|
27626
|
+
}
|
|
27627
|
+
if (pendingToolCallLineFragment) {
|
|
27628
|
+
const trimmedPending = pendingToolCallLineFragment.trim();
|
|
27629
|
+
if (trimmedPending === CHAT_STREAM_KEEP_ALIVE_TOKEN) {
|
|
27630
|
+
pendingToolCallLineFragment = '';
|
|
27631
|
+
}
|
|
27632
|
+
else if (tryParseToolCallLine(trimmedPending)) {
|
|
27633
|
+
pendingToolCallLineFragment = '';
|
|
27634
|
+
}
|
|
27635
|
+
else {
|
|
27636
|
+
appendTextChunk(pendingToolCallLineFragment);
|
|
27637
|
+
pendingToolCallLineFragment = '';
|
|
27048
27638
|
}
|
|
27049
|
-
onProgress({
|
|
27050
|
-
content: lastChunk,
|
|
27051
|
-
modelName: this.modelName,
|
|
27052
|
-
timing: {},
|
|
27053
|
-
usage: {},
|
|
27054
|
-
rawPromptContent: {},
|
|
27055
|
-
rawRequest: {},
|
|
27056
|
-
rawResponse: {},
|
|
27057
|
-
toolCalls: getActiveToolCalls(),
|
|
27058
|
-
});
|
|
27059
27639
|
}
|
|
27060
27640
|
}
|
|
27061
27641
|
finally {
|
|
@@ -28459,6 +29039,7 @@ const TOOL_TITLES = {
|
|
|
28459
29039
|
run_browser: { title: 'Running browser', emoji: '🌐' },
|
|
28460
29040
|
get_current_time: { title: 'Checking time', emoji: '🕒' },
|
|
28461
29041
|
useTime: { title: 'Checking time', emoji: '🕒' },
|
|
29042
|
+
get_user_location: { title: 'Checking location', emoji: '📍' },
|
|
28462
29043
|
send_email: { title: 'Sending email', emoji: '📧' },
|
|
28463
29044
|
useEmail: { title: 'Sending email', emoji: '📧' },
|
|
28464
29045
|
// Add more tools here as needed
|
|
@@ -28719,8 +29300,8 @@ function ImagePromptRenderer({ alt, prompt }) {
|
|
|
28719
29300
|
return (jsxs("div", { className: styles$5.imagePrompt, "aria-live": "polite", children: [jsxs("div", { className: styles$5.imagePromptPreview, children: [status === 'success' && imageUrl ? (jsx("img", { src: imageUrl, alt: alt, className: styles$5.imagePromptImage })) : (jsx("div", { className: styles$5.imagePromptPlaceholder, children: jsx("div", { className: styles$5.imagePromptSpinner }) })), status === 'error' && error && jsx("div", { className: styles$5.imagePromptError, children: error })] }), jsxs("div", { className: styles$5.imagePromptMeta, children: [jsx("span", { className: styles$5.imagePromptPrompt, children: trimmedPrompt || 'Generated image' }), jsx("span", { className: styles$5.imagePromptStatus, children: statusLabel })] })] }));
|
|
28720
29301
|
}
|
|
28721
29302
|
|
|
28722
|
-
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 */";
|
|
28723
|
-
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"};
|
|
29303
|
+
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== */";
|
|
29304
|
+
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"};
|
|
28724
29305
|
styleInject(css_248z$1);
|
|
28725
29306
|
|
|
28726
29307
|
/**
|
|
@@ -28729,6 +29310,206 @@ styleInject(css_248z$1);
|
|
|
28729
29310
|
* @private internal helper of `<ChatMessageItem/>`
|
|
28730
29311
|
*/
|
|
28731
29312
|
const DEFAULT_LAYER_ID = 'chat-message-map-layer';
|
|
29313
|
+
/**
|
|
29314
|
+
* Style tokens used to make GeoJSON paths and polygons feel more modern.
|
|
29315
|
+
*
|
|
29316
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29317
|
+
*/
|
|
29318
|
+
const GEOJSON_STYLE_PRESETS = {
|
|
29319
|
+
polygon: {
|
|
29320
|
+
color: '#38bdf8',
|
|
29321
|
+
weight: 2,
|
|
29322
|
+
opacity: 0.95,
|
|
29323
|
+
fillColor: 'rgba(59, 130, 246, 0.28)',
|
|
29324
|
+
fillOpacity: 0.35,
|
|
29325
|
+
dashArray: '6 8',
|
|
29326
|
+
lineCap: 'round',
|
|
29327
|
+
lineJoin: 'round',
|
|
29328
|
+
},
|
|
29329
|
+
line: {
|
|
29330
|
+
color: '#67e8f9',
|
|
29331
|
+
weight: 3,
|
|
29332
|
+
opacity: 0.92,
|
|
29333
|
+
dashArray: '5 7',
|
|
29334
|
+
lineCap: 'round',
|
|
29335
|
+
lineJoin: 'round',
|
|
29336
|
+
},
|
|
29337
|
+
highlight: {
|
|
29338
|
+
color: '#7dd3fc',
|
|
29339
|
+
weight: 4,
|
|
29340
|
+
fillOpacity: 0.55,
|
|
29341
|
+
},
|
|
29342
|
+
default: {
|
|
29343
|
+
color: '#6ee7b7',
|
|
29344
|
+
weight: 2.5,
|
|
29345
|
+
opacity: 0.9,
|
|
29346
|
+
dashArray: '4 6',
|
|
29347
|
+
lineCap: 'round',
|
|
29348
|
+
lineJoin: 'round',
|
|
29349
|
+
},
|
|
29350
|
+
};
|
|
29351
|
+
/**
|
|
29352
|
+
* Dimensions and anchor offsets for the custom point-of-interest markers.
|
|
29353
|
+
*
|
|
29354
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29355
|
+
*/
|
|
29356
|
+
const POI_MARKER_CONFIG = {
|
|
29357
|
+
size: 38,
|
|
29358
|
+
anchor: [19, 19],
|
|
29359
|
+
};
|
|
29360
|
+
/**
|
|
29361
|
+
* Offset used for map tooltips so labels sit above the features.
|
|
29362
|
+
*
|
|
29363
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29364
|
+
*/
|
|
29365
|
+
const MAP_TOOLTIP_OFFSET = [0, -20];
|
|
29366
|
+
/**
|
|
29367
|
+
* Returns the preferred label for a GeoJSON feature by checking common property keys.
|
|
29368
|
+
*
|
|
29369
|
+
* @param feature - Feature to inspect for identifying properties.
|
|
29370
|
+
* @returns A trimmed string label or `null` when no candidate is available.
|
|
29371
|
+
*
|
|
29372
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29373
|
+
*/
|
|
29374
|
+
function getGeoJsonFeatureLabel(feature) {
|
|
29375
|
+
const properties = feature.properties;
|
|
29376
|
+
if (properties && typeof properties === 'object') {
|
|
29377
|
+
const bag = properties;
|
|
29378
|
+
for (const key of ['name', 'title', 'label', 'description']) {
|
|
29379
|
+
const value = bag[key];
|
|
29380
|
+
if (typeof value === 'string' && value.trim().length > 0) {
|
|
29381
|
+
return value.trim();
|
|
29382
|
+
}
|
|
29383
|
+
}
|
|
29384
|
+
}
|
|
29385
|
+
if (typeof feature.id === 'string' && feature.id.trim().length > 0) {
|
|
29386
|
+
return feature.id.trim();
|
|
29387
|
+
}
|
|
29388
|
+
if (typeof feature.id === 'number') {
|
|
29389
|
+
return feature.id.toString();
|
|
29390
|
+
}
|
|
29391
|
+
return null;
|
|
29392
|
+
}
|
|
29393
|
+
/**
|
|
29394
|
+
* Provides a base style object for GeoJSON paths so polygons, lines, and fallbacks get distinct strokes.
|
|
29395
|
+
*
|
|
29396
|
+
* @param feature - Feature driving the style calculation.
|
|
29397
|
+
* @returns A fresh `PathOptions` instance describing stroke/fill tokens.
|
|
29398
|
+
*
|
|
29399
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29400
|
+
*/
|
|
29401
|
+
function getGeoJsonFeatureStyle(feature) {
|
|
29402
|
+
var _a;
|
|
29403
|
+
const geometryType = (_a = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _a === void 0 ? void 0 : _a.type;
|
|
29404
|
+
if (geometryType === 'Polygon' || geometryType === 'MultiPolygon') {
|
|
29405
|
+
return { ...GEOJSON_STYLE_PRESETS.polygon };
|
|
29406
|
+
}
|
|
29407
|
+
if (geometryType === 'LineString' || geometryType === 'MultiLineString') {
|
|
29408
|
+
return { ...GEOJSON_STYLE_PRESETS.line };
|
|
29409
|
+
}
|
|
29410
|
+
return { ...GEOJSON_STYLE_PRESETS.default };
|
|
29411
|
+
}
|
|
29412
|
+
/**
|
|
29413
|
+
* Builds a highlighted style variant for hover states while respecting the base tokens.
|
|
29414
|
+
*
|
|
29415
|
+
* @param baseStyle - Style to ramp up for the hover effect.
|
|
29416
|
+
* @returns A new `PathOptions` instance with stronger stroke/fill emphasis.
|
|
29417
|
+
*
|
|
29418
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29419
|
+
*/
|
|
29420
|
+
function getGeoJsonHighlightStyle(baseStyle) {
|
|
29421
|
+
var _a, _b, _c;
|
|
29422
|
+
return {
|
|
29423
|
+
...baseStyle,
|
|
29424
|
+
color: (_a = GEOJSON_STYLE_PRESETS.highlight.color) !== null && _a !== void 0 ? _a : baseStyle.color,
|
|
29425
|
+
weight: Math.max((_b = baseStyle.weight) !== null && _b !== void 0 ? _b : 2, 1) * 1.3,
|
|
29426
|
+
fillOpacity: Math.min(0.6, ((_c = baseStyle.fillOpacity) !== null && _c !== void 0 ? _c : 0.2) + 0.25),
|
|
29427
|
+
};
|
|
29428
|
+
}
|
|
29429
|
+
/**
|
|
29430
|
+
* Guards Leaflet layers that support `setStyle`.
|
|
29431
|
+
*
|
|
29432
|
+
* @param layer - Candidate Leaflet layer to check.
|
|
29433
|
+
* @returns `true` when the supplied layer exposes `Path` styling helpers.
|
|
29434
|
+
*
|
|
29435
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29436
|
+
*/
|
|
29437
|
+
function isLeafletPathLayer(layer) {
|
|
29438
|
+
return typeof layer.setStyle === 'function';
|
|
29439
|
+
}
|
|
29440
|
+
/**
|
|
29441
|
+
* Attaches tooltips, hover highlights, and accessibility helpers to GeoJSON layers.
|
|
29442
|
+
*
|
|
29443
|
+
* @param feature - Feature backing the Leaflet layer.
|
|
29444
|
+
* @param layer - Leaflet layer created for the feature.
|
|
29445
|
+
*
|
|
29446
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29447
|
+
*/
|
|
29448
|
+
function decorateGeoJsonLayer(feature, layer) {
|
|
29449
|
+
const label = getGeoJsonFeatureLabel(feature);
|
|
29450
|
+
if (label) {
|
|
29451
|
+
layer.bindTooltip(label, {
|
|
29452
|
+
direction: 'top',
|
|
29453
|
+
offset: MAP_TOOLTIP_OFFSET,
|
|
29454
|
+
className: styles$1.mapTooltip,
|
|
29455
|
+
});
|
|
29456
|
+
}
|
|
29457
|
+
if (!isLeafletPathLayer(layer)) {
|
|
29458
|
+
return;
|
|
29459
|
+
}
|
|
29460
|
+
const baseStyle = getGeoJsonFeatureStyle(feature);
|
|
29461
|
+
layer.on('mouseover', () => {
|
|
29462
|
+
layer.setStyle(getGeoJsonHighlightStyle(baseStyle));
|
|
29463
|
+
});
|
|
29464
|
+
layer.on('mouseout', () => {
|
|
29465
|
+
layer.setStyle(baseStyle);
|
|
29466
|
+
});
|
|
29467
|
+
}
|
|
29468
|
+
/**
|
|
29469
|
+
* Renders a custom point-of-interest marker for point features.
|
|
29470
|
+
*
|
|
29471
|
+
* @param feature - Feature describing the point.
|
|
29472
|
+
* @param latlng - Coordinates where the marker should appear.
|
|
29473
|
+
* @returns Leaflet marker with layered glow and optional initial text.
|
|
29474
|
+
*
|
|
29475
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29476
|
+
*/
|
|
29477
|
+
function createPointOfInterestMarker(feature, latlng) {
|
|
29478
|
+
const label = getGeoJsonFeatureLabel(feature);
|
|
29479
|
+
const initial = label ? label.trim().charAt(0).toLocaleUpperCase() : '';
|
|
29480
|
+
const initialHtml = initial
|
|
29481
|
+
? `<span class="${styles$1.poiMarkerInitial}" aria-hidden="true">${escapeHtml(initial)}</span>`
|
|
29482
|
+
: '';
|
|
29483
|
+
const icon = L.divIcon({
|
|
29484
|
+
className: styles$1.poiMarkerIcon,
|
|
29485
|
+
html: `
|
|
29486
|
+
<span class="${styles$1.poiMarkerPulse}" aria-hidden="true"></span>
|
|
29487
|
+
${initialHtml}
|
|
29488
|
+
`.trim(),
|
|
29489
|
+
iconSize: [POI_MARKER_CONFIG.size, POI_MARKER_CONFIG.size],
|
|
29490
|
+
iconAnchor: POI_MARKER_CONFIG.anchor,
|
|
29491
|
+
});
|
|
29492
|
+
return L.marker(latlng, {
|
|
29493
|
+
icon,
|
|
29494
|
+
riseOnHover: true,
|
|
29495
|
+
});
|
|
29496
|
+
}
|
|
29497
|
+
/**
|
|
29498
|
+
* Escapes HTML-sensitive characters to keep raw GeoJSON properties safe when injected into markup.
|
|
29499
|
+
*
|
|
29500
|
+
* @param value - Source string to escape.
|
|
29501
|
+
* @returns Escaped string safe for insertion into HTML fragments.
|
|
29502
|
+
*
|
|
29503
|
+
* @private internal helper of `<ChatMessageMap/>`
|
|
29504
|
+
*/
|
|
29505
|
+
function escapeHtml(value) {
|
|
29506
|
+
return value
|
|
29507
|
+
.replace(/&/g, '&')
|
|
29508
|
+
.replace(/</g, '<')
|
|
29509
|
+
.replace(/>/g, '>')
|
|
29510
|
+
.replace(/"/g, '"')
|
|
29511
|
+
.replace(/'/g, ''');
|
|
29512
|
+
}
|
|
28732
29513
|
/**
|
|
28733
29514
|
* Custom hook that renders a Leaflet map inside the provided container and keeps it synced with the geojson payload.
|
|
28734
29515
|
*
|
|
@@ -28764,17 +29545,9 @@ function useLeafletGeoJsonMap(containerRef, data, enabled) {
|
|
|
28764
29545
|
});
|
|
28765
29546
|
layer.addTo(map);
|
|
28766
29547
|
const geoJsonLayer = L.geoJSON(data, {
|
|
28767
|
-
style:
|
|
28768
|
-
|
|
28769
|
-
|
|
28770
|
-
}),
|
|
28771
|
-
pointToLayer: (_feature, latlng) => L.circleMarker(latlng, {
|
|
28772
|
-
radius: 6,
|
|
28773
|
-
fillColor: '#f59e0b',
|
|
28774
|
-
color: '#fbbf24',
|
|
28775
|
-
weight: 2,
|
|
28776
|
-
fillOpacity: 0.9,
|
|
28777
|
-
}),
|
|
29548
|
+
style: getGeoJsonFeatureStyle,
|
|
29549
|
+
pointToLayer: (feature, latlng) => createPointOfInterestMarker(feature, latlng),
|
|
29550
|
+
onEachFeature: (feature, layer) => decorateGeoJsonLayer(feature, layer),
|
|
28778
29551
|
});
|
|
28779
29552
|
geoJsonLayer.addTo(map);
|
|
28780
29553
|
const bounds = geoJsonLayer.getBounds();
|
|
@@ -29136,11 +29909,10 @@ function appendOngoingToolCallCount(label, count) {
|
|
|
29136
29909
|
* Builds the label for an ongoing tool call group.
|
|
29137
29910
|
*/
|
|
29138
29911
|
function buildOngoingToolCallLabel(group) {
|
|
29139
|
-
|
|
29140
|
-
return appendOngoingToolCallCount(baseLabel, group.count);
|
|
29912
|
+
return appendOngoingToolCallCount(group.label, group.count);
|
|
29141
29913
|
}
|
|
29142
29914
|
/**
|
|
29143
|
-
* Extracts the assistant preparation phase
|
|
29915
|
+
* Extracts the assistant preparation phase from one tool call, when present.
|
|
29144
29916
|
*/
|
|
29145
29917
|
function getOngoingToolCallPreparationPhase(toolCall) {
|
|
29146
29918
|
if (!isAssistantPreparationToolCall(toolCall)) {
|
|
@@ -29149,6 +29921,21 @@ function getOngoingToolCallPreparationPhase(toolCall) {
|
|
|
29149
29921
|
const toolArguments = parseToolCallArguments(toolCall);
|
|
29150
29922
|
return typeof toolArguments.phase === 'string' ? toolArguments.phase : undefined;
|
|
29151
29923
|
}
|
|
29924
|
+
/**
|
|
29925
|
+
* Resolves shared chip text for one tool call.
|
|
29926
|
+
*
|
|
29927
|
+
* This helper is intentionally reused for both ongoing and completed tool-call chips.
|
|
29928
|
+
*/
|
|
29929
|
+
function resolveToolCallChipLabel(toolCall, options = {}) {
|
|
29930
|
+
const { chipletInfo } = options;
|
|
29931
|
+
const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
|
|
29932
|
+
if (preparationPhase) {
|
|
29933
|
+
const toolInfo = TOOL_TITLES[toolCall.name];
|
|
29934
|
+
const preparationTitle = (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.title) || toolCall.name;
|
|
29935
|
+
return `${preparationTitle}: ${preparationPhase}`;
|
|
29936
|
+
}
|
|
29937
|
+
return buildToolCallChipText(chipletInfo || getToolCallChipletInfo(toolCall));
|
|
29938
|
+
}
|
|
29152
29939
|
/**
|
|
29153
29940
|
* Builds a stable participant identity for ongoing tool call grouping.
|
|
29154
29941
|
*/
|
|
@@ -29183,15 +29970,17 @@ function dedupeToolCalls(toolCalls) {
|
|
|
29183
29970
|
/**
|
|
29184
29971
|
* Groups ongoing tool calls by tool identity to avoid duplicate chips.
|
|
29185
29972
|
*/
|
|
29186
|
-
function groupOngoingToolCalls(toolCalls,
|
|
29973
|
+
function groupOngoingToolCalls(toolCalls, teammates) {
|
|
29187
29974
|
if (!toolCalls || toolCalls.length === 0) {
|
|
29188
29975
|
return [];
|
|
29189
29976
|
}
|
|
29190
29977
|
const grouped = new Map();
|
|
29191
29978
|
const ordered = [];
|
|
29192
29979
|
for (const toolCall of toolCalls) {
|
|
29980
|
+
const chipletInfo = getToolCallChipletInfo(toolCall);
|
|
29981
|
+
const label = resolveToolCallChipLabel(toolCall, { chipletInfo });
|
|
29193
29982
|
const preparationPhase = getOngoingToolCallPreparationPhase(toolCall);
|
|
29194
|
-
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates);
|
|
29983
|
+
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
|
|
29195
29984
|
const participantKey = getOngoingToolCallParticipantKey(teamAgentData);
|
|
29196
29985
|
const groupKey = getOngoingToolCallGroupKey(toolCall, {
|
|
29197
29986
|
preparationPhase,
|
|
@@ -29202,17 +29991,11 @@ function groupOngoingToolCalls(toolCalls, toolTitles, teammates) {
|
|
|
29202
29991
|
existing.count += 1;
|
|
29203
29992
|
continue;
|
|
29204
29993
|
}
|
|
29205
|
-
const toolInfo = TOOL_TITLES[toolCall.name];
|
|
29206
|
-
const isTeamTool = isTeamToolName(toolCall.name);
|
|
29207
|
-
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);
|
|
29208
|
-
const displayTitle = preparationPhase ? `${toolTitle || toolCall.name}: ${preparationPhase}` : toolTitle;
|
|
29209
|
-
const emoji = isTeamTool ? '??' : (toolInfo === null || toolInfo === void 0 ? void 0 : toolInfo.emoji) || '???';
|
|
29210
29994
|
const group = {
|
|
29211
29995
|
key: groupKey,
|
|
29212
29996
|
toolCall,
|
|
29213
29997
|
count: 1,
|
|
29214
|
-
|
|
29215
|
-
emoji,
|
|
29998
|
+
label,
|
|
29216
29999
|
teamAgentData,
|
|
29217
30000
|
};
|
|
29218
30001
|
grouped.set(groupKey, group);
|
|
@@ -29230,7 +30013,7 @@ const ChatMessageItem = memo(
|
|
|
29230
30013
|
// Or make normal function from this?
|
|
29231
30014
|
(props) => {
|
|
29232
30015
|
var _a, _b;
|
|
29233
|
-
const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent,
|
|
30016
|
+
const { message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, } = props;
|
|
29234
30017
|
const { isComplete = true,
|
|
29235
30018
|
// <- TODO: Destruct all `messages` properties like `isComplete`
|
|
29236
30019
|
} = message;
|
|
@@ -29332,15 +30115,16 @@ const ChatMessageItem = memo(
|
|
|
29332
30115
|
const [isAudioLoading, setIsAudioLoading] = useState(false);
|
|
29333
30116
|
const [isAudioPlaying, setIsAudioPlaying] = useState(false);
|
|
29334
30117
|
const [audioError, setAudioError] = useState(null);
|
|
29335
|
-
const ongoingToolCallGroups = useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls,
|
|
30118
|
+
const ongoingToolCallGroups = useMemo(() => groupOngoingToolCalls(message.ongoingToolCalls, teammates), [message.ongoingToolCalls, teammates]);
|
|
29336
30119
|
const completedToolCallCount = (_b = completedToolCalls === null || completedToolCalls === void 0 ? void 0 : completedToolCalls.length) !== null && _b !== void 0 ? _b : 0;
|
|
29337
30120
|
const transitiveToolCallCount = transitiveToolCalls.length;
|
|
29338
30121
|
const ongoingToolCallCount = ongoingToolCallGroups.length;
|
|
29339
30122
|
const toolCallChipCount = completedToolCallCount + transitiveToolCallCount + ongoingToolCallCount;
|
|
29340
30123
|
const shouldShowButtons = isLastMessage && buttons.length > 0 && onMessage;
|
|
29341
|
-
const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
|
|
29342
30124
|
const trimmedMessageContent = message.content.trim();
|
|
29343
|
-
const
|
|
30125
|
+
const speechPlaybackEnabled = isSpeechPlaybackEnabled !== null && isSpeechPlaybackEnabled !== void 0 ? isSpeechPlaybackEnabled : true;
|
|
30126
|
+
const shouldShowPlayButton = speechPlaybackEnabled && trimmedMessageContent.length > 0;
|
|
30127
|
+
const playButtonTitle = audioError !== null && audioError !== void 0 ? audioError : (isAudioPlaying ? 'Pause message playback' : 'Read message aloud');
|
|
29344
30128
|
/**
|
|
29345
30129
|
* Attaches playback listeners to keep the UI in sync with the audio element.
|
|
29346
30130
|
*
|
|
@@ -29566,7 +30350,7 @@ const ChatMessageItem = memo(
|
|
|
29566
30350
|
return null;
|
|
29567
30351
|
}) })), message.attachments && message.attachments.length > 0 && (jsx("div", { className: styles$5.attachments, children: message.attachments.map((attachment, index) => (jsxs("a", { href: attachment.url, target: "_blank", rel: "noopener noreferrer", className: styles$5.attachment, title: attachment.name, children: [jsx("span", { className: styles$5.attachmentIcon, children: "\uD83D\uDCCE" }), jsx("span", { className: styles$5.attachmentName, children: attachment.name })] }, index))) })), completedToolCalls && completedToolCalls.length > 0 && (jsxs("div", { className: styles$5.completedToolCalls, children: [completedToolCalls.map((toolCall, index) => {
|
|
29568
30352
|
const chipletInfo = getToolCallChipletInfo(toolCall);
|
|
29569
|
-
const chipletText =
|
|
30353
|
+
const chipletText = resolveToolCallChipLabel(toolCall, { chipletInfo });
|
|
29570
30354
|
const teamAgentData = resolveTeamAgentChipData(toolCall, teammates, chipletInfo);
|
|
29571
30355
|
// If this is a team tool with agent data, use AgentChip
|
|
29572
30356
|
if (teamAgentData) {
|
|
@@ -29587,7 +30371,9 @@ const ChatMessageItem = memo(
|
|
|
29587
30371
|
}, children: chipletText }, index));
|
|
29588
30372
|
}), transitiveToolCalls.map((toolCallEntry, index) => {
|
|
29589
30373
|
const chipletInfo = getToolCallChipletInfo(toolCallEntry.toolCall);
|
|
29590
|
-
const chipletText =
|
|
30374
|
+
const chipletText = resolveToolCallChipLabel(toolCallEntry.toolCall, {
|
|
30375
|
+
chipletInfo,
|
|
30376
|
+
});
|
|
29591
30377
|
return (jsxs("button", { className: styles$5.completedToolCall, onClick: (event) => {
|
|
29592
30378
|
event.stopPropagation();
|
|
29593
30379
|
if (onToolCallClick) {
|
|
@@ -29600,7 +30386,7 @@ const ChatMessageItem = memo(
|
|
|
29600
30386
|
return (jsx(AgentChip, { agent: group.teamAgentData, isOngoing: true, labelSuffix: labelSuffix }, group.key));
|
|
29601
30387
|
}
|
|
29602
30388
|
const label = buildOngoingToolCallLabel(group);
|
|
29603
|
-
return (jsxs("div", { className: styles$5.ongoingToolCall, children: [jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsx("span", { className: styles$5.ongoingToolCallName, children: `${
|
|
30389
|
+
return (jsxs("div", { className: styles$5.ongoingToolCall, children: [jsx("div", { className: styles$5.ongoingToolCallSpinner }), jsx("span", { className: styles$5.ongoingToolCallName, children: `${label}...` })] }, group.key));
|
|
29604
30390
|
}) })), shouldShowButtons && (jsx("div", { className: styles$5.messageButtons, children: buttons.map((button, buttonIndex) => (jsx("button", { className: styles$5.messageButton, onClick: (event) => {
|
|
29605
30391
|
event.stopPropagation();
|
|
29606
30392
|
if (onMessage) {
|
|
@@ -29697,7 +30483,7 @@ ChatMessageItem.displayName = 'ChatMessageItem';
|
|
|
29697
30483
|
* @private component of `<Chat/>`
|
|
29698
30484
|
*/
|
|
29699
30485
|
function ChatMessageList(props) {
|
|
29700
|
-
const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
|
|
30486
|
+
const { messages, participants, expandedMessageId, messageRatings, setExpandedMessageId, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onMessage, onCreateAgent, toolTitles, teammates, onToolCallClick, onCitationClick, soundSystem, isSpeechPlaybackEnabled, setChatMessagesElement, onScroll, chatMessagesClassName, hasActions, } = props;
|
|
29701
30487
|
const firstMessage = messages[0];
|
|
29702
30488
|
const firstMsgContent = (firstMessage === null || firstMessage === void 0 ? void 0 : firstMessage.content) || '';
|
|
29703
30489
|
const firstMsgLines = firstMsgContent.split(/\r?\n/).length;
|
|
@@ -29709,7 +30495,7 @@ function ChatMessageList(props) {
|
|
|
29709
30495
|
const isLastMessage = index === messages.length - 1;
|
|
29710
30496
|
const isExpanded = expandedMessageId === message.id;
|
|
29711
30497
|
const currentRating = messageRatings.get(message.id || message.content /* <-[??] */) || 0;
|
|
29712
|
-
return (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));
|
|
30498
|
+
return (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));
|
|
29713
30499
|
}), jsx("div", { style: { height: 100 } })] }));
|
|
29714
30500
|
}
|
|
29715
30501
|
|
|
@@ -30913,7 +31699,7 @@ function isLatestMessageVisible(chatMessagesElement, messageSelector) {
|
|
|
30913
31699
|
* @public exported from `@promptbook/components`
|
|
30914
31700
|
*/
|
|
30915
31701
|
function Chat(props) {
|
|
30916
|
-
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;
|
|
31702
|
+
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;
|
|
30917
31703
|
const buttonColor = useMemo(() => Color.from(buttonColorRaw || '#0066cc'), [buttonColorRaw]);
|
|
30918
31704
|
const agentParticipant = useMemo(() => participants.find((participant) => participant.name === 'AGENT'), [participants]);
|
|
30919
31705
|
const postprocessedMessages = useMemo(() => {
|
|
@@ -31087,7 +31873,7 @@ function Chat(props) {
|
|
|
31087
31873
|
}, onCitationClick: (citation) => {
|
|
31088
31874
|
setSelectedCitation(citation);
|
|
31089
31875
|
setCitationModalOpen(true);
|
|
31090
|
-
}, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (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') }))] }) }), jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), 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 })] }));
|
|
31876
|
+
}, setChatMessagesElement: setChatMessagesElement, onScroll: handleChatScroll, isSpeechPlaybackEnabled: isSpeechPlaybackEnabled, chatMessagesClassName: useChatCssClassName('chatMessages'), hasActions: hasActions }), onMessage && (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') }))] }) }), jsx(ChatToolCallModal, { isOpen: toolCallModalOpen, toolCall: selectedToolCall, onClose: () => setToolCallModalOpen(false), toolTitles: toolTitles, agentParticipant: agentParticipant, buttonColor: buttonColor }), jsx(ChatCitationModal, { isOpen: citationModalOpen, citation: selectedCitation, participants: participants, soundSystem: soundSystem, onClose: () => setCitationModalOpen(false) }), 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 })] }));
|
|
31091
31877
|
}
|
|
31092
31878
|
|
|
31093
31879
|
/**
|
|
@@ -31235,6 +32021,23 @@ function getRandomThinkingVariant(variants, excludeVariant) {
|
|
|
31235
32021
|
}
|
|
31236
32022
|
return candidates[Math.floor(Math.random() * candidates.length)];
|
|
31237
32023
|
}
|
|
32024
|
+
/**
|
|
32025
|
+
* Converts unknown prompt parameter values to string values required by prompt templates.
|
|
32026
|
+
*/
|
|
32027
|
+
function normalizePromptParameters(parameters) {
|
|
32028
|
+
const normalizedEntries = [];
|
|
32029
|
+
for (const [key, value] of Object.entries(parameters)) {
|
|
32030
|
+
if (value === undefined || value === null) {
|
|
32031
|
+
continue;
|
|
32032
|
+
}
|
|
32033
|
+
if (typeof value === 'string') {
|
|
32034
|
+
normalizedEntries.push([key, value]);
|
|
32035
|
+
continue;
|
|
32036
|
+
}
|
|
32037
|
+
normalizedEntries.push([key, JSON.stringify(value)]);
|
|
32038
|
+
}
|
|
32039
|
+
return Object.fromEntries(normalizedEntries);
|
|
32040
|
+
}
|
|
31238
32041
|
/**
|
|
31239
32042
|
* LlmChat component that provides chat functionality with LLM integration
|
|
31240
32043
|
*
|
|
@@ -31248,7 +32051,8 @@ function getRandomThinkingVariant(variants, excludeVariant) {
|
|
|
31248
32051
|
* @public exported from `@promptbook/components`
|
|
31249
32052
|
*/
|
|
31250
32053
|
function LlmChat(props) {
|
|
31251
|
-
const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, chatFailMessage, ...restProps } = props;
|
|
32054
|
+
const { llmTools, persistenceKey, onChange, onReset, onError, initialMessages, sendMessage, userParticipantName = 'USER', llmParticipantName = 'ASSISTANT', autoExecuteMessage, buttonColor, toolTitles, thinkingMessages, promptParameters, chatFailMessage, resetMode = 'reset-current', ...restProps } = props;
|
|
32055
|
+
const resolvedPromptParameters = useMemo(() => normalizePromptParameters(promptParameters !== null && promptParameters !== void 0 ? promptParameters : {}), [promptParameters]);
|
|
31252
32056
|
const resolvedChatFailMessage = chatFailMessage || DEFAULT_CHAT_FAIL_MESSAGE;
|
|
31253
32057
|
// Internal state management
|
|
31254
32058
|
// DRY: Single factory for seeding initial messages (used on mount and after reset)
|
|
@@ -31424,7 +32228,7 @@ function LlmChat(props) {
|
|
|
31424
32228
|
const prompt = {
|
|
31425
32229
|
title: 'User Message',
|
|
31426
32230
|
content: messageContent,
|
|
31427
|
-
parameters:
|
|
32231
|
+
parameters: resolvedPromptParameters,
|
|
31428
32232
|
modelRequirements: {
|
|
31429
32233
|
modelVariant: 'CHAT',
|
|
31430
32234
|
},
|
|
@@ -31514,9 +32318,22 @@ function LlmChat(props) {
|
|
|
31514
32318
|
finally {
|
|
31515
32319
|
requestInFlightRef.current = false;
|
|
31516
32320
|
}
|
|
31517
|
-
}, [
|
|
32321
|
+
}, [
|
|
32322
|
+
messages,
|
|
32323
|
+
llmTools,
|
|
32324
|
+
props.thread,
|
|
32325
|
+
resolvedPromptParameters,
|
|
32326
|
+
onError,
|
|
32327
|
+
llmParticipantName,
|
|
32328
|
+
userParticipantName,
|
|
32329
|
+
thinkingVariants,
|
|
32330
|
+
]);
|
|
31518
32331
|
// Handle chat reset
|
|
31519
32332
|
const handleReset = useCallback(async () => {
|
|
32333
|
+
if (resetMode === 'delegate' && onReset) {
|
|
32334
|
+
await onReset();
|
|
32335
|
+
return;
|
|
32336
|
+
}
|
|
31520
32337
|
// Re-seed with initialMessages instead of empty array
|
|
31521
32338
|
setMessages(buildInitialMessages());
|
|
31522
32339
|
setTasksProgress([]);
|
|
@@ -31531,7 +32348,7 @@ function LlmChat(props) {
|
|
|
31531
32348
|
if (onReset) {
|
|
31532
32349
|
await onReset();
|
|
31533
32350
|
}
|
|
31534
|
-
}, [
|
|
32351
|
+
}, [buildInitialMessages, onReset, persistenceKey, resetMode]);
|
|
31535
32352
|
// Handle retry of last failed message
|
|
31536
32353
|
const handleRetry = useCallback(() => {
|
|
31537
32354
|
if (lastFailedMessage) {
|