@promptbook/openai 0.111.0-7 → 0.112.0-12
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 +1007 -115
- package/esm/index.es.js.map +1 -1
- package/esm/src/_packages/components.index.d.ts +2 -0
- package/esm/src/_packages/core.index.d.ts +26 -0
- package/esm/src/_packages/markdown-utils.index.d.ts +5 -5
- package/esm/src/_packages/types.index.d.ts +250 -228
- package/esm/src/_packages/utils.index.d.ts +2 -0
- package/esm/src/book-2.0/agent-source/AgentBasicInformation.d.ts +4 -1
- package/esm/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +5 -1
- package/esm/src/book-2.0/agent-source/createAgentModelRequirements.d.ts +2 -2
- package/esm/src/book-2.0/agent-source/createAgentModelRequirements.writing.test.d.ts +1 -0
- package/esm/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.knowledge.test.d.ts +1 -0
- package/esm/src/book-2.0/agent-source/createTeamToolName.d.ts +12 -0
- package/esm/src/book-2.0/agent-source/extractOpenTeacherInstructions.d.ts +12 -0
- package/esm/src/book-2.0/agent-source/extractOpenTeacherInstructions.test.d.ts +1 -0
- package/esm/src/book-2.0/agent-source/parseAgentSourcePrelude.d.ts +38 -0
- package/esm/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +3 -0
- package/esm/src/book-2.0/agent-source/parseAgentSourceWithCommitments.title.test.d.ts +1 -0
- package/esm/src/book-2.0/agent-source/pseudoAgentReferences.d.ts +110 -0
- package/esm/src/book-2.0/agent-source/removeCommentsFromSystemMessage.d.ts +2 -2
- package/esm/src/book-components/BookEditor/BookEditor.d.ts +15 -0
- package/esm/src/book-components/BookEditor/BookEditorActionbar.d.ts +2 -0
- package/esm/src/book-components/BookEditor/BookEditorMonacoConstants.d.ts +1 -0
- package/esm/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +14 -7
- package/esm/src/book-components/BookEditor/BookEditorMonacoTokenization.test.d.ts +1 -0
- package/esm/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.d.ts +28 -0
- package/esm/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.test.d.ts +1 -0
- package/esm/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +27 -0
- package/esm/src/book-components/BookEditor/useBookEditorMonacoLanguage.test.d.ts +1 -0
- package/esm/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +5 -0
- package/esm/src/book-components/Chat/Chat/ChatActionsBar.d.ts +1 -0
- package/esm/src/book-components/Chat/Chat/ChatInputArea.d.ts +2 -0
- package/esm/src/book-components/Chat/Chat/ChatInputArea.test.d.ts +2 -0
- package/esm/src/book-components/Chat/Chat/ChatMessageItem.d.ts +6 -1
- package/esm/src/book-components/Chat/Chat/ChatMessageList.d.ts +3 -0
- package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +56 -0
- package/esm/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +11 -0
- package/esm/src/book-components/Chat/Chat/ChatToolCallModal.test.d.ts +2 -0
- package/esm/src/book-components/Chat/Chat/TeamToolCallModalContent.d.ts +32 -0
- package/esm/src/book-components/Chat/Chat/chatCssClassNames.d.ts +41 -0
- package/esm/src/book-components/Chat/Chat/renderAdvancedToolCallDetails.d.ts +44 -0
- package/esm/src/book-components/Chat/Chat/renderToolCallDetails.d.ts +40 -0
- package/esm/src/book-components/Chat/CodeBlock/CodeBlock.d.ts +5 -0
- package/esm/src/book-components/Chat/CodeBlock/resolveCodeBlockLanguage.d.ts +18 -0
- package/esm/src/book-components/Chat/CodeBlock/resolveCodeBlockLanguage.test.d.ts +1 -0
- package/esm/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +16 -0
- package/esm/src/book-components/Chat/hooks/useChatAutoScroll.d.ts +1 -1
- package/esm/src/book-components/Chat/hooks/useChatAutoScroll.test.d.ts +1 -0
- package/esm/src/book-components/Chat/types/ChatMessage.d.ts +16 -0
- package/esm/src/book-components/Chat/utils/ChatPersistence.d.ts +16 -0
- package/esm/src/book-components/Chat/utils/ChatPersistence.test.d.ts +4 -0
- package/esm/src/book-components/Chat/utils/createTeamToolNameFromUrl.d.ts +2 -2
- package/esm/src/book-components/Chat/utils/getToolCallChipletInfo.timeout.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/parseMessageButtons.d.ts +22 -5
- package/esm/src/book-components/Chat/utils/parseMessageButtons.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/resolveToolCallFromChatMessages.d.ts +13 -0
- package/esm/src/book-components/Chat/utils/resolveToolCallState.d.ts +10 -0
- package/esm/src/book-components/Chat/utils/sanitizeStreamingMessageContent.d.ts +29 -1
- package/esm/src/book-components/Chat/utils/splitMessageContentIntoSegments.d.ts +16 -3
- package/esm/src/book-components/Chat/utils/thinkingMessageVariants.d.ts +24 -0
- package/esm/src/book-components/Chat/utils/thinkingMessageVariants.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +123 -0
- package/esm/src/book-components/Chat/utils/timeoutToolCallPresentation.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/RunBrowserToolResult.d.ts +50 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/TeamToolResult.d.ts +30 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/extractSearchResults.d.ts +19 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/getToolCallResultDate.d.ts +9 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/getToolCallTimestamp.d.ts +9 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/parseRunBrowserToolResult.d.ts +10 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/parseTeamToolResult.d.ts +10 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/parseToolCallArguments.d.ts +10 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/parseToolCallResult.d.ts +10 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing/resolveRunBrowserArtifactUrl.d.ts +8 -0
- package/esm/src/book-components/Chat/utils/toolCallParsing.d.ts +10 -68
- package/esm/src/book-components/Chat/utils/toolCallParsing.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/walletCredentialToolCall.d.ts +52 -0
- package/esm/src/book-components/Chat/utils/walletCredentialToolCall.test.d.ts +1 -0
- package/esm/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +14 -0
- package/esm/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +3 -0
- package/esm/src/book-components/_common/MonacoEditorWithShadowDom.d.ts +17 -0
- package/esm/src/book-components/icons/ArrowIcon.d.ts +30 -5
- package/esm/src/book-components/icons/SolidArrowButton.d.ts +28 -0
- package/esm/src/book-components/icons/StopIcon.d.ts +8 -0
- package/esm/src/cli/cli-commands/coder/find-fresh-emoji-tag.d.ts +14 -0
- package/esm/src/cli/cli-commands/coder/find-refactor-candidates.d.ts +14 -0
- package/esm/src/cli/cli-commands/coder/generate-boilerplates.d.ts +14 -0
- package/esm/src/cli/cli-commands/coder/run.d.ts +14 -0
- package/esm/src/cli/cli-commands/coder/verify.d.ts +14 -0
- package/esm/src/cli/cli-commands/coder.d.ts +21 -0
- package/esm/src/collection/agent-collection/CreateAgentInput.d.ts +59 -0
- package/esm/src/collection/agent-collection/CreateAgentInput.test.d.ts +1 -0
- package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +52 -8
- package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +6 -3
- package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +36 -0
- package/esm/src/commitments/KNOWLEDGE/KNOWLEDGE.d.ts +0 -3
- package/esm/src/commitments/MEMORY/MEMORY.d.ts +4 -59
- package/esm/src/commitments/MEMORY/MemoryToolNames.d.ts +11 -0
- package/esm/src/commitments/MEMORY/MemoryToolRuntimeAdapter.d.ts +149 -0
- package/esm/src/commitments/MEMORY/createMemorySystemMessage.d.ts +6 -0
- package/esm/src/commitments/MEMORY/createMemoryToolFunctions.d.ts +8 -0
- package/esm/src/commitments/MEMORY/createMemoryTools.d.ts +14 -0
- package/esm/src/commitments/MEMORY/getMemoryCommitmentDocumentation.d.ts +6 -0
- package/esm/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.d.ts +17 -0
- package/esm/src/commitments/MEMORY/getMemoryToolTitles.d.ts +7 -0
- package/esm/src/commitments/MEMORY/parseMemoryToolArgs.d.ts +61 -0
- package/esm/src/commitments/MEMORY/resolveMemoryRuntimeContext.d.ts +8 -0
- package/esm/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.d.ts +13 -0
- package/esm/src/commitments/MESSAGE/InternalMessageCommitmentDefinition.d.ts +33 -0
- package/esm/src/commitments/MESSAGE/MESSAGE.d.ts +2 -2
- package/esm/src/commitments/META/META.d.ts +4 -0
- package/esm/src/commitments/META_DOMAIN/META_DOMAIN.d.ts +33 -0
- package/esm/src/commitments/META_INPUT_PLACEHOLDER/META_INPUT_PLACEHOLDER.d.ts +33 -0
- package/esm/src/commitments/META_VOICE/META_VOICE.d.ts +39 -0
- package/esm/src/commitments/SAMPLE/SAMPLE.d.ts +13 -13
- package/esm/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +1 -1
- package/esm/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.d.ts +10 -0
- package/esm/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.test.d.ts +1 -0
- package/esm/src/commitments/USE_CALENDAR/USE_CALENDAR.d.ts +42 -0
- package/esm/src/commitments/USE_CALENDAR/USE_CALENDAR.test.d.ts +1 -0
- package/esm/src/commitments/USE_CALENDAR/UseCalendarToolNames.d.ts +13 -0
- package/esm/src/commitments/USE_CALENDAR/UseCalendarWallet.d.ts +9 -0
- package/esm/src/commitments/USE_CALENDAR/calendarReference.d.ts +68 -0
- package/esm/src/commitments/USE_CALENDAR/callGoogleCalendarApi.d.ts +19 -0
- package/esm/src/commitments/USE_CALENDAR/createUseCalendarToolFunctions.d.ts +8 -0
- package/esm/src/commitments/USE_CALENDAR/createUseCalendarTools.d.ts +7 -0
- package/esm/src/commitments/USE_CALENDAR/getUseCalendarToolTitles.d.ts +7 -0
- package/esm/src/commitments/USE_CALENDAR/normalizeConfiguredCalendars.d.ts +19 -0
- package/esm/src/commitments/USE_CALENDAR/resolveUseCalendarToolRuntimeOrWalletCredentialResult.d.ts +34 -0
- package/esm/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +4 -11
- package/esm/src/commitments/USE_EMAIL/USE_EMAIL.test.d.ts +1 -0
- package/esm/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.d.ts +21 -0
- package/esm/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.test.d.ts +1 -0
- package/esm/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +2 -7
- package/esm/src/commitments/USE_POPUP/USE_POPUP.d.ts +49 -0
- package/esm/src/commitments/USE_PRIVACY/USE_PRIVACY.d.ts +39 -0
- package/esm/src/commitments/USE_PRIVACY/USE_PRIVACY.test.d.ts +1 -0
- package/esm/src/commitments/USE_PROJECT/USE_PROJECT.d.ts +42 -0
- package/esm/src/commitments/USE_PROJECT/USE_PROJECT.test.d.ts +1 -0
- package/esm/src/commitments/USE_PROJECT/UseProjectToolNames.d.ts +13 -0
- package/esm/src/commitments/USE_PROJECT/UseProjectWallet.d.ts +9 -0
- package/esm/src/commitments/USE_PROJECT/callGitHubApi.d.ts +69 -0
- package/esm/src/commitments/USE_PROJECT/createUseProjectToolFunctions.d.ts +8 -0
- package/esm/src/commitments/USE_PROJECT/createUseProjectTools.d.ts +7 -0
- package/esm/src/commitments/USE_PROJECT/getUseProjectToolTitles.d.ts +7 -0
- package/esm/src/commitments/USE_PROJECT/normalizeConfiguredProjects.d.ts +16 -0
- package/esm/src/commitments/USE_PROJECT/normalizeOptionalToolText.d.ts +12 -0
- package/esm/src/commitments/USE_PROJECT/projectReference.d.ts +52 -0
- package/esm/src/commitments/USE_PROJECT/projectReference.test.d.ts +1 -0
- package/esm/src/commitments/USE_PROJECT/resolveUseProjectToolRuntimeOrWalletCredentialResult.d.ts +34 -0
- package/esm/src/commitments/USE_SPAWN/USE_SPAWN.d.ts +41 -0
- package/esm/src/commitments/USE_SPAWN/USE_SPAWN.test.d.ts +1 -0
- package/esm/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.d.ts +9 -0
- package/esm/src/commitments/USE_SPAWN/spawnAgentViaBrowser.d.ts +12 -0
- package/esm/src/commitments/USE_TIMEOUT/TimeoutToolNames.d.ts +9 -0
- package/esm/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.d.ts +90 -0
- package/esm/src/commitments/USE_TIMEOUT/USE_TIMEOUT.d.ts +41 -0
- package/esm/src/commitments/USE_TIMEOUT/USE_TIMEOUT.test.d.ts +1 -0
- package/esm/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.d.ts +6 -0
- package/esm/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.d.ts +8 -0
- package/esm/src/commitments/USE_TIMEOUT/createTimeoutTools.d.ts +7 -0
- package/esm/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.d.ts +17 -0
- package/esm/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.d.ts +34 -0
- package/esm/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.d.ts +8 -0
- package/esm/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.d.ts +13 -0
- package/esm/src/commitments/WALLET/WALLET.d.ts +24 -0
- package/esm/src/commitments/WALLET/WALLET.test.d.ts +1 -0
- package/esm/src/commitments/WALLET/WalletToolNames.d.ts +12 -0
- package/esm/src/commitments/WALLET/WalletToolRuntimeAdapter.d.ts +163 -0
- package/esm/src/commitments/WALLET/createWalletSystemMessage.d.ts +6 -0
- package/esm/src/commitments/WALLET/createWalletToolFunctions.d.ts +8 -0
- package/esm/src/commitments/WALLET/createWalletTools.d.ts +7 -0
- package/esm/src/commitments/WALLET/getWalletCommitmentDocumentation.d.ts +6 -0
- package/esm/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.d.ts +16 -0
- package/esm/src/commitments/WALLET/getWalletToolTitles.d.ts +7 -0
- package/esm/src/commitments/WALLET/parseWalletToolArgs.d.ts +51 -0
- package/esm/src/commitments/WALLET/resolveWalletRuntimeContext.d.ts +8 -0
- package/esm/src/commitments/WALLET/setWalletToolRuntimeAdapter.d.ts +13 -0
- package/esm/src/commitments/WRITING_RULES/WRITING_RULES.d.ts +29 -0
- package/esm/src/commitments/WRITING_SAMPLE/WRITING_SAMPLE.d.ts +29 -0
- package/esm/src/commitments/_base/BaseCommitmentDefinition.d.ts +12 -0
- package/esm/src/commitments/_base/CommitmentDefinition.d.ts +23 -0
- package/esm/src/commitments/_common/createWritingCommitmentSections.d.ts +19 -0
- package/esm/src/commitments/_common/getGroupedCommitmentDefinitions.writing.test.d.ts +1 -0
- package/esm/src/commitments/_common/toolExecutionEnvelope.d.ts +22 -0
- package/esm/src/commitments/_common/toolRuntimeContext.d.ts +99 -0
- package/esm/src/commitments/index.d.ts +13 -1
- package/esm/src/config.d.ts +3 -0
- package/esm/src/errors/0-index.d.ts +3 -0
- package/esm/src/errors/ConflictError.d.ts +9 -0
- package/esm/src/executables/apps/locateVscode.d.ts +7 -0
- package/esm/src/executables/apps/locateVscode.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateBrowser.d.ts +10 -0
- package/esm/src/executables/browsers/locateBrowser.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateChrome.d.ts +7 -0
- package/esm/src/executables/browsers/locateChrome.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateDefaultSystemBrowser.d.ts +10 -0
- package/esm/src/executables/browsers/locateDefaultSystemBrowser.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateEdge.d.ts +7 -0
- package/esm/src/executables/browsers/locateEdge.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateFirefox.d.ts +7 -0
- package/esm/src/executables/browsers/locateFirefox.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateInternetExplorer.d.ts +7 -0
- package/esm/src/executables/browsers/locateInternetExplorer.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateSafari.d.ts +7 -0
- package/esm/src/execution/LlmExecutionTools.d.ts +12 -1
- package/esm/src/execution/Usage.d.ts +4 -0
- package/esm/src/execution/utils/usageToHuman.d.ts +1 -0
- package/esm/src/file-security-checkers/FileSecurityCheckResult.d.ts +32 -0
- package/esm/src/file-security-checkers/FileSecurityChecker.d.ts +34 -0
- package/esm/src/file-security-checkers/virustotal/VirusTotalFileSecurityChecker.d.ts +36 -0
- package/esm/src/file-security-checkers/virustotal/VirusTotalFileSecurityChecker.test.d.ts +1 -0
- package/esm/src/llm-providers/agent/Agent.d.ts +2 -2
- package/esm/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +2 -2
- package/esm/src/llm-providers/agent/RemoteAgent.d.ts +2 -1
- package/esm/src/llm-providers/agent/self-learning/SelfLearningManager.test.d.ts +1 -0
- package/esm/src/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.d.ts +3 -1
- package/esm/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +33 -3
- package/esm/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +2 -2
- package/esm/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +2 -2
- package/esm/src/llm-providers/openai/computeOpenAiUsage.d.ts +3 -1
- package/esm/src/playground/playground.d.ts +1 -0
- package/esm/src/speech-recognition/OpenAiSpeechRecognition.d.ts +49 -1
- package/esm/src/types/SpeechRecognition.d.ts +14 -0
- package/esm/src/types/ToolCall.d.ts +56 -0
- package/esm/src/types/number_usd.d.ts +110 -0
- package/esm/src/types/string_filename.d.ts +39 -0
- package/esm/src/types/string_knowledge_source_content.d.ts +29 -0
- package/esm/src/types/string_markdown.d.ts +138 -0
- package/esm/src/types/string_parameter_name.d.ts +170 -0
- package/esm/src/types/string_person_fullname.d.ts +85 -0
- package/esm/src/types/string_sha256.d.ts +44 -0
- package/esm/src/types/string_token.d.ts +58 -0
- package/esm/src/types/string_url.d.ts +146 -0
- package/esm/src/types/typeAliases.d.ts +9 -741
- package/esm/src/utils/chat/chatAttachments/appendChatAttachmentContext.d.ts +10 -0
- package/esm/src/utils/chat/chatAttachments/appendChatAttachmentContextWithContent.d.ts +14 -0
- package/esm/src/utils/chat/chatAttachments/appendChatContextSections.d.ts +6 -0
- package/esm/src/utils/chat/chatAttachments/formatChatAttachmentContentContext.d.ts +9 -0
- package/esm/src/utils/chat/chatAttachments/formatChatAttachmentContext.d.ts +9 -0
- package/esm/src/utils/chat/chatAttachments/normalizeChatAttachments.d.ts +11 -0
- package/esm/src/utils/chat/chatAttachments/resolveChatAttachmentContent.d.ts +11 -0
- package/esm/src/utils/chat/chatAttachments/resolveChatAttachmentContents.d.ts +10 -0
- package/esm/src/utils/chat/chatAttachments.d.ts +54 -0
- package/esm/src/utils/chat/chatAttachments.test.d.ts +1 -0
- package/esm/src/utils/chat/constants.d.ts +21 -0
- package/esm/src/utils/chat/decodeChatStreamWhitespaceFromTransport.d.ts +7 -0
- package/esm/src/utils/chat/encodeChatStreamWhitespaceForTransport.d.ts +7 -0
- package/esm/src/utils/chat/escapeRegExp.d.ts +6 -0
- package/esm/src/utils/database/uniqueConstraint.d.ts +28 -0
- package/esm/src/utils/files/decodeAttachmentAsText.d.ts +81 -0
- package/esm/src/utils/files/decodeAttachmentAsText.test.d.ts +1 -0
- package/esm/src/utils/files/readResponseBytes.d.ts +14 -0
- package/esm/src/utils/random/EnglishNamePool.d.ts +9 -1
- package/esm/src/utils/toolCalls/getToolCallIdentity.d.ts +1 -1
- package/esm/src/utils/toolCalls/mergeToolCalls.d.ts +12 -0
- package/esm/src/utils/toolCalls/resolveToolCallIdempotencyKey.d.ts +10 -0
- package/esm/src/utils/validators/url/extractUrlsFromText.d.ts +8 -0
- package/esm/src/utils/validators/url/extractUrlsFromText.test.d.ts +1 -0
- package/esm/src/utils/validators/url/isHostnameOnPrivateNetwork.d.ts +12 -1
- package/esm/src/utils/validators/url/isUrlOnPrivateNetwork.d.ts +8 -2
- package/esm/src/utils/validators/url/normalizeDomainForMatching.d.ts +11 -0
- package/esm/src/utils/validators/url/normalizeDomainForMatching.test.d.ts +1 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +1007 -115
- package/umd/index.umd.js.map +1 -1
- package/umd/src/_packages/components.index.d.ts +2 -0
- package/umd/src/_packages/core.index.d.ts +26 -0
- package/umd/src/_packages/markdown-utils.index.d.ts +5 -5
- package/umd/src/_packages/types.index.d.ts +250 -228
- package/umd/src/_packages/utils.index.d.ts +2 -0
- package/umd/src/book-2.0/agent-source/AgentBasicInformation.d.ts +4 -1
- package/umd/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +5 -1
- package/umd/src/book-2.0/agent-source/createAgentModelRequirements.d.ts +2 -2
- package/umd/src/book-2.0/agent-source/createAgentModelRequirements.writing.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.knowledge.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/createTeamToolName.d.ts +12 -0
- package/umd/src/book-2.0/agent-source/extractOpenTeacherInstructions.d.ts +12 -0
- package/umd/src/book-2.0/agent-source/extractOpenTeacherInstructions.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/parseAgentSourcePrelude.d.ts +38 -0
- package/umd/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +3 -0
- package/umd/src/book-2.0/agent-source/parseAgentSourceWithCommitments.title.test.d.ts +1 -0
- package/umd/src/book-2.0/agent-source/pseudoAgentReferences.d.ts +110 -0
- package/umd/src/book-2.0/agent-source/removeCommentsFromSystemMessage.d.ts +2 -2
- package/umd/src/book-components/BookEditor/BookEditor.d.ts +15 -0
- package/umd/src/book-components/BookEditor/BookEditorActionbar.d.ts +2 -0
- package/umd/src/book-components/BookEditor/BookEditorMonacoConstants.d.ts +1 -0
- package/umd/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +14 -7
- package/umd/src/book-components/BookEditor/BookEditorMonacoTokenization.test.d.ts +1 -0
- package/umd/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.d.ts +28 -0
- package/umd/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.test.d.ts +1 -0
- package/umd/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +27 -0
- package/umd/src/book-components/BookEditor/useBookEditorMonacoLanguage.test.d.ts +1 -0
- package/umd/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +5 -0
- package/umd/src/book-components/Chat/Chat/ChatActionsBar.d.ts +1 -0
- package/umd/src/book-components/Chat/Chat/ChatInputArea.d.ts +2 -0
- package/umd/src/book-components/Chat/Chat/ChatInputArea.test.d.ts +2 -0
- package/umd/src/book-components/Chat/Chat/ChatMessageItem.d.ts +6 -1
- package/umd/src/book-components/Chat/Chat/ChatMessageList.d.ts +3 -0
- package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +56 -0
- package/umd/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +11 -0
- package/umd/src/book-components/Chat/Chat/ChatToolCallModal.test.d.ts +2 -0
- package/umd/src/book-components/Chat/Chat/TeamToolCallModalContent.d.ts +32 -0
- package/umd/src/book-components/Chat/Chat/chatCssClassNames.d.ts +41 -0
- package/umd/src/book-components/Chat/Chat/renderAdvancedToolCallDetails.d.ts +44 -0
- package/umd/src/book-components/Chat/Chat/renderToolCallDetails.d.ts +40 -0
- package/umd/src/book-components/Chat/CodeBlock/CodeBlock.d.ts +5 -0
- package/umd/src/book-components/Chat/CodeBlock/resolveCodeBlockLanguage.d.ts +18 -0
- package/umd/src/book-components/Chat/CodeBlock/resolveCodeBlockLanguage.test.d.ts +1 -0
- package/umd/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +16 -0
- package/umd/src/book-components/Chat/hooks/useChatAutoScroll.d.ts +1 -1
- package/umd/src/book-components/Chat/hooks/useChatAutoScroll.test.d.ts +1 -0
- package/umd/src/book-components/Chat/types/ChatMessage.d.ts +16 -0
- package/umd/src/book-components/Chat/utils/ChatPersistence.d.ts +16 -0
- package/umd/src/book-components/Chat/utils/ChatPersistence.test.d.ts +4 -0
- package/umd/src/book-components/Chat/utils/createTeamToolNameFromUrl.d.ts +2 -2
- package/umd/src/book-components/Chat/utils/getToolCallChipletInfo.timeout.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/parseMessageButtons.d.ts +22 -5
- package/umd/src/book-components/Chat/utils/parseMessageButtons.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/resolveToolCallFromChatMessages.d.ts +13 -0
- package/umd/src/book-components/Chat/utils/resolveToolCallState.d.ts +10 -0
- package/umd/src/book-components/Chat/utils/sanitizeStreamingMessageContent.d.ts +29 -1
- package/umd/src/book-components/Chat/utils/splitMessageContentIntoSegments.d.ts +16 -3
- package/umd/src/book-components/Chat/utils/thinkingMessageVariants.d.ts +24 -0
- package/umd/src/book-components/Chat/utils/thinkingMessageVariants.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +123 -0
- package/umd/src/book-components/Chat/utils/timeoutToolCallPresentation.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/RunBrowserToolResult.d.ts +50 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/TeamToolResult.d.ts +30 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/extractSearchResults.d.ts +19 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/getToolCallResultDate.d.ts +9 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/getToolCallTimestamp.d.ts +9 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/parseRunBrowserToolResult.d.ts +10 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/parseTeamToolResult.d.ts +10 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/parseToolCallArguments.d.ts +10 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/parseToolCallResult.d.ts +10 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing/resolveRunBrowserArtifactUrl.d.ts +8 -0
- package/umd/src/book-components/Chat/utils/toolCallParsing.d.ts +10 -68
- package/umd/src/book-components/Chat/utils/toolCallParsing.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/walletCredentialToolCall.d.ts +52 -0
- package/umd/src/book-components/Chat/utils/walletCredentialToolCall.test.d.ts +1 -0
- package/umd/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +14 -0
- package/umd/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +3 -0
- package/umd/src/book-components/_common/MonacoEditorWithShadowDom.d.ts +17 -0
- package/umd/src/book-components/icons/ArrowIcon.d.ts +30 -5
- package/umd/src/book-components/icons/SolidArrowButton.d.ts +28 -0
- package/umd/src/book-components/icons/StopIcon.d.ts +8 -0
- package/umd/src/cli/cli-commands/coder/find-fresh-emoji-tag.d.ts +14 -0
- package/umd/src/cli/cli-commands/coder/find-refactor-candidates.d.ts +14 -0
- package/umd/src/cli/cli-commands/coder/generate-boilerplates.d.ts +14 -0
- package/umd/src/cli/cli-commands/coder/run.d.ts +14 -0
- package/umd/src/cli/cli-commands/coder/verify.d.ts +14 -0
- package/umd/src/cli/cli-commands/coder.d.ts +21 -0
- package/umd/src/collection/agent-collection/CreateAgentInput.d.ts +59 -0
- package/umd/src/collection/agent-collection/CreateAgentInput.test.d.ts +1 -0
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +52 -8
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +6 -3
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +36 -0
- package/umd/src/commitments/KNOWLEDGE/KNOWLEDGE.d.ts +0 -3
- package/umd/src/commitments/MEMORY/MEMORY.d.ts +4 -59
- package/umd/src/commitments/MEMORY/MemoryToolNames.d.ts +11 -0
- package/umd/src/commitments/MEMORY/MemoryToolRuntimeAdapter.d.ts +149 -0
- package/umd/src/commitments/MEMORY/createMemorySystemMessage.d.ts +6 -0
- package/umd/src/commitments/MEMORY/createMemoryToolFunctions.d.ts +8 -0
- package/umd/src/commitments/MEMORY/createMemoryTools.d.ts +14 -0
- package/umd/src/commitments/MEMORY/getMemoryCommitmentDocumentation.d.ts +6 -0
- package/umd/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.d.ts +17 -0
- package/umd/src/commitments/MEMORY/getMemoryToolTitles.d.ts +7 -0
- package/umd/src/commitments/MEMORY/parseMemoryToolArgs.d.ts +61 -0
- package/umd/src/commitments/MEMORY/resolveMemoryRuntimeContext.d.ts +8 -0
- package/umd/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.d.ts +13 -0
- package/umd/src/commitments/MESSAGE/InternalMessageCommitmentDefinition.d.ts +33 -0
- package/umd/src/commitments/MESSAGE/MESSAGE.d.ts +2 -2
- package/umd/src/commitments/META/META.d.ts +4 -0
- package/umd/src/commitments/META_DOMAIN/META_DOMAIN.d.ts +33 -0
- package/umd/src/commitments/META_INPUT_PLACEHOLDER/META_INPUT_PLACEHOLDER.d.ts +33 -0
- package/umd/src/commitments/META_VOICE/META_VOICE.d.ts +39 -0
- package/umd/src/commitments/SAMPLE/SAMPLE.d.ts +13 -13
- package/umd/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +1 -1
- package/umd/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.d.ts +10 -0
- package/umd/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.test.d.ts +1 -0
- package/umd/src/commitments/USE_CALENDAR/USE_CALENDAR.d.ts +42 -0
- package/umd/src/commitments/USE_CALENDAR/USE_CALENDAR.test.d.ts +1 -0
- package/umd/src/commitments/USE_CALENDAR/UseCalendarToolNames.d.ts +13 -0
- package/umd/src/commitments/USE_CALENDAR/UseCalendarWallet.d.ts +9 -0
- package/umd/src/commitments/USE_CALENDAR/calendarReference.d.ts +68 -0
- package/umd/src/commitments/USE_CALENDAR/callGoogleCalendarApi.d.ts +19 -0
- package/umd/src/commitments/USE_CALENDAR/createUseCalendarToolFunctions.d.ts +8 -0
- package/umd/src/commitments/USE_CALENDAR/createUseCalendarTools.d.ts +7 -0
- package/umd/src/commitments/USE_CALENDAR/getUseCalendarToolTitles.d.ts +7 -0
- package/umd/src/commitments/USE_CALENDAR/normalizeConfiguredCalendars.d.ts +19 -0
- package/umd/src/commitments/USE_CALENDAR/resolveUseCalendarToolRuntimeOrWalletCredentialResult.d.ts +34 -0
- package/umd/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +4 -11
- package/umd/src/commitments/USE_EMAIL/USE_EMAIL.test.d.ts +1 -0
- package/umd/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.d.ts +21 -0
- package/umd/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.test.d.ts +1 -0
- package/umd/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +2 -7
- package/umd/src/commitments/USE_POPUP/USE_POPUP.d.ts +49 -0
- package/umd/src/commitments/USE_PRIVACY/USE_PRIVACY.d.ts +39 -0
- package/umd/src/commitments/USE_PRIVACY/USE_PRIVACY.test.d.ts +1 -0
- package/umd/src/commitments/USE_PROJECT/USE_PROJECT.d.ts +42 -0
- package/umd/src/commitments/USE_PROJECT/USE_PROJECT.test.d.ts +1 -0
- package/umd/src/commitments/USE_PROJECT/UseProjectToolNames.d.ts +13 -0
- package/umd/src/commitments/USE_PROJECT/UseProjectWallet.d.ts +9 -0
- package/umd/src/commitments/USE_PROJECT/callGitHubApi.d.ts +69 -0
- package/umd/src/commitments/USE_PROJECT/createUseProjectToolFunctions.d.ts +8 -0
- package/umd/src/commitments/USE_PROJECT/createUseProjectTools.d.ts +7 -0
- package/umd/src/commitments/USE_PROJECT/getUseProjectToolTitles.d.ts +7 -0
- package/umd/src/commitments/USE_PROJECT/normalizeConfiguredProjects.d.ts +16 -0
- package/umd/src/commitments/USE_PROJECT/normalizeOptionalToolText.d.ts +12 -0
- package/umd/src/commitments/USE_PROJECT/projectReference.d.ts +52 -0
- package/umd/src/commitments/USE_PROJECT/projectReference.test.d.ts +1 -0
- package/umd/src/commitments/USE_PROJECT/resolveUseProjectToolRuntimeOrWalletCredentialResult.d.ts +34 -0
- package/umd/src/commitments/USE_SPAWN/USE_SPAWN.d.ts +41 -0
- package/umd/src/commitments/USE_SPAWN/USE_SPAWN.test.d.ts +1 -0
- package/umd/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.d.ts +9 -0
- package/umd/src/commitments/USE_SPAWN/spawnAgentViaBrowser.d.ts +12 -0
- package/umd/src/commitments/USE_TIMEOUT/TimeoutToolNames.d.ts +9 -0
- package/umd/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.d.ts +90 -0
- package/umd/src/commitments/USE_TIMEOUT/USE_TIMEOUT.d.ts +41 -0
- package/umd/src/commitments/USE_TIMEOUT/USE_TIMEOUT.test.d.ts +1 -0
- package/umd/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.d.ts +6 -0
- package/umd/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.d.ts +8 -0
- package/umd/src/commitments/USE_TIMEOUT/createTimeoutTools.d.ts +7 -0
- package/umd/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.d.ts +17 -0
- package/umd/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.d.ts +34 -0
- package/umd/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.d.ts +8 -0
- package/umd/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.d.ts +13 -0
- package/umd/src/commitments/WALLET/WALLET.d.ts +24 -0
- package/umd/src/commitments/WALLET/WALLET.test.d.ts +1 -0
- package/umd/src/commitments/WALLET/WalletToolNames.d.ts +12 -0
- package/umd/src/commitments/WALLET/WalletToolRuntimeAdapter.d.ts +163 -0
- package/umd/src/commitments/WALLET/createWalletSystemMessage.d.ts +6 -0
- package/umd/src/commitments/WALLET/createWalletToolFunctions.d.ts +8 -0
- package/umd/src/commitments/WALLET/createWalletTools.d.ts +7 -0
- package/umd/src/commitments/WALLET/getWalletCommitmentDocumentation.d.ts +6 -0
- package/umd/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.d.ts +16 -0
- package/umd/src/commitments/WALLET/getWalletToolTitles.d.ts +7 -0
- package/umd/src/commitments/WALLET/parseWalletToolArgs.d.ts +51 -0
- package/umd/src/commitments/WALLET/resolveWalletRuntimeContext.d.ts +8 -0
- package/umd/src/commitments/WALLET/setWalletToolRuntimeAdapter.d.ts +13 -0
- package/umd/src/commitments/WRITING_RULES/WRITING_RULES.d.ts +29 -0
- package/umd/src/commitments/WRITING_SAMPLE/WRITING_SAMPLE.d.ts +29 -0
- package/umd/src/commitments/_base/BaseCommitmentDefinition.d.ts +12 -0
- package/umd/src/commitments/_base/CommitmentDefinition.d.ts +23 -0
- package/umd/src/commitments/_common/createWritingCommitmentSections.d.ts +19 -0
- package/umd/src/commitments/_common/getGroupedCommitmentDefinitions.writing.test.d.ts +1 -0
- package/umd/src/commitments/_common/toolExecutionEnvelope.d.ts +22 -0
- package/umd/src/commitments/_common/toolRuntimeContext.d.ts +99 -0
- package/umd/src/commitments/index.d.ts +13 -1
- package/umd/src/config.d.ts +3 -0
- package/umd/src/errors/0-index.d.ts +3 -0
- package/umd/src/errors/ConflictError.d.ts +9 -0
- package/umd/src/executables/apps/locateVscode.d.ts +7 -0
- package/umd/src/executables/apps/locateVscode.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateBrowser.d.ts +10 -0
- package/umd/src/executables/browsers/locateBrowser.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateChrome.d.ts +7 -0
- package/umd/src/executables/browsers/locateChrome.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateDefaultSystemBrowser.d.ts +10 -0
- package/umd/src/executables/browsers/locateDefaultSystemBrowser.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateEdge.d.ts +7 -0
- package/umd/src/executables/browsers/locateEdge.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateFirefox.d.ts +7 -0
- package/umd/src/executables/browsers/locateFirefox.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateInternetExplorer.d.ts +7 -0
- package/umd/src/executables/browsers/locateInternetExplorer.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateSafari.d.ts +7 -0
- package/umd/src/execution/LlmExecutionTools.d.ts +12 -1
- package/umd/src/execution/Usage.d.ts +4 -0
- package/umd/src/execution/utils/usageToHuman.d.ts +1 -0
- package/umd/src/file-security-checkers/FileSecurityCheckResult.d.ts +32 -0
- package/umd/src/file-security-checkers/FileSecurityChecker.d.ts +34 -0
- package/umd/src/file-security-checkers/virustotal/VirusTotalFileSecurityChecker.d.ts +36 -0
- package/umd/src/file-security-checkers/virustotal/VirusTotalFileSecurityChecker.test.d.ts +1 -0
- package/umd/src/llm-providers/agent/Agent.d.ts +2 -2
- package/umd/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +2 -2
- package/umd/src/llm-providers/agent/RemoteAgent.d.ts +2 -1
- package/umd/src/llm-providers/agent/self-learning/SelfLearningManager.test.d.ts +1 -0
- package/umd/src/llm-providers/anthropic-claude/computeAnthropicClaudeUsage.d.ts +3 -1
- package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +33 -3
- package/umd/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +2 -2
- package/umd/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +2 -2
- package/umd/src/llm-providers/openai/computeOpenAiUsage.d.ts +3 -1
- package/umd/src/playground/playground.d.ts +1 -0
- package/umd/src/speech-recognition/OpenAiSpeechRecognition.d.ts +49 -1
- package/umd/src/types/SpeechRecognition.d.ts +14 -0
- package/umd/src/types/ToolCall.d.ts +56 -0
- package/umd/src/types/number_usd.d.ts +110 -0
- package/umd/src/types/string_filename.d.ts +39 -0
- package/umd/src/types/string_knowledge_source_content.d.ts +29 -0
- package/umd/src/types/string_markdown.d.ts +138 -0
- package/umd/src/types/string_parameter_name.d.ts +170 -0
- package/umd/src/types/string_person_fullname.d.ts +85 -0
- package/umd/src/types/string_sha256.d.ts +44 -0
- package/umd/src/types/string_token.d.ts +58 -0
- package/umd/src/types/string_url.d.ts +146 -0
- package/umd/src/types/typeAliases.d.ts +9 -741
- package/umd/src/utils/chat/chatAttachments/appendChatAttachmentContext.d.ts +10 -0
- package/umd/src/utils/chat/chatAttachments/appendChatAttachmentContextWithContent.d.ts +14 -0
- package/umd/src/utils/chat/chatAttachments/appendChatContextSections.d.ts +6 -0
- package/umd/src/utils/chat/chatAttachments/formatChatAttachmentContentContext.d.ts +9 -0
- package/umd/src/utils/chat/chatAttachments/formatChatAttachmentContext.d.ts +9 -0
- package/umd/src/utils/chat/chatAttachments/normalizeChatAttachments.d.ts +11 -0
- package/umd/src/utils/chat/chatAttachments/resolveChatAttachmentContent.d.ts +11 -0
- package/umd/src/utils/chat/chatAttachments/resolveChatAttachmentContents.d.ts +10 -0
- package/umd/src/utils/chat/chatAttachments.d.ts +54 -0
- package/umd/src/utils/chat/chatAttachments.test.d.ts +1 -0
- package/umd/src/utils/chat/constants.d.ts +21 -0
- package/umd/src/utils/chat/decodeChatStreamWhitespaceFromTransport.d.ts +7 -0
- package/umd/src/utils/chat/encodeChatStreamWhitespaceForTransport.d.ts +7 -0
- package/umd/src/utils/chat/escapeRegExp.d.ts +6 -0
- package/umd/src/utils/database/uniqueConstraint.d.ts +28 -0
- package/umd/src/utils/files/decodeAttachmentAsText.d.ts +81 -0
- package/umd/src/utils/files/decodeAttachmentAsText.test.d.ts +1 -0
- package/umd/src/utils/files/readResponseBytes.d.ts +14 -0
- package/umd/src/utils/random/EnglishNamePool.d.ts +9 -1
- package/umd/src/utils/toolCalls/getToolCallIdentity.d.ts +1 -1
- package/umd/src/utils/toolCalls/mergeToolCalls.d.ts +12 -0
- package/umd/src/utils/toolCalls/resolveToolCallIdempotencyKey.d.ts +10 -0
- package/umd/src/utils/validators/url/extractUrlsFromText.d.ts +8 -0
- package/umd/src/utils/validators/url/extractUrlsFromText.test.d.ts +1 -0
- package/umd/src/utils/validators/url/isHostnameOnPrivateNetwork.d.ts +12 -1
- package/umd/src/utils/validators/url/isUrlOnPrivateNetwork.d.ts +8 -2
- package/umd/src/utils/validators/url/normalizeDomainForMatching.d.ts +11 -0
- package/umd/src/utils/validators/url/normalizeDomainForMatching.test.d.ts +1 -0
- package/umd/src/version.d.ts +1 -1
package/esm/index.es.js
CHANGED
|
@@ -23,7 +23,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
23
23
|
* @generated
|
|
24
24
|
* @see https://github.com/webgptorg/promptbook
|
|
25
25
|
*/
|
|
26
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.
|
|
26
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-12';
|
|
27
27
|
/**
|
|
28
28
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
29
29
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -775,16 +775,14 @@ class Color {
|
|
|
775
775
|
}
|
|
776
776
|
toHex() {
|
|
777
777
|
if (this.alpha === 255) {
|
|
778
|
-
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
778
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
|
|
779
779
|
.toString(16)
|
|
780
|
-
.padStart(2, '0')}
|
|
780
|
+
.padStart(2, '0')}`;
|
|
781
781
|
}
|
|
782
782
|
else {
|
|
783
|
-
return `#${this.red.toString(16).padStart(2, '0')}${this.green
|
|
784
|
-
.toString(16)
|
|
785
|
-
.padStart(2, '0')}${this.blue.toString(16).padStart(2, '0')}${this.alpha
|
|
783
|
+
return `#${this.red.toString(16).padStart(2, '0')}${this.green.toString(16).padStart(2, '0')}${this.blue
|
|
786
784
|
.toString(16)
|
|
787
|
-
.padStart(2, '0')}`;
|
|
785
|
+
.padStart(2, '0')}${this.alpha.toString(16).padStart(2, '0')}`;
|
|
788
786
|
}
|
|
789
787
|
}
|
|
790
788
|
toRgb() {
|
|
@@ -994,6 +992,9 @@ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
|
|
|
994
992
|
LINE: Color.fromHex('#eeeeee'),
|
|
995
993
|
SEPARATOR: Color.fromHex('#cccccc'),
|
|
996
994
|
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
995
|
+
NOTE_COMMITMENT: Color.fromHex('#8080807e'),
|
|
996
|
+
TODO_COMMITMENT_TEXT: Color.fromHex('#000000'),
|
|
997
|
+
TODO_COMMITMENT_BACKGROUND: Color.fromHex('#FFEB3B'),
|
|
997
998
|
PARAMETER: Color.fromHex('#8e44ad'),
|
|
998
999
|
CODE_BLOCK: Color.fromHex('#7700ffff'),
|
|
999
1000
|
});
|
|
@@ -1844,6 +1845,19 @@ class CollectionError extends Error {
|
|
|
1844
1845
|
}
|
|
1845
1846
|
}
|
|
1846
1847
|
|
|
1848
|
+
/**
|
|
1849
|
+
* Signals that the requested operation could not be completed because the target already exists.
|
|
1850
|
+
*
|
|
1851
|
+
* @public exported from `@promptbook/core`
|
|
1852
|
+
*/
|
|
1853
|
+
class ConflictError extends Error {
|
|
1854
|
+
constructor(message) {
|
|
1855
|
+
super(message);
|
|
1856
|
+
this.name = 'ConflictError';
|
|
1857
|
+
Object.setPrototypeOf(this, ConflictError.prototype);
|
|
1858
|
+
}
|
|
1859
|
+
}
|
|
1860
|
+
|
|
1847
1861
|
/**
|
|
1848
1862
|
* This error indicates error from the database
|
|
1849
1863
|
*
|
|
@@ -2099,6 +2113,7 @@ const PROMPTBOOK_ERRORS = {
|
|
|
2099
2113
|
WrappedError,
|
|
2100
2114
|
NotAllowed,
|
|
2101
2115
|
DatabaseError,
|
|
2116
|
+
ConflictError,
|
|
2102
2117
|
// TODO: [🪑]> VersionMismatchError,
|
|
2103
2118
|
};
|
|
2104
2119
|
/**
|
|
@@ -2581,6 +2596,107 @@ function normalizeTo_snake_case(text) {
|
|
|
2581
2596
|
return normalizeTo_SCREAMING_CASE(text).toLowerCase();
|
|
2582
2597
|
}
|
|
2583
2598
|
|
|
2599
|
+
/**
|
|
2600
|
+
* Prompt parameter key used to pass hidden runtime context to tool execution.
|
|
2601
|
+
*
|
|
2602
|
+
* @private internal runtime wiring for commitment tools
|
|
2603
|
+
*/
|
|
2604
|
+
const TOOL_RUNTIME_CONTEXT_PARAMETER = 'promptbookToolRuntimeContext';
|
|
2605
|
+
/**
|
|
2606
|
+
* Hidden argument key used to pass runtime context into individual tool calls.
|
|
2607
|
+
*
|
|
2608
|
+
* @private internal runtime wiring for commitment tools
|
|
2609
|
+
*/
|
|
2610
|
+
const TOOL_RUNTIME_CONTEXT_ARGUMENT = '__promptbookToolRuntimeContext';
|
|
2611
|
+
/**
|
|
2612
|
+
* Prompt parameter key used to pass a hidden tool-progress listener token into script execution.
|
|
2613
|
+
*
|
|
2614
|
+
* @private internal runtime wiring for commitment tools
|
|
2615
|
+
*/
|
|
2616
|
+
const TOOL_PROGRESS_TOKEN_PARAMETER = 'promptbookToolProgressToken';
|
|
2617
|
+
/**
|
|
2618
|
+
* Hidden argument key used to pass a tool-progress listener token into individual tool calls.
|
|
2619
|
+
*
|
|
2620
|
+
* @private internal runtime wiring for commitment tools
|
|
2621
|
+
*/
|
|
2622
|
+
const TOOL_PROGRESS_TOKEN_ARGUMENT = '__promptbookToolProgressToken';
|
|
2623
|
+
/**
|
|
2624
|
+
* Monotonic counter used for hidden progress-listener tokens.
|
|
2625
|
+
*
|
|
2626
|
+
* @private internal runtime wiring for commitment tools
|
|
2627
|
+
*/
|
|
2628
|
+
let toolCallProgressListenerCounter = 0;
|
|
2629
|
+
/**
|
|
2630
|
+
* Active tool-progress listeners keyed by hidden execution token.
|
|
2631
|
+
*
|
|
2632
|
+
* @private internal runtime wiring for commitment tools
|
|
2633
|
+
*/
|
|
2634
|
+
const toolCallProgressListeners = new Map();
|
|
2635
|
+
/**
|
|
2636
|
+
* Registers one in-memory listener that receives progress updates emitted by a running tool.
|
|
2637
|
+
*
|
|
2638
|
+
* The returned token is passed into script execution as a hidden argument so tool implementations
|
|
2639
|
+
* can stream progress without exposing extra parameters to the model.
|
|
2640
|
+
*
|
|
2641
|
+
* @param listener - Listener notified about tool progress.
|
|
2642
|
+
* @returns Hidden token used to route progress updates.
|
|
2643
|
+
* @private internal runtime wiring for commitment tools
|
|
2644
|
+
*/
|
|
2645
|
+
function registerToolCallProgressListener(listener) {
|
|
2646
|
+
toolCallProgressListenerCounter += 1;
|
|
2647
|
+
const token = `tool-progress:${Date.now()}:${toolCallProgressListenerCounter}`;
|
|
2648
|
+
toolCallProgressListeners.set(token, listener);
|
|
2649
|
+
return token;
|
|
2650
|
+
}
|
|
2651
|
+
/**
|
|
2652
|
+
* Unregisters one in-memory progress listener.
|
|
2653
|
+
*
|
|
2654
|
+
* @param token - Token previously created by `registerToolCallProgressListener`.
|
|
2655
|
+
* @private internal runtime wiring for commitment tools
|
|
2656
|
+
*/
|
|
2657
|
+
function unregisterToolCallProgressListener(token) {
|
|
2658
|
+
toolCallProgressListeners.delete(token);
|
|
2659
|
+
}
|
|
2660
|
+
/**
|
|
2661
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
2662
|
+
*/
|
|
2663
|
+
|
|
2664
|
+
/**
|
|
2665
|
+
* Marker property stored inside serialized tool-execution envelopes.
|
|
2666
|
+
*
|
|
2667
|
+
* @private internal tool-execution transport
|
|
2668
|
+
*/
|
|
2669
|
+
const TOOL_EXECUTION_ENVELOPE_MARKER = '__promptbookToolExecutionEnvelope';
|
|
2670
|
+
/**
|
|
2671
|
+
* Parses one serialized tool-execution envelope when present.
|
|
2672
|
+
*
|
|
2673
|
+
* @private internal tool-execution transport
|
|
2674
|
+
*/
|
|
2675
|
+
function parseToolExecutionEnvelope(rawValue) {
|
|
2676
|
+
if (typeof rawValue !== 'string') {
|
|
2677
|
+
return null;
|
|
2678
|
+
}
|
|
2679
|
+
try {
|
|
2680
|
+
const parsedValue = JSON.parse(rawValue);
|
|
2681
|
+
if (!parsedValue ||
|
|
2682
|
+
typeof parsedValue !== 'object' ||
|
|
2683
|
+
parsedValue[TOOL_EXECUTION_ENVELOPE_MARKER] !== true ||
|
|
2684
|
+
typeof parsedValue.assistantMessage !== 'string') {
|
|
2685
|
+
return null;
|
|
2686
|
+
}
|
|
2687
|
+
return {
|
|
2688
|
+
assistantMessage: parsedValue.assistantMessage,
|
|
2689
|
+
toolResult: parsedValue.toolResult,
|
|
2690
|
+
};
|
|
2691
|
+
}
|
|
2692
|
+
catch (_a) {
|
|
2693
|
+
return null;
|
|
2694
|
+
}
|
|
2695
|
+
}
|
|
2696
|
+
/**
|
|
2697
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
2698
|
+
*/
|
|
2699
|
+
|
|
2584
2700
|
/**
|
|
2585
2701
|
* Represents the uncertain value
|
|
2586
2702
|
*
|
|
@@ -2600,6 +2716,7 @@ const UNCERTAIN_ZERO_VALUE = $deepFreeze({ value: 0, isUncertain: true });
|
|
|
2600
2716
|
*/
|
|
2601
2717
|
const ZERO_USAGE = $deepFreeze({
|
|
2602
2718
|
price: ZERO_VALUE,
|
|
2719
|
+
duration: ZERO_VALUE,
|
|
2603
2720
|
input: {
|
|
2604
2721
|
tokensCount: ZERO_VALUE,
|
|
2605
2722
|
charactersCount: ZERO_VALUE,
|
|
@@ -2626,6 +2743,7 @@ const ZERO_USAGE = $deepFreeze({
|
|
|
2626
2743
|
*/
|
|
2627
2744
|
const UNCERTAIN_USAGE = $deepFreeze({
|
|
2628
2745
|
price: UNCERTAIN_ZERO_VALUE,
|
|
2746
|
+
duration: UNCERTAIN_ZERO_VALUE,
|
|
2629
2747
|
input: {
|
|
2630
2748
|
tokensCount: UNCERTAIN_ZERO_VALUE,
|
|
2631
2749
|
charactersCount: UNCERTAIN_ZERO_VALUE,
|
|
@@ -2649,6 +2767,24 @@ const UNCERTAIN_USAGE = $deepFreeze({
|
|
|
2649
2767
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
2650
2768
|
*/
|
|
2651
2769
|
|
|
2770
|
+
/**
|
|
2771
|
+
* Make UncertainNumber
|
|
2772
|
+
*
|
|
2773
|
+
* @param value value of the uncertain number, if `NaN` or `undefined`, it will be set to 0 and `isUncertain=true`
|
|
2774
|
+
* @param isUncertain if `true`, the value is uncertain, otherwise depends on the value
|
|
2775
|
+
*
|
|
2776
|
+
* @private utility for initializating UncertainNumber
|
|
2777
|
+
*/
|
|
2778
|
+
function uncertainNumber(value, isUncertain) {
|
|
2779
|
+
if (value === null || value === undefined || Number.isNaN(value)) {
|
|
2780
|
+
return UNCERTAIN_ZERO_VALUE;
|
|
2781
|
+
}
|
|
2782
|
+
if (isUncertain === true) {
|
|
2783
|
+
return { value, isUncertain };
|
|
2784
|
+
}
|
|
2785
|
+
return { value };
|
|
2786
|
+
}
|
|
2787
|
+
|
|
2652
2788
|
/**
|
|
2653
2789
|
* Helper of usage compute
|
|
2654
2790
|
*
|
|
@@ -2668,24 +2804,6 @@ function computeUsageCounts(content) {
|
|
|
2668
2804
|
};
|
|
2669
2805
|
}
|
|
2670
2806
|
|
|
2671
|
-
/**
|
|
2672
|
-
* Make UncertainNumber
|
|
2673
|
-
*
|
|
2674
|
-
* @param value value of the uncertain number, if `NaN` or `undefined`, it will be set to 0 and `isUncertain=true`
|
|
2675
|
-
* @param isUncertain if `true`, the value is uncertain, otherwise depends on the value
|
|
2676
|
-
*
|
|
2677
|
-
* @private utility for initializating UncertainNumber
|
|
2678
|
-
*/
|
|
2679
|
-
function uncertainNumber(value, isUncertain) {
|
|
2680
|
-
if (value === null || value === undefined || Number.isNaN(value)) {
|
|
2681
|
-
return UNCERTAIN_ZERO_VALUE;
|
|
2682
|
-
}
|
|
2683
|
-
if (isUncertain === true) {
|
|
2684
|
-
return { value, isUncertain };
|
|
2685
|
-
}
|
|
2686
|
-
return { value };
|
|
2687
|
-
}
|
|
2688
|
-
|
|
2689
2807
|
/**
|
|
2690
2808
|
* Create price per one token based on the string value found on openai page
|
|
2691
2809
|
*
|
|
@@ -3377,11 +3495,12 @@ const OPENAI_MODELS = exportJson({
|
|
|
3377
3495
|
* @param promptContent The content of the prompt
|
|
3378
3496
|
* @param resultContent The content of the result (for embedding prompts or failed prompts pass empty string)
|
|
3379
3497
|
* @param rawResponse The raw response from OpenAI API
|
|
3498
|
+
* @param duration The duration of the execution
|
|
3380
3499
|
* @throws {PipelineExecutionError} If the usage is not defined in the response from OpenAI
|
|
3381
3500
|
* @private internal utility of `OpenAiExecutionTools`
|
|
3382
3501
|
*/
|
|
3383
3502
|
function computeOpenAiUsage(promptContent, // <- Note: Intentionally using [] to access type properties to bring jsdoc from Prompt/PromptResult to consumer
|
|
3384
|
-
resultContent, rawResponse) {
|
|
3503
|
+
resultContent, rawResponse, duration = ZERO_VALUE) {
|
|
3385
3504
|
var _a, _b;
|
|
3386
3505
|
if (rawResponse.usage === undefined) {
|
|
3387
3506
|
throw new PipelineExecutionError('The usage is not defined in the response from OpenAI');
|
|
@@ -3409,6 +3528,7 @@ resultContent, rawResponse) {
|
|
|
3409
3528
|
}
|
|
3410
3529
|
return {
|
|
3411
3530
|
price,
|
|
3531
|
+
duration,
|
|
3412
3532
|
input: {
|
|
3413
3533
|
tokensCount: uncertainNumber(rawResponse.usage.prompt_tokens),
|
|
3414
3534
|
...computeUsageCounts(promptContent),
|
|
@@ -3432,8 +3552,15 @@ resultContent, rawResponse) {
|
|
|
3432
3552
|
*/
|
|
3433
3553
|
function addUsage(...usageItems) {
|
|
3434
3554
|
return usageItems.reduce((acc, item) => {
|
|
3435
|
-
var _a;
|
|
3555
|
+
var _a, _b, _c, _d;
|
|
3436
3556
|
acc.price.value += ((_a = item.price) === null || _a === void 0 ? void 0 : _a.value) || 0;
|
|
3557
|
+
if ((_b = item.price) === null || _b === void 0 ? void 0 : _b.isUncertain) {
|
|
3558
|
+
acc.price.isUncertain = true;
|
|
3559
|
+
}
|
|
3560
|
+
acc.duration.value += ((_c = item.duration) === null || _c === void 0 ? void 0 : _c.value) || 0;
|
|
3561
|
+
if ((_d = item.duration) === null || _d === void 0 ? void 0 : _d.isUncertain) {
|
|
3562
|
+
acc.duration.isUncertain = true;
|
|
3563
|
+
}
|
|
3437
3564
|
for (const key of Object.keys(acc.input)) {
|
|
3438
3565
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3439
3566
|
//@ts-ignore
|
|
@@ -3486,22 +3613,6 @@ function mapToolsToOpenAi(tools) {
|
|
|
3486
3613
|
}));
|
|
3487
3614
|
}
|
|
3488
3615
|
|
|
3489
|
-
/**
|
|
3490
|
-
* Prompt parameter key used to pass hidden runtime context to tool execution.
|
|
3491
|
-
*
|
|
3492
|
-
* @private internal runtime wiring for commitment tools
|
|
3493
|
-
*/
|
|
3494
|
-
const TOOL_RUNTIME_CONTEXT_PARAMETER = 'promptbookToolRuntimeContext';
|
|
3495
|
-
/**
|
|
3496
|
-
* Hidden argument key used to pass runtime context into individual tool calls.
|
|
3497
|
-
*
|
|
3498
|
-
* @private internal runtime wiring for commitment tools
|
|
3499
|
-
*/
|
|
3500
|
-
const TOOL_RUNTIME_CONTEXT_ARGUMENT = '__promptbookToolRuntimeContext';
|
|
3501
|
-
/**
|
|
3502
|
-
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
3503
|
-
*/
|
|
3504
|
-
|
|
3505
3616
|
/**
|
|
3506
3617
|
* Builds a tool invocation script that injects hidden runtime context into tool args.
|
|
3507
3618
|
*
|
|
@@ -3520,6 +3631,15 @@ function buildToolInvocationScript(options) {
|
|
|
3520
3631
|
args.${TOOL_RUNTIME_CONTEXT_ARGUMENT} = runtimeContextRaw;
|
|
3521
3632
|
}
|
|
3522
3633
|
|
|
3634
|
+
const toolProgressTokenRaw =
|
|
3635
|
+
typeof ${TOOL_PROGRESS_TOKEN_PARAMETER} === 'undefined'
|
|
3636
|
+
? undefined
|
|
3637
|
+
: ${TOOL_PROGRESS_TOKEN_PARAMETER};
|
|
3638
|
+
|
|
3639
|
+
if (toolProgressTokenRaw !== undefined && args && typeof args === 'object' && !Array.isArray(args)) {
|
|
3640
|
+
args.${TOOL_PROGRESS_TOKEN_ARGUMENT} = toolProgressTokenRaw;
|
|
3641
|
+
}
|
|
3642
|
+
|
|
3523
3643
|
return await ${functionName}(args);
|
|
3524
3644
|
`;
|
|
3525
3645
|
}
|
|
@@ -3606,6 +3726,42 @@ function clonePromptPreservingFiles(prompt) {
|
|
|
3606
3726
|
}
|
|
3607
3727
|
return clonedPrompt;
|
|
3608
3728
|
}
|
|
3729
|
+
/**
|
|
3730
|
+
* Creates one structured log entry for streamed tool-call updates.
|
|
3731
|
+
*/
|
|
3732
|
+
function createToolCallLogEntry$2(options) {
|
|
3733
|
+
return {
|
|
3734
|
+
createdAt: $getCurrentDate(),
|
|
3735
|
+
kind: options.kind,
|
|
3736
|
+
level: options.level,
|
|
3737
|
+
title: options.title,
|
|
3738
|
+
message: options.message,
|
|
3739
|
+
payload: options.payload,
|
|
3740
|
+
};
|
|
3741
|
+
}
|
|
3742
|
+
/**
|
|
3743
|
+
* Appends one incremental progress update to the currently tracked tool-call snapshot.
|
|
3744
|
+
*/
|
|
3745
|
+
function applyToolCallProgressUpdate$2(toolCall, update) {
|
|
3746
|
+
var _a;
|
|
3747
|
+
return {
|
|
3748
|
+
...toolCall,
|
|
3749
|
+
state: (_a = update.state) !== null && _a !== void 0 ? _a : 'PARTIAL',
|
|
3750
|
+
logs: update.log ? [...(toolCall.logs || []), update.log] : toolCall.logs,
|
|
3751
|
+
};
|
|
3752
|
+
}
|
|
3753
|
+
/**
|
|
3754
|
+
* Resolves the final lifecycle state for one tool call after execution ends.
|
|
3755
|
+
*/
|
|
3756
|
+
function resolveFinalToolCallState$2(options) {
|
|
3757
|
+
if (options.errors && options.errors.length > 0) {
|
|
3758
|
+
return 'ERROR';
|
|
3759
|
+
}
|
|
3760
|
+
if (options.currentState === 'ERROR') {
|
|
3761
|
+
return 'ERROR';
|
|
3762
|
+
}
|
|
3763
|
+
return 'COMPLETE';
|
|
3764
|
+
}
|
|
3609
3765
|
/**
|
|
3610
3766
|
* Execution Tools for calling OpenAI API or other OpenAI compatible provider
|
|
3611
3767
|
*
|
|
@@ -3688,17 +3844,17 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3688
3844
|
/**
|
|
3689
3845
|
* Calls OpenAI compatible API to use a chat model with streaming.
|
|
3690
3846
|
*/
|
|
3691
|
-
async callChatModelStream(prompt, onProgress) {
|
|
3847
|
+
async callChatModelStream(prompt, onProgress, options) {
|
|
3692
3848
|
// Deep clone prompt and modelRequirements to avoid mutation across calls
|
|
3693
3849
|
const clonedPrompt = clonePromptPreservingFiles(prompt);
|
|
3694
3850
|
// Use local Set for retried parameters to ensure independence and thread safety
|
|
3695
3851
|
const retriedUnsupportedParameters = new Set();
|
|
3696
|
-
return this.callChatModelWithRetry(clonedPrompt, clonedPrompt.modelRequirements, [], retriedUnsupportedParameters, onProgress);
|
|
3852
|
+
return this.callChatModelWithRetry(clonedPrompt, clonedPrompt.modelRequirements, [], retriedUnsupportedParameters, onProgress, options);
|
|
3697
3853
|
}
|
|
3698
3854
|
/**
|
|
3699
3855
|
* Internal method that handles parameter retry for chat model calls
|
|
3700
3856
|
*/
|
|
3701
|
-
async callChatModelWithRetry(prompt, currentModelRequirements, attemptStack = [], retriedUnsupportedParameters = new Set(), onProgress) {
|
|
3857
|
+
async callChatModelWithRetry(prompt, currentModelRequirements, attemptStack = [], retriedUnsupportedParameters = new Set(), onProgress, options) {
|
|
3702
3858
|
var _a;
|
|
3703
3859
|
if (this.options.isVerbose) {
|
|
3704
3860
|
console.info(`💬 ${this.title} callChatModel call`, { prompt, currentModelRequirements });
|
|
@@ -3777,6 +3933,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3777
3933
|
}
|
|
3778
3934
|
let totalUsage = {
|
|
3779
3935
|
price: uncertainNumber(0),
|
|
3936
|
+
duration: uncertainNumber(0),
|
|
3780
3937
|
input: {
|
|
3781
3938
|
tokensCount: uncertainNumber(0),
|
|
3782
3939
|
charactersCount: uncertainNumber(0),
|
|
@@ -3811,6 +3968,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3811
3968
|
console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
3812
3969
|
}
|
|
3813
3970
|
try {
|
|
3971
|
+
const turnStart = $getCurrentDate();
|
|
3814
3972
|
const rawResponse = await this.limiter
|
|
3815
3973
|
.schedule(() => this.makeRequestWithNetworkRetry(() => client.chat.completions.create(rawRequest)))
|
|
3816
3974
|
.catch((error) => {
|
|
@@ -3820,6 +3978,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3820
3978
|
}
|
|
3821
3979
|
throw error;
|
|
3822
3980
|
});
|
|
3981
|
+
const turnComplete = $getCurrentDate();
|
|
3823
3982
|
if (this.options.isVerbose) {
|
|
3824
3983
|
console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
3825
3984
|
}
|
|
@@ -3828,7 +3987,8 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3828
3987
|
}
|
|
3829
3988
|
const responseMessage = rawResponse.choices[0].message;
|
|
3830
3989
|
messages.push(responseMessage);
|
|
3831
|
-
const
|
|
3990
|
+
const duration = uncertainNumber((new Date(turnComplete).getTime() - new Date(turnStart).getTime()) / 1000);
|
|
3991
|
+
const usage = this.computeUsage(content || '', responseMessage.content || '', rawResponse, duration);
|
|
3832
3992
|
totalUsage = addUsage(totalUsage, usage);
|
|
3833
3993
|
if (responseMessage.tool_calls && responseMessage.tool_calls.length > 0) {
|
|
3834
3994
|
const toolCallStartedAt = new Map();
|
|
@@ -3836,7 +3996,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3836
3996
|
onProgress({
|
|
3837
3997
|
content: responseMessage.content || '',
|
|
3838
3998
|
modelName: rawResponse.model || modelName,
|
|
3839
|
-
timing: { start, complete:
|
|
3999
|
+
timing: { start, complete: turnComplete },
|
|
3840
4000
|
usage: totalUsage,
|
|
3841
4001
|
toolCalls: responseMessage.tool_calls.map((toolCall) => {
|
|
3842
4002
|
const calledAt = $getCurrentDate();
|
|
@@ -3849,6 +4009,17 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3849
4009
|
result: '',
|
|
3850
4010
|
rawToolCall: toolCall,
|
|
3851
4011
|
createdAt: calledAt,
|
|
4012
|
+
state: 'PENDING',
|
|
4013
|
+
logs: [
|
|
4014
|
+
createToolCallLogEntry$2({
|
|
4015
|
+
kind: 'request',
|
|
4016
|
+
title: 'Request prepared',
|
|
4017
|
+
message: `Prepared ${String(toolCall.function.name)} request.`,
|
|
4018
|
+
payload: {
|
|
4019
|
+
arguments: toolCall.function.arguments,
|
|
4020
|
+
},
|
|
4021
|
+
}),
|
|
4022
|
+
],
|
|
3852
4023
|
};
|
|
3853
4024
|
}),
|
|
3854
4025
|
rawPromptContent,
|
|
@@ -3862,6 +4033,24 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3862
4033
|
const calledAt = toolCall.id
|
|
3863
4034
|
? toolCallStartedAt.get(toolCall.id) || $getCurrentDate()
|
|
3864
4035
|
: $getCurrentDate();
|
|
4036
|
+
let currentToolCallSnapshot = {
|
|
4037
|
+
name: functionName,
|
|
4038
|
+
arguments: functionArgs,
|
|
4039
|
+
result: '',
|
|
4040
|
+
rawToolCall: toolCall,
|
|
4041
|
+
createdAt: calledAt,
|
|
4042
|
+
state: 'PENDING',
|
|
4043
|
+
logs: [
|
|
4044
|
+
createToolCallLogEntry$2({
|
|
4045
|
+
kind: 'request',
|
|
4046
|
+
title: 'Request prepared',
|
|
4047
|
+
message: `Prepared ${functionName} request.`,
|
|
4048
|
+
payload: {
|
|
4049
|
+
arguments: functionArgs,
|
|
4050
|
+
},
|
|
4051
|
+
}),
|
|
4052
|
+
],
|
|
4053
|
+
};
|
|
3865
4054
|
const executionTools = this.options
|
|
3866
4055
|
.executionTools;
|
|
3867
4056
|
if (!executionTools || !executionTools.script) {
|
|
@@ -3872,36 +4061,98 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3872
4061
|
? executionTools.script
|
|
3873
4062
|
: [executionTools.script];
|
|
3874
4063
|
let functionResponse;
|
|
4064
|
+
let assistantVisibleFunctionResponse;
|
|
4065
|
+
let toolResult;
|
|
3875
4066
|
let errors;
|
|
3876
4067
|
try {
|
|
3877
4068
|
const scriptTool = scriptTools[0]; // <- TODO: [🧠] Which script tool to use?
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
4069
|
+
const progressListenerToken = registerToolCallProgressListener((update) => {
|
|
4070
|
+
currentToolCallSnapshot = applyToolCallProgressUpdate$2(currentToolCallSnapshot, update);
|
|
4071
|
+
if (!onProgress) {
|
|
4072
|
+
return;
|
|
4073
|
+
}
|
|
4074
|
+
onProgress({
|
|
4075
|
+
content: responseMessage.content || '',
|
|
4076
|
+
modelName: rawResponse.model || modelName,
|
|
4077
|
+
timing: { start, complete: $getCurrentDate() },
|
|
4078
|
+
usage: totalUsage,
|
|
4079
|
+
toolCalls: [currentToolCallSnapshot],
|
|
4080
|
+
rawPromptContent,
|
|
4081
|
+
rawRequest,
|
|
4082
|
+
rawResponse,
|
|
4083
|
+
});
|
|
3885
4084
|
});
|
|
4085
|
+
try {
|
|
4086
|
+
functionResponse = await scriptTool.execute({
|
|
4087
|
+
scriptLanguage: 'javascript',
|
|
4088
|
+
script: buildToolInvocationScript({
|
|
4089
|
+
functionName,
|
|
4090
|
+
functionArgsExpression: functionArgs,
|
|
4091
|
+
}),
|
|
4092
|
+
parameters: {
|
|
4093
|
+
...prompt.parameters,
|
|
4094
|
+
[TOOL_PROGRESS_TOKEN_PARAMETER]: progressListenerToken,
|
|
4095
|
+
},
|
|
4096
|
+
});
|
|
4097
|
+
}
|
|
4098
|
+
finally {
|
|
4099
|
+
unregisterToolCallProgressListener(progressListenerToken);
|
|
4100
|
+
}
|
|
4101
|
+
const toolExecutionEnvelope = parseToolExecutionEnvelope(functionResponse);
|
|
4102
|
+
assistantVisibleFunctionResponse =
|
|
4103
|
+
(toolExecutionEnvelope === null || toolExecutionEnvelope === void 0 ? void 0 : toolExecutionEnvelope.assistantMessage) || functionResponse;
|
|
4104
|
+
toolResult =
|
|
4105
|
+
toolExecutionEnvelope !== null && toolExecutionEnvelope !== undefined
|
|
4106
|
+
? toolExecutionEnvelope.toolResult
|
|
4107
|
+
: functionResponse;
|
|
3886
4108
|
}
|
|
3887
4109
|
catch (error) {
|
|
3888
4110
|
assertsError(error);
|
|
3889
4111
|
functionResponse = `Error: ${error.message}`;
|
|
4112
|
+
assistantVisibleFunctionResponse = functionResponse;
|
|
4113
|
+
toolResult = functionResponse;
|
|
3890
4114
|
errors = [serializeError(error)];
|
|
3891
4115
|
}
|
|
3892
4116
|
messages.push({
|
|
3893
4117
|
role: 'tool',
|
|
3894
4118
|
tool_call_id: toolCall.id,
|
|
3895
|
-
content:
|
|
4119
|
+
content: assistantVisibleFunctionResponse,
|
|
3896
4120
|
});
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
result: functionResponse,
|
|
4121
|
+
const completedToolCall = {
|
|
4122
|
+
...currentToolCallSnapshot,
|
|
4123
|
+
result: toolResult,
|
|
3901
4124
|
rawToolCall: toolCall,
|
|
3902
4125
|
createdAt: calledAt,
|
|
3903
4126
|
errors,
|
|
3904
|
-
|
|
4127
|
+
state: resolveFinalToolCallState$2({
|
|
4128
|
+
currentState: currentToolCallSnapshot.state,
|
|
4129
|
+
errors,
|
|
4130
|
+
}),
|
|
4131
|
+
logs: [
|
|
4132
|
+
...(currentToolCallSnapshot.logs || []),
|
|
4133
|
+
createToolCallLogEntry$2({
|
|
4134
|
+
kind: errors && errors.length > 0 ? 'error' : 'result',
|
|
4135
|
+
level: errors && errors.length > 0 ? 'error' : 'info',
|
|
4136
|
+
title: errors && errors.length > 0 ? 'Execution failed' : 'Execution finished',
|
|
4137
|
+
message: errors && errors.length > 0
|
|
4138
|
+
? `${functionName} failed before returning a final result.`
|
|
4139
|
+
: `${functionName} returned a result.`,
|
|
4140
|
+
}),
|
|
4141
|
+
],
|
|
4142
|
+
};
|
|
4143
|
+
toolCalls.push(completedToolCall);
|
|
4144
|
+
if (onProgress) {
|
|
4145
|
+
onProgress({
|
|
4146
|
+
content: responseMessage.content || '',
|
|
4147
|
+
modelName: rawResponse.model || modelName,
|
|
4148
|
+
timing: { start, complete: $getCurrentDate() },
|
|
4149
|
+
usage: totalUsage,
|
|
4150
|
+
toolCalls: [completedToolCall],
|
|
4151
|
+
rawPromptContent,
|
|
4152
|
+
rawRequest,
|
|
4153
|
+
rawResponse,
|
|
4154
|
+
});
|
|
4155
|
+
}
|
|
3905
4156
|
});
|
|
3906
4157
|
continue;
|
|
3907
4158
|
}
|
|
@@ -3990,7 +4241,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
3990
4241
|
});
|
|
3991
4242
|
// Remove the unsupported parameter and retry
|
|
3992
4243
|
const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
|
|
3993
|
-
return this.callChatModelWithRetry(prompt, modifiedModelRequirements, attemptStack, retriedUnsupportedParameters, onProgress);
|
|
4244
|
+
return this.callChatModelWithRetry(prompt, modifiedModelRequirements, attemptStack, retriedUnsupportedParameters, onProgress, options);
|
|
3994
4245
|
}
|
|
3995
4246
|
}
|
|
3996
4247
|
throw new PipelineExecutionError(`Tool calling loop did not return a result from ${this.title}`);
|
|
@@ -4036,6 +4287,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4036
4287
|
console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
4037
4288
|
}
|
|
4038
4289
|
try {
|
|
4290
|
+
const turnStart = $getCurrentDate();
|
|
4039
4291
|
const rawResponse = await this.limiter
|
|
4040
4292
|
.schedule(() => this.makeRequestWithNetworkRetry(() => client.completions.create(rawRequest)))
|
|
4041
4293
|
.catch((error) => {
|
|
@@ -4045,10 +4297,10 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4045
4297
|
}
|
|
4046
4298
|
throw error;
|
|
4047
4299
|
});
|
|
4300
|
+
const turnComplete = $getCurrentDate();
|
|
4048
4301
|
if (this.options.isVerbose) {
|
|
4049
4302
|
console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
4050
4303
|
}
|
|
4051
|
-
const complete = $getCurrentDate();
|
|
4052
4304
|
if (!rawResponse.choices[0]) {
|
|
4053
4305
|
throw new PipelineExecutionError(`No choises from ${this.title}`);
|
|
4054
4306
|
}
|
|
@@ -4056,7 +4308,8 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4056
4308
|
throw new PipelineExecutionError(`More than one choise from ${this.title}`);
|
|
4057
4309
|
}
|
|
4058
4310
|
const resultContent = rawResponse.choices[0].text;
|
|
4059
|
-
const
|
|
4311
|
+
const duration = uncertainNumber((new Date(turnComplete).getTime() - new Date(turnStart).getTime()) / 1000);
|
|
4312
|
+
const usage = this.computeUsage(content || '', resultContent || '', rawResponse, duration);
|
|
4060
4313
|
return exportJson({
|
|
4061
4314
|
name: 'promptResult',
|
|
4062
4315
|
message: `Result of \`OpenAiCompatibleExecutionTools.callCompletionModel\``,
|
|
@@ -4066,7 +4319,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4066
4319
|
modelName: rawResponse.model || modelName,
|
|
4067
4320
|
timing: {
|
|
4068
4321
|
start,
|
|
4069
|
-
complete,
|
|
4322
|
+
complete: turnComplete,
|
|
4070
4323
|
},
|
|
4071
4324
|
usage,
|
|
4072
4325
|
rawPromptContent,
|
|
@@ -4160,6 +4413,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4160
4413
|
console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
4161
4414
|
}
|
|
4162
4415
|
try {
|
|
4416
|
+
const turnStart = $getCurrentDate();
|
|
4163
4417
|
const rawResponse = await this.limiter
|
|
4164
4418
|
.schedule(() => this.makeRequestWithNetworkRetry(() => client.embeddings.create(rawRequest)))
|
|
4165
4419
|
.catch((error) => {
|
|
@@ -4169,15 +4423,16 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4169
4423
|
}
|
|
4170
4424
|
throw error;
|
|
4171
4425
|
});
|
|
4426
|
+
const turnComplete = $getCurrentDate();
|
|
4172
4427
|
if (this.options.isVerbose) {
|
|
4173
4428
|
console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
4174
4429
|
}
|
|
4175
|
-
const complete = $getCurrentDate();
|
|
4176
4430
|
if (rawResponse.data.length !== 1) {
|
|
4177
4431
|
throw new PipelineExecutionError(`Expected exactly 1 data item in response, got ${rawResponse.data.length}`);
|
|
4178
4432
|
}
|
|
4179
4433
|
const resultContent = rawResponse.data[0].embedding;
|
|
4180
|
-
const
|
|
4434
|
+
const duration = uncertainNumber((new Date(turnComplete).getTime() - new Date(turnStart).getTime()) / 1000);
|
|
4435
|
+
const usage = this.computeUsage(content || '', '', rawResponse, duration);
|
|
4181
4436
|
return exportJson({
|
|
4182
4437
|
name: 'promptResult',
|
|
4183
4438
|
message: `Result of \`OpenAiCompatibleExecutionTools.callEmbeddingModel\``,
|
|
@@ -4187,7 +4442,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4187
4442
|
modelName: rawResponse.model || modelName,
|
|
4188
4443
|
timing: {
|
|
4189
4444
|
start,
|
|
4190
|
-
complete,
|
|
4445
|
+
complete: turnComplete,
|
|
4191
4446
|
},
|
|
4192
4447
|
usage,
|
|
4193
4448
|
rawPromptContent,
|
|
@@ -4297,6 +4552,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4297
4552
|
console.info(colors.bgWhite('rawRequest'), JSON.stringify(rawRequest, null, 4));
|
|
4298
4553
|
}
|
|
4299
4554
|
try {
|
|
4555
|
+
const turnStart = $getCurrentDate();
|
|
4300
4556
|
const rawResponse = await this.limiter
|
|
4301
4557
|
.schedule(() => this.makeRequestWithNetworkRetry(() => client.images.generate(rawRequest)))
|
|
4302
4558
|
.catch((error) => {
|
|
@@ -4306,10 +4562,10 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4306
4562
|
}
|
|
4307
4563
|
throw error;
|
|
4308
4564
|
});
|
|
4565
|
+
const turnComplete = $getCurrentDate();
|
|
4309
4566
|
if (this.options.isVerbose) {
|
|
4310
4567
|
console.info(colors.bgWhite('rawResponse'), JSON.stringify(rawResponse, null, 4));
|
|
4311
4568
|
}
|
|
4312
|
-
const complete = $getCurrentDate();
|
|
4313
4569
|
if (!rawResponse.data[0]) {
|
|
4314
4570
|
throw new PipelineExecutionError(`No choises from ${this.title}`);
|
|
4315
4571
|
}
|
|
@@ -4319,6 +4575,7 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4319
4575
|
const resultContent = rawResponse.data[0].url;
|
|
4320
4576
|
const modelInfo = this.HARDCODED_MODELS.find((model) => model.modelName === modelName);
|
|
4321
4577
|
const price = ((_b = modelInfo === null || modelInfo === void 0 ? void 0 : modelInfo.pricing) === null || _b === void 0 ? void 0 : _b.output) ? uncertainNumber(modelInfo.pricing.output) : uncertainNumber();
|
|
4578
|
+
const duration = uncertainNumber((new Date(turnComplete).getTime() - new Date(turnStart).getTime()) / 1000);
|
|
4322
4579
|
return exportJson({
|
|
4323
4580
|
name: 'promptResult',
|
|
4324
4581
|
message: `Result of \`OpenAiCompatibleExecutionTools.callImageGenerationModel\``,
|
|
@@ -4328,10 +4585,11 @@ class OpenAiCompatibleExecutionTools {
|
|
|
4328
4585
|
modelName: modelName,
|
|
4329
4586
|
timing: {
|
|
4330
4587
|
start,
|
|
4331
|
-
complete,
|
|
4588
|
+
complete: turnComplete,
|
|
4332
4589
|
},
|
|
4333
4590
|
usage: {
|
|
4334
4591
|
price,
|
|
4592
|
+
duration,
|
|
4335
4593
|
input: {
|
|
4336
4594
|
tokensCount: uncertainNumber(0),
|
|
4337
4595
|
...computeUsageCounts(rawPromptContent),
|
|
@@ -5426,6 +5684,48 @@ async function uploadFilesToOpenAi(client, files) {
|
|
|
5426
5684
|
return fileIds;
|
|
5427
5685
|
}
|
|
5428
5686
|
|
|
5687
|
+
/**
|
|
5688
|
+
* Creates one structured log entry for streamed tool-call updates.
|
|
5689
|
+
*
|
|
5690
|
+
* @private helper of `OpenAiAssistantExecutionTools`
|
|
5691
|
+
*/
|
|
5692
|
+
function createToolCallLogEntry$1(options) {
|
|
5693
|
+
return {
|
|
5694
|
+
createdAt: $getCurrentDate(),
|
|
5695
|
+
kind: options.kind,
|
|
5696
|
+
level: options.level,
|
|
5697
|
+
title: options.title,
|
|
5698
|
+
message: options.message,
|
|
5699
|
+
payload: options.payload,
|
|
5700
|
+
};
|
|
5701
|
+
}
|
|
5702
|
+
/**
|
|
5703
|
+
* Appends one incremental progress update to the currently tracked tool-call snapshot.
|
|
5704
|
+
*
|
|
5705
|
+
* @private helper of `OpenAiAssistantExecutionTools`
|
|
5706
|
+
*/
|
|
5707
|
+
function applyToolCallProgressUpdate$1(toolCall, update) {
|
|
5708
|
+
var _a;
|
|
5709
|
+
return {
|
|
5710
|
+
...toolCall,
|
|
5711
|
+
state: (_a = update.state) !== null && _a !== void 0 ? _a : 'PARTIAL',
|
|
5712
|
+
logs: update.log ? [...(toolCall.logs || []), update.log] : toolCall.logs,
|
|
5713
|
+
};
|
|
5714
|
+
}
|
|
5715
|
+
/**
|
|
5716
|
+
* Resolves the final lifecycle state for one tool call after execution ends.
|
|
5717
|
+
*
|
|
5718
|
+
* @private helper of `OpenAiAssistantExecutionTools`
|
|
5719
|
+
*/
|
|
5720
|
+
function resolveFinalToolCallState$1(options) {
|
|
5721
|
+
if (options.errors && options.errors.length > 0) {
|
|
5722
|
+
return 'ERROR';
|
|
5723
|
+
}
|
|
5724
|
+
if (options.currentState === 'ERROR') {
|
|
5725
|
+
return 'ERROR';
|
|
5726
|
+
}
|
|
5727
|
+
return 'COMPLETE';
|
|
5728
|
+
}
|
|
5429
5729
|
/**
|
|
5430
5730
|
* Execution Tools for calling OpenAI API Assistants
|
|
5431
5731
|
*
|
|
@@ -5477,7 +5777,7 @@ class OpenAiAssistantExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
5477
5777
|
/**
|
|
5478
5778
|
* Calls OpenAI API to use a chat model with streaming.
|
|
5479
5779
|
*/
|
|
5480
|
-
async callChatModelStream(prompt, onProgress) {
|
|
5780
|
+
async callChatModelStream(prompt, onProgress, options) {
|
|
5481
5781
|
var _a, _b, _c, _d, _e, _f;
|
|
5482
5782
|
if (this.options.isVerbose) {
|
|
5483
5783
|
console.info('💬 OpenAI callChatModel call', { prompt });
|
|
@@ -5602,6 +5902,17 @@ class OpenAiAssistantExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
5602
5902
|
result: '',
|
|
5603
5903
|
rawToolCall: toolCall,
|
|
5604
5904
|
createdAt: calledAt,
|
|
5905
|
+
state: 'PENDING',
|
|
5906
|
+
logs: [
|
|
5907
|
+
createToolCallLogEntry$1({
|
|
5908
|
+
kind: 'request',
|
|
5909
|
+
title: 'Request prepared',
|
|
5910
|
+
message: `Prepared ${functionName} request.`,
|
|
5911
|
+
payload: {
|
|
5912
|
+
arguments: toolCall.function.arguments,
|
|
5913
|
+
},
|
|
5914
|
+
}),
|
|
5915
|
+
],
|
|
5605
5916
|
},
|
|
5606
5917
|
],
|
|
5607
5918
|
});
|
|
@@ -5619,19 +5930,67 @@ class OpenAiAssistantExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
5619
5930
|
? executionTools.script
|
|
5620
5931
|
: [executionTools.script];
|
|
5621
5932
|
let functionResponse;
|
|
5933
|
+
let assistantVisibleFunctionResponse;
|
|
5934
|
+
let toolResult;
|
|
5622
5935
|
let errors;
|
|
5936
|
+
let currentToolCallSnapshot = {
|
|
5937
|
+
name: functionName,
|
|
5938
|
+
arguments: toolCall.function.arguments,
|
|
5939
|
+
result: '',
|
|
5940
|
+
rawToolCall: toolCall,
|
|
5941
|
+
createdAt: calledAt,
|
|
5942
|
+
state: 'PENDING',
|
|
5943
|
+
logs: [
|
|
5944
|
+
createToolCallLogEntry$1({
|
|
5945
|
+
kind: 'request',
|
|
5946
|
+
title: 'Request prepared',
|
|
5947
|
+
message: `Prepared ${functionName} request.`,
|
|
5948
|
+
payload: {
|
|
5949
|
+
arguments: toolCall.function.arguments,
|
|
5950
|
+
},
|
|
5951
|
+
}),
|
|
5952
|
+
],
|
|
5953
|
+
};
|
|
5623
5954
|
try {
|
|
5624
5955
|
const scriptTool = scriptTools[0]; // <- TODO: [🧠] Which script tool to use?
|
|
5625
|
-
|
|
5626
|
-
|
|
5627
|
-
|
|
5628
|
-
|
|
5629
|
-
|
|
5630
|
-
|
|
5631
|
-
|
|
5956
|
+
const progressListenerToken = registerToolCallProgressListener((update) => {
|
|
5957
|
+
currentToolCallSnapshot = applyToolCallProgressUpdate$1(currentToolCallSnapshot, update);
|
|
5958
|
+
onProgress({
|
|
5959
|
+
content: '',
|
|
5960
|
+
modelName: 'assistant',
|
|
5961
|
+
timing: { start, complete: $getCurrentDate() },
|
|
5962
|
+
usage: UNCERTAIN_USAGE,
|
|
5963
|
+
rawPromptContent,
|
|
5964
|
+
rawRequest: null,
|
|
5965
|
+
rawResponse: null,
|
|
5966
|
+
toolCalls: [currentToolCallSnapshot],
|
|
5967
|
+
});
|
|
5632
5968
|
});
|
|
5969
|
+
try {
|
|
5970
|
+
functionResponse = await scriptTool.execute({
|
|
5971
|
+
scriptLanguage: 'javascript',
|
|
5972
|
+
script: buildToolInvocationScript({
|
|
5973
|
+
functionName,
|
|
5974
|
+
functionArgsExpression: JSON.stringify(functionArgs),
|
|
5975
|
+
}),
|
|
5976
|
+
parameters: {
|
|
5977
|
+
...prompt.parameters,
|
|
5978
|
+
[TOOL_PROGRESS_TOKEN_PARAMETER]: progressListenerToken,
|
|
5979
|
+
},
|
|
5980
|
+
});
|
|
5981
|
+
}
|
|
5982
|
+
finally {
|
|
5983
|
+
unregisterToolCallProgressListener(progressListenerToken);
|
|
5984
|
+
}
|
|
5985
|
+
const toolExecutionEnvelope = parseToolExecutionEnvelope(functionResponse);
|
|
5986
|
+
assistantVisibleFunctionResponse =
|
|
5987
|
+
(toolExecutionEnvelope === null || toolExecutionEnvelope === void 0 ? void 0 : toolExecutionEnvelope.assistantMessage) || functionResponse;
|
|
5988
|
+
toolResult =
|
|
5989
|
+
toolExecutionEnvelope !== null && toolExecutionEnvelope !== undefined
|
|
5990
|
+
? toolExecutionEnvelope.toolResult
|
|
5991
|
+
: functionResponse;
|
|
5633
5992
|
if (this.options.isVerbose) {
|
|
5634
|
-
console.info(`✅ Tool ${functionName} executed:`,
|
|
5993
|
+
console.info(`✅ Tool ${functionName} executed:`, assistantVisibleFunctionResponse);
|
|
5635
5994
|
}
|
|
5636
5995
|
}
|
|
5637
5996
|
catch (error) {
|
|
@@ -5647,20 +6006,46 @@ class OpenAiAssistantExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
5647
6006
|
\`\`\`
|
|
5648
6007
|
|
|
5649
6008
|
`);
|
|
6009
|
+
assistantVisibleFunctionResponse = functionResponse;
|
|
6010
|
+
toolResult = functionResponse;
|
|
5650
6011
|
console.error(colors.bgRed(`❌ Error executing tool ${functionName}:`));
|
|
5651
6012
|
console.error(error);
|
|
5652
6013
|
}
|
|
5653
6014
|
toolOutputs.push({
|
|
5654
6015
|
tool_call_id: toolCall.id,
|
|
5655
|
-
output:
|
|
6016
|
+
output: assistantVisibleFunctionResponse,
|
|
5656
6017
|
});
|
|
5657
6018
|
completedToolCalls.push({
|
|
5658
|
-
|
|
5659
|
-
|
|
5660
|
-
result: functionResponse,
|
|
6019
|
+
...currentToolCallSnapshot,
|
|
6020
|
+
result: toolResult,
|
|
5661
6021
|
rawToolCall: toolCall,
|
|
5662
6022
|
createdAt: toolCall.id ? toolCallStartedAt.get(toolCall.id) || calledAt : calledAt,
|
|
5663
6023
|
errors,
|
|
6024
|
+
state: resolveFinalToolCallState$1({
|
|
6025
|
+
currentState: currentToolCallSnapshot.state,
|
|
6026
|
+
errors,
|
|
6027
|
+
}),
|
|
6028
|
+
logs: [
|
|
6029
|
+
...(currentToolCallSnapshot.logs || []),
|
|
6030
|
+
createToolCallLogEntry$1({
|
|
6031
|
+
kind: errors && errors.length > 0 ? 'error' : 'result',
|
|
6032
|
+
level: errors && errors.length > 0 ? 'error' : 'info',
|
|
6033
|
+
title: errors && errors.length > 0 ? 'Execution failed' : 'Execution finished',
|
|
6034
|
+
message: errors && errors.length > 0
|
|
6035
|
+
? `${functionName} failed before returning a final result.`
|
|
6036
|
+
: `${functionName} returned a result.`,
|
|
6037
|
+
}),
|
|
6038
|
+
],
|
|
6039
|
+
});
|
|
6040
|
+
onProgress({
|
|
6041
|
+
content: '',
|
|
6042
|
+
modelName: 'assistant',
|
|
6043
|
+
timing: { start, complete: $getCurrentDate() },
|
|
6044
|
+
usage: UNCERTAIN_USAGE,
|
|
6045
|
+
rawPromptContent,
|
|
6046
|
+
rawRequest: null,
|
|
6047
|
+
rawResponse: null,
|
|
6048
|
+
toolCalls: [completedToolCalls[completedToolCalls.length - 1]],
|
|
5664
6049
|
});
|
|
5665
6050
|
}
|
|
5666
6051
|
}
|
|
@@ -5690,8 +6075,12 @@ class OpenAiAssistantExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
5690
6075
|
throw new PipelineExecutionError('No text content in assistant response');
|
|
5691
6076
|
}
|
|
5692
6077
|
complete = $getCurrentDate();
|
|
6078
|
+
const duration = uncertainNumber((new Date(complete).getTime() - new Date(start).getTime()) / 1000);
|
|
5693
6079
|
const resultContent = textContent.text.value;
|
|
5694
|
-
const usage =
|
|
6080
|
+
const usage = {
|
|
6081
|
+
...UNCERTAIN_USAGE,
|
|
6082
|
+
duration,
|
|
6083
|
+
};
|
|
5695
6084
|
// Progress callback with final result
|
|
5696
6085
|
const finalChunk = {
|
|
5697
6086
|
content: resultContent,
|
|
@@ -5815,7 +6204,11 @@ class OpenAiAssistantExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
5815
6204
|
}
|
|
5816
6205
|
// eslint-disable-next-line prefer-const
|
|
5817
6206
|
complete = $getCurrentDate();
|
|
5818
|
-
const
|
|
6207
|
+
const duration = uncertainNumber((new Date(complete).getTime() - new Date(start).getTime()) / 1000);
|
|
6208
|
+
const usage = {
|
|
6209
|
+
...UNCERTAIN_USAGE,
|
|
6210
|
+
duration,
|
|
6211
|
+
};
|
|
5819
6212
|
// <- TODO: [🥘] Compute real usage for assistant
|
|
5820
6213
|
// ?> const usage = computeOpenAiUsage(content, resultContent || '', rawResponse);
|
|
5821
6214
|
if (resultContent === null) {
|
|
@@ -6370,8 +6763,220 @@ const createOpenAiExecutionTools = Object.assign((options) => {
|
|
|
6370
6763
|
* TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
|
|
6371
6764
|
*/
|
|
6372
6765
|
|
|
6373
|
-
|
|
6766
|
+
/**
|
|
6767
|
+
* Fallback name used when attachment metadata does not provide any usable filename.
|
|
6768
|
+
*
|
|
6769
|
+
* @private function of normalizeChatAttachments
|
|
6770
|
+
*/
|
|
6771
|
+
const DEFAULT_ATTACHMENT_NAME = 'attachment';
|
|
6772
|
+
/**
|
|
6773
|
+
* Default MIME type used when attachment metadata does not provide one.
|
|
6774
|
+
*
|
|
6775
|
+
* @private function of normalizeChatAttachments
|
|
6776
|
+
*/
|
|
6777
|
+
const DEFAULT_ATTACHMENT_TYPE = 'application/octet-stream';
|
|
6778
|
+
/**
|
|
6779
|
+
* Normalizes attachment text fields to safe single-line values.
|
|
6780
|
+
*
|
|
6781
|
+
* @private function of normalizeChatAttachments
|
|
6782
|
+
*/
|
|
6783
|
+
function normalizeAttachmentText(value) {
|
|
6784
|
+
if (typeof value !== 'string') {
|
|
6785
|
+
return null;
|
|
6786
|
+
}
|
|
6787
|
+
const normalized = value.replace(/\s+/g, ' ').trim();
|
|
6788
|
+
return normalized === '' ? null : normalized;
|
|
6789
|
+
}
|
|
6790
|
+
/**
|
|
6791
|
+
* Checks whether the attachment URL is an absolute HTTP(S) link.
|
|
6792
|
+
*
|
|
6793
|
+
* @private function of normalizeChatAttachments
|
|
6794
|
+
*/
|
|
6795
|
+
function isSupportedAttachmentUrl(value) {
|
|
6796
|
+
try {
|
|
6797
|
+
const parsedUrl = new URL(value);
|
|
6798
|
+
return parsedUrl.protocol === 'http:' || parsedUrl.protocol === 'https:';
|
|
6799
|
+
}
|
|
6800
|
+
catch (_a) {
|
|
6801
|
+
return false;
|
|
6802
|
+
}
|
|
6803
|
+
}
|
|
6804
|
+
/**
|
|
6805
|
+
* Tries to infer a readable attachment name from its URL pathname.
|
|
6806
|
+
*
|
|
6807
|
+
* @private function of normalizeChatAttachments
|
|
6808
|
+
*/
|
|
6809
|
+
function deriveAttachmentNameFromUrl(url) {
|
|
6810
|
+
try {
|
|
6811
|
+
const parsedUrl = new URL(url);
|
|
6812
|
+
const pathnameSegments = parsedUrl.pathname.split('/').filter(Boolean);
|
|
6813
|
+
const encodedFileName = pathnameSegments[pathnameSegments.length - 1];
|
|
6814
|
+
if (!encodedFileName) {
|
|
6815
|
+
return DEFAULT_ATTACHMENT_NAME;
|
|
6816
|
+
}
|
|
6817
|
+
const decodedFileName = decodeURIComponent(encodedFileName).trim();
|
|
6818
|
+
return decodedFileName === '' ? DEFAULT_ATTACHMENT_NAME : decodedFileName;
|
|
6819
|
+
}
|
|
6820
|
+
catch (_a) {
|
|
6821
|
+
return DEFAULT_ATTACHMENT_NAME;
|
|
6822
|
+
}
|
|
6823
|
+
}
|
|
6824
|
+
/**
|
|
6825
|
+
* Converts unknown attachment payload into the normalized chat attachment shape.
|
|
6826
|
+
*
|
|
6827
|
+
* @private function of normalizeChatAttachments
|
|
6828
|
+
*/
|
|
6829
|
+
function normalizeChatAttachment(rawAttachment) {
|
|
6830
|
+
if (!rawAttachment || typeof rawAttachment !== 'object' || Array.isArray(rawAttachment)) {
|
|
6831
|
+
return null;
|
|
6832
|
+
}
|
|
6833
|
+
const rawUrl = normalizeAttachmentText(rawAttachment.url);
|
|
6834
|
+
if (!rawUrl || !isSupportedAttachmentUrl(rawUrl)) {
|
|
6835
|
+
return null;
|
|
6836
|
+
}
|
|
6837
|
+
const rawName = normalizeAttachmentText(rawAttachment.name);
|
|
6838
|
+
const rawType = normalizeAttachmentText(rawAttachment.type);
|
|
6839
|
+
return {
|
|
6840
|
+
name: rawName || deriveAttachmentNameFromUrl(rawUrl),
|
|
6841
|
+
type: rawType || DEFAULT_ATTACHMENT_TYPE,
|
|
6842
|
+
url: rawUrl,
|
|
6843
|
+
};
|
|
6844
|
+
}
|
|
6845
|
+
/**
|
|
6846
|
+
* Normalizes a potentially invalid attachments payload from the client request.
|
|
6847
|
+
*
|
|
6848
|
+
* Invalid items are skipped and duplicate URLs are de-duplicated.
|
|
6849
|
+
*
|
|
6850
|
+
* @param {unknown} rawAttachments - The raw attachments to normalize.
|
|
6851
|
+
* @returns {Array<ChatAttachment>} The normalized attachments.
|
|
6852
|
+
* @public exported from `@promptbook/core`
|
|
6853
|
+
*/
|
|
6854
|
+
function normalizeChatAttachments(rawAttachments) {
|
|
6855
|
+
if (!Array.isArray(rawAttachments)) {
|
|
6856
|
+
return [];
|
|
6857
|
+
}
|
|
6858
|
+
const normalizedAttachments = [];
|
|
6859
|
+
const seenUrls = new Set();
|
|
6860
|
+
for (const rawAttachment of rawAttachments) {
|
|
6861
|
+
const normalizedAttachment = normalizeChatAttachment(rawAttachment);
|
|
6862
|
+
if (!normalizedAttachment || seenUrls.has(normalizedAttachment.url)) {
|
|
6863
|
+
continue;
|
|
6864
|
+
}
|
|
6865
|
+
normalizedAttachments.push(normalizedAttachment);
|
|
6866
|
+
seenUrls.add(normalizedAttachment.url);
|
|
6867
|
+
}
|
|
6868
|
+
return normalizedAttachments;
|
|
6869
|
+
}
|
|
6870
|
+
|
|
6871
|
+
const DEFAULT_AGENT_KIT_MODEL_NAME = 'gpt-5-mini-2025-08-07';
|
|
6872
|
+
/**
|
|
6873
|
+
* Creates one structured log entry for streamed tool-call updates.
|
|
6874
|
+
*
|
|
6875
|
+
* @private helper of `OpenAiAgentKitExecutionTools`
|
|
6876
|
+
*/
|
|
6877
|
+
function createToolCallLogEntry(options) {
|
|
6878
|
+
return {
|
|
6879
|
+
createdAt: $getCurrentDate(),
|
|
6880
|
+
kind: options.kind,
|
|
6881
|
+
level: options.level,
|
|
6882
|
+
title: options.title,
|
|
6883
|
+
message: options.message,
|
|
6884
|
+
payload: options.payload,
|
|
6885
|
+
};
|
|
6886
|
+
}
|
|
6887
|
+
/**
|
|
6888
|
+
* Appends one incremental progress update to the currently tracked tool-call snapshot.
|
|
6889
|
+
*
|
|
6890
|
+
* @private helper of `OpenAiAgentKitExecutionTools`
|
|
6891
|
+
*/
|
|
6892
|
+
function applyToolCallProgressUpdate(toolCall, update) {
|
|
6893
|
+
var _a;
|
|
6894
|
+
return {
|
|
6895
|
+
...toolCall,
|
|
6896
|
+
state: (_a = update.state) !== null && _a !== void 0 ? _a : 'PARTIAL',
|
|
6897
|
+
logs: update.log ? [...(toolCall.logs || []), update.log] : toolCall.logs,
|
|
6898
|
+
};
|
|
6899
|
+
}
|
|
6900
|
+
/**
|
|
6901
|
+
* Resolves the final lifecycle state for one AgentKit tool call after execution ends.
|
|
6902
|
+
*
|
|
6903
|
+
* @private helper of `OpenAiAgentKitExecutionTools`
|
|
6904
|
+
*/
|
|
6905
|
+
function resolveFinalToolCallState(options) {
|
|
6906
|
+
if (options.errors && options.errors.length > 0) {
|
|
6907
|
+
return 'ERROR';
|
|
6908
|
+
}
|
|
6909
|
+
if (options.currentState === 'ERROR') {
|
|
6910
|
+
return 'ERROR';
|
|
6911
|
+
}
|
|
6912
|
+
return 'COMPLETE';
|
|
6913
|
+
}
|
|
6374
6914
|
const DEFAULT_JSON_SCHEMA_NAME = 'StructuredOutput';
|
|
6915
|
+
/**
|
|
6916
|
+
* File extensions considered image inputs when MIME type is missing or generic.
|
|
6917
|
+
*
|
|
6918
|
+
* @private utility of Open AI
|
|
6919
|
+
*/
|
|
6920
|
+
const IMAGE_ATTACHMENT_EXTENSIONS = new Set([
|
|
6921
|
+
'png',
|
|
6922
|
+
'jpg',
|
|
6923
|
+
'jpeg',
|
|
6924
|
+
'gif',
|
|
6925
|
+
'webp',
|
|
6926
|
+
'bmp',
|
|
6927
|
+
'svg',
|
|
6928
|
+
'heic',
|
|
6929
|
+
'heif',
|
|
6930
|
+
'avif',
|
|
6931
|
+
'tif',
|
|
6932
|
+
'tiff',
|
|
6933
|
+
]);
|
|
6934
|
+
/**
|
|
6935
|
+
* Returns one lowercase extension extracted from a filename/pathname.
|
|
6936
|
+
*
|
|
6937
|
+
* @private utility of Open AI
|
|
6938
|
+
*/
|
|
6939
|
+
function getLowercaseFilenameExtension(filename) {
|
|
6940
|
+
const normalizedFilename = filename.trim().toLowerCase();
|
|
6941
|
+
const queryStart = normalizedFilename.indexOf('?');
|
|
6942
|
+
const hashStart = normalizedFilename.indexOf('#');
|
|
6943
|
+
const suffixStart = queryStart === -1 && hashStart === -1
|
|
6944
|
+
? normalizedFilename.length
|
|
6945
|
+
: Math.min(queryStart === -1 ? normalizedFilename.length : queryStart, hashStart === -1 ? normalizedFilename.length : hashStart);
|
|
6946
|
+
const pathname = normalizedFilename.slice(0, suffixStart);
|
|
6947
|
+
const lastDotIndex = pathname.lastIndexOf('.');
|
|
6948
|
+
if (lastDotIndex <= 0 || lastDotIndex === pathname.length - 1) {
|
|
6949
|
+
return null;
|
|
6950
|
+
}
|
|
6951
|
+
return pathname.slice(lastDotIndex + 1);
|
|
6952
|
+
}
|
|
6953
|
+
/**
|
|
6954
|
+
* Tries to extract one extension from URL pathname.
|
|
6955
|
+
*
|
|
6956
|
+
* @private utility of Open AI
|
|
6957
|
+
*/
|
|
6958
|
+
function getUrlPathnameExtension(url) {
|
|
6959
|
+
try {
|
|
6960
|
+
const parsedUrl = new URL(url);
|
|
6961
|
+
return getLowercaseFilenameExtension(decodeURIComponent(parsedUrl.pathname));
|
|
6962
|
+
}
|
|
6963
|
+
catch (_a) {
|
|
6964
|
+
return null;
|
|
6965
|
+
}
|
|
6966
|
+
}
|
|
6967
|
+
/**
|
|
6968
|
+
* Checks whether one chat attachment can be sent as an image input.
|
|
6969
|
+
*
|
|
6970
|
+
* @private utility of Open AI
|
|
6971
|
+
*/
|
|
6972
|
+
function isImageAttachment(attachment) {
|
|
6973
|
+
const normalizedType = attachment.type.trim().toLowerCase();
|
|
6974
|
+
if (normalizedType.startsWith('image/')) {
|
|
6975
|
+
return true;
|
|
6976
|
+
}
|
|
6977
|
+
const extension = getLowercaseFilenameExtension(attachment.name) || getUrlPathnameExtension(attachment.url);
|
|
6978
|
+
return extension ? IMAGE_ATTACHMENT_EXTENSIONS.has(extension) : false;
|
|
6979
|
+
}
|
|
6375
6980
|
/*
|
|
6376
6981
|
TODO: Use or remove
|
|
6377
6982
|
const EMPTY_JSON_SCHEMA: JsonSchemaDefinition['schema'] = {
|
|
@@ -6381,13 +6986,71 @@ const EMPTY_JSON_SCHEMA: JsonSchemaDefinition['schema'] = {
|
|
|
6381
6986
|
additionalProperties: true,
|
|
6382
6987
|
};
|
|
6383
6988
|
*/
|
|
6989
|
+
/**
|
|
6990
|
+
* Determines whether a schema fragment includes meaningful constraints.
|
|
6991
|
+
*/
|
|
6992
|
+
function hasJsonSchemaContent(schema) {
|
|
6993
|
+
if (!schema) {
|
|
6994
|
+
return false;
|
|
6995
|
+
}
|
|
6996
|
+
if (typeof schema.description === 'string' && schema.description.trim() !== '') {
|
|
6997
|
+
return true;
|
|
6998
|
+
}
|
|
6999
|
+
if (schema.additionalProperties !== undefined) {
|
|
7000
|
+
return true;
|
|
7001
|
+
}
|
|
7002
|
+
if (schema.properties && Object.keys(schema.properties).length > 0) {
|
|
7003
|
+
return true;
|
|
7004
|
+
}
|
|
7005
|
+
if (Array.isArray(schema.required) && schema.required.length > 0) {
|
|
7006
|
+
return true;
|
|
7007
|
+
}
|
|
7008
|
+
return false;
|
|
7009
|
+
}
|
|
7010
|
+
/**
|
|
7011
|
+
* Normalizes inline OpenAI JSON schema payloads to the AgentKit structure.
|
|
7012
|
+
*/
|
|
7013
|
+
function normalizeJsonSchemaInput(jsonSchema) {
|
|
7014
|
+
if (!jsonSchema || typeof jsonSchema !== 'object') {
|
|
7015
|
+
return { schema: {}, hasSchema: false };
|
|
7016
|
+
}
|
|
7017
|
+
const explicitSchema = jsonSchema.schema;
|
|
7018
|
+
if (explicitSchema && typeof explicitSchema === 'object') {
|
|
7019
|
+
return {
|
|
7020
|
+
name: jsonSchema.name,
|
|
7021
|
+
strict: jsonSchema.strict,
|
|
7022
|
+
schema: explicitSchema,
|
|
7023
|
+
hasSchema: hasJsonSchemaContent(explicitSchema),
|
|
7024
|
+
};
|
|
7025
|
+
}
|
|
7026
|
+
const inlineSchema = {
|
|
7027
|
+
description: jsonSchema.description,
|
|
7028
|
+
additionalProperties: jsonSchema.additionalProperties,
|
|
7029
|
+
properties: jsonSchema.properties,
|
|
7030
|
+
required: jsonSchema.required,
|
|
7031
|
+
};
|
|
7032
|
+
const hasInlineSchema = hasJsonSchemaContent(inlineSchema) || (typeof jsonSchema.type === 'string' && jsonSchema.type === 'object');
|
|
7033
|
+
return {
|
|
7034
|
+
name: jsonSchema.name,
|
|
7035
|
+
strict: jsonSchema.strict,
|
|
7036
|
+
schema: hasInlineSchema ? inlineSchema : {},
|
|
7037
|
+
hasSchema: hasInlineSchema,
|
|
7038
|
+
};
|
|
7039
|
+
}
|
|
7040
|
+
/**
|
|
7041
|
+
* Builds an AgentKit-compatible JSON schema definition from the supplied payload.
|
|
7042
|
+
*/
|
|
6384
7043
|
function buildJsonSchemaDefinition(jsonSchema) {
|
|
6385
7044
|
var _a, _b, _c;
|
|
6386
|
-
const
|
|
7045
|
+
const normalizedSchema = normalizeJsonSchemaInput(jsonSchema);
|
|
7046
|
+
const schema = (_a = normalizedSchema.schema) !== null && _a !== void 0 ? _a : {};
|
|
7047
|
+
const strict = normalizedSchema.strict === undefined || normalizedSchema.strict === null
|
|
7048
|
+
? normalizedSchema.hasSchema
|
|
7049
|
+
: Boolean(normalizedSchema.strict);
|
|
6387
7050
|
return {
|
|
6388
7051
|
type: 'json_schema',
|
|
6389
|
-
name: (_b =
|
|
6390
|
-
strict
|
|
7052
|
+
name: (_b = normalizedSchema.name) !== null && _b !== void 0 ? _b : DEFAULT_JSON_SCHEMA_NAME,
|
|
7053
|
+
strict,
|
|
6391
7054
|
schema: {
|
|
6392
7055
|
type: 'object',
|
|
6393
7056
|
properties: ((_c = schema.properties) !== null && _c !== void 0 ? _c : {}),
|
|
@@ -6445,6 +7108,8 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6445
7108
|
}
|
|
6446
7109
|
super(options);
|
|
6447
7110
|
this.preparedAgentKitAgent = null;
|
|
7111
|
+
this.agentKitToolResultsByCallId = new Map();
|
|
7112
|
+
this.agentKitToolSnapshotsByCallId = new Map();
|
|
6448
7113
|
this.agentKitModelName = (_a = options.agentKitModelName) !== null && _a !== void 0 ? _a : DEFAULT_AGENT_KIT_MODEL_NAME;
|
|
6449
7114
|
}
|
|
6450
7115
|
get title() {
|
|
@@ -6462,7 +7127,7 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6462
7127
|
/**
|
|
6463
7128
|
* Calls OpenAI AgentKit with a chat prompt (streaming).
|
|
6464
7129
|
*/
|
|
6465
|
-
async callChatModelStream(prompt, onProgress) {
|
|
7130
|
+
async callChatModelStream(prompt, onProgress, options) {
|
|
6466
7131
|
const { content, parameters, modelRequirements } = prompt;
|
|
6467
7132
|
if (modelRequirements.modelVariant !== 'CHAT') {
|
|
6468
7133
|
throw new PipelineExecutionError('Use callChatModel only for CHAT variant');
|
|
@@ -6489,6 +7154,7 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6489
7154
|
rawPromptContent,
|
|
6490
7155
|
onProgress,
|
|
6491
7156
|
responseFormatOutputType,
|
|
7157
|
+
signal: options === null || options === void 0 ? void 0 : options.signal,
|
|
6492
7158
|
});
|
|
6493
7159
|
}
|
|
6494
7160
|
/**
|
|
@@ -6602,12 +7268,13 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6602
7268
|
: undefined,
|
|
6603
7269
|
strict: false,
|
|
6604
7270
|
execute: async (input, runContext, details) => {
|
|
6605
|
-
var _a, _b, _c;
|
|
7271
|
+
var _a, _b, _c, _d;
|
|
6606
7272
|
const scriptTool = scriptTools[0];
|
|
6607
7273
|
const functionName = toolDefinition.name;
|
|
6608
7274
|
const calledAt = $getCurrentDate();
|
|
6609
7275
|
const callId = (_a = details === null || details === void 0 ? void 0 : details.toolCall) === null || _a === void 0 ? void 0 : _a.callId;
|
|
6610
7276
|
const functionArgs = input !== null && input !== void 0 ? input : {};
|
|
7277
|
+
const executionContext = (_b = runContext === null || runContext === void 0 ? void 0 : runContext.context) !== null && _b !== void 0 ? _b : undefined;
|
|
6611
7278
|
if (this.options.isVerbose) {
|
|
6612
7279
|
console.info('[🤰]', 'Executing AgentKit tool', {
|
|
6613
7280
|
functionName,
|
|
@@ -6616,18 +7283,86 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6616
7283
|
});
|
|
6617
7284
|
}
|
|
6618
7285
|
try {
|
|
6619
|
-
|
|
6620
|
-
|
|
6621
|
-
|
|
6622
|
-
|
|
6623
|
-
|
|
6624
|
-
|
|
6625
|
-
|
|
7286
|
+
let currentToolCallSnapshot = {
|
|
7287
|
+
name: functionName,
|
|
7288
|
+
arguments: functionArgs,
|
|
7289
|
+
result: '',
|
|
7290
|
+
rawToolCall: details === null || details === void 0 ? void 0 : details.toolCall,
|
|
7291
|
+
createdAt: calledAt,
|
|
7292
|
+
state: 'PENDING',
|
|
7293
|
+
logs: [
|
|
7294
|
+
createToolCallLogEntry({
|
|
7295
|
+
kind: 'request',
|
|
7296
|
+
title: 'Request prepared',
|
|
7297
|
+
message: `Prepared ${functionName} request.`,
|
|
7298
|
+
payload: {
|
|
7299
|
+
arguments: functionArgs,
|
|
7300
|
+
},
|
|
7301
|
+
}),
|
|
7302
|
+
],
|
|
7303
|
+
};
|
|
7304
|
+
const progressListenerToken = registerToolCallProgressListener((update) => {
|
|
7305
|
+
currentToolCallSnapshot = applyToolCallProgressUpdate(currentToolCallSnapshot, update);
|
|
7306
|
+
if (callId) {
|
|
7307
|
+
this.agentKitToolSnapshotsByCallId.set(callId, currentToolCallSnapshot);
|
|
7308
|
+
}
|
|
7309
|
+
if (!(executionContext === null || executionContext === void 0 ? void 0 : executionContext.onToolProgress)) {
|
|
7310
|
+
return;
|
|
7311
|
+
}
|
|
7312
|
+
executionContext.onToolProgress({
|
|
7313
|
+
content: '',
|
|
7314
|
+
modelName: executionContext.modelName || this.agentKitModelName,
|
|
7315
|
+
timing: {
|
|
7316
|
+
start: executionContext.startedAt || calledAt,
|
|
7317
|
+
complete: $getCurrentDate(),
|
|
7318
|
+
},
|
|
7319
|
+
usage: UNCERTAIN_USAGE,
|
|
7320
|
+
rawPromptContent: (executionContext.rawPromptContent || ''),
|
|
7321
|
+
rawRequest: null,
|
|
7322
|
+
rawResponse: {},
|
|
7323
|
+
toolCalls: [currentToolCallSnapshot],
|
|
7324
|
+
});
|
|
6626
7325
|
});
|
|
7326
|
+
let functionResponse;
|
|
7327
|
+
try {
|
|
7328
|
+
functionResponse = await scriptTool.execute({
|
|
7329
|
+
scriptLanguage: 'javascript',
|
|
7330
|
+
script: buildToolInvocationScript({
|
|
7331
|
+
functionName,
|
|
7332
|
+
functionArgsExpression: JSON.stringify(functionArgs),
|
|
7333
|
+
}),
|
|
7334
|
+
parameters: {
|
|
7335
|
+
...((_c = executionContext === null || executionContext === void 0 ? void 0 : executionContext.parameters) !== null && _c !== void 0 ? _c : {}),
|
|
7336
|
+
[TOOL_PROGRESS_TOKEN_PARAMETER]: progressListenerToken,
|
|
7337
|
+
},
|
|
7338
|
+
});
|
|
7339
|
+
}
|
|
7340
|
+
finally {
|
|
7341
|
+
unregisterToolCallProgressListener(progressListenerToken);
|
|
7342
|
+
}
|
|
7343
|
+
return this.resolveAgentKitToolResponse(callId, functionResponse);
|
|
6627
7344
|
}
|
|
6628
7345
|
catch (error) {
|
|
6629
7346
|
assertsError(error);
|
|
6630
7347
|
const serializedError = serializeError(error);
|
|
7348
|
+
const failedToolCall = {
|
|
7349
|
+
name: functionName,
|
|
7350
|
+
arguments: functionArgs,
|
|
7351
|
+
result: '',
|
|
7352
|
+
rawToolCall: details === null || details === void 0 ? void 0 : details.toolCall,
|
|
7353
|
+
createdAt: calledAt,
|
|
7354
|
+
state: 'ERROR',
|
|
7355
|
+
errors: [serializedError],
|
|
7356
|
+
logs: [
|
|
7357
|
+
createToolCallLogEntry({
|
|
7358
|
+
kind: 'error',
|
|
7359
|
+
level: 'error',
|
|
7360
|
+
title: 'Execution failed',
|
|
7361
|
+
message: `${functionName} failed before returning a result.`,
|
|
7362
|
+
payload: serializedError,
|
|
7363
|
+
}),
|
|
7364
|
+
],
|
|
7365
|
+
};
|
|
6631
7366
|
const errorMessage = spaceTrim$2((block) => `
|
|
6632
7367
|
|
|
6633
7368
|
The invoked tool \`${functionName}\` failed with error:
|
|
@@ -6642,6 +7377,22 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6642
7377
|
callId,
|
|
6643
7378
|
error: serializedError,
|
|
6644
7379
|
});
|
|
7380
|
+
if (callId) {
|
|
7381
|
+
this.agentKitToolSnapshotsByCallId.set(callId, failedToolCall);
|
|
7382
|
+
}
|
|
7383
|
+
(_d = executionContext === null || executionContext === void 0 ? void 0 : executionContext.onToolProgress) === null || _d === void 0 ? void 0 : _d.call(executionContext, {
|
|
7384
|
+
content: '',
|
|
7385
|
+
modelName: executionContext.modelName || this.agentKitModelName,
|
|
7386
|
+
timing: {
|
|
7387
|
+
start: executionContext.startedAt || calledAt,
|
|
7388
|
+
complete: $getCurrentDate(),
|
|
7389
|
+
},
|
|
7390
|
+
usage: UNCERTAIN_USAGE,
|
|
7391
|
+
rawPromptContent: (executionContext.rawPromptContent || ''),
|
|
7392
|
+
rawRequest: null,
|
|
7393
|
+
rawResponse: {},
|
|
7394
|
+
toolCalls: [failedToolCall],
|
|
7395
|
+
});
|
|
6645
7396
|
return errorMessage;
|
|
6646
7397
|
}
|
|
6647
7398
|
},
|
|
@@ -6664,7 +7415,7 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6664
7415
|
* Runs a prepared AgentKit agent and streams results back to the caller.
|
|
6665
7416
|
*/
|
|
6666
7417
|
async callChatModelStreamWithPreparedAgent(options) {
|
|
6667
|
-
var _a, _b, _c, _d;
|
|
7418
|
+
var _a, _b, _c, _d, _e, _f;
|
|
6668
7419
|
const { openAiAgentKitAgent, prompt, onProgress } = options;
|
|
6669
7420
|
const rawPromptContent = (_a = options.rawPromptContent) !== null && _a !== void 0 ? _a : templateParameters(prompt.content, {
|
|
6670
7421
|
...prompt.parameters,
|
|
@@ -6679,6 +7430,8 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6679
7430
|
let latestContent = '';
|
|
6680
7431
|
const toolCalls = [];
|
|
6681
7432
|
const toolCallIndexById = new Map();
|
|
7433
|
+
this.agentKitToolResultsByCallId.clear();
|
|
7434
|
+
this.agentKitToolSnapshotsByCallId.clear();
|
|
6682
7435
|
const inputItems = await this.buildAgentKitInputItems(prompt, rawPromptContent);
|
|
6683
7436
|
const rawRequest = {
|
|
6684
7437
|
agentName: agentForRun.name,
|
|
@@ -6686,8 +7439,35 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6686
7439
|
};
|
|
6687
7440
|
const streamResult = await run(agentForRun, inputItems, {
|
|
6688
7441
|
stream: true,
|
|
6689
|
-
context: {
|
|
7442
|
+
context: {
|
|
7443
|
+
parameters: prompt.parameters,
|
|
7444
|
+
onToolProgress: onProgress,
|
|
7445
|
+
rawPromptContent,
|
|
7446
|
+
startedAt: start,
|
|
7447
|
+
modelName: this.agentKitModelName,
|
|
7448
|
+
},
|
|
7449
|
+
signal: options.signal,
|
|
6690
7450
|
});
|
|
7451
|
+
/**
|
|
7452
|
+
* Emits one explicit terminal stream snapshot as soon as the visible model output stream ends.
|
|
7453
|
+
*
|
|
7454
|
+
* This intentionally happens before `streamResult.completed` resolves because the SDK can keep
|
|
7455
|
+
* post-stream bookkeeping alive after the last user-visible token has already been delivered.
|
|
7456
|
+
*/
|
|
7457
|
+
const emitFinishedStreamSnapshot = () => {
|
|
7458
|
+
var _a;
|
|
7459
|
+
onProgress({
|
|
7460
|
+
content: ((_a = streamResult.finalOutput) !== null && _a !== void 0 ? _a : latestContent),
|
|
7461
|
+
modelName: this.agentKitModelName,
|
|
7462
|
+
timing: { start, complete: $getCurrentDate() },
|
|
7463
|
+
usage: UNCERTAIN_USAGE,
|
|
7464
|
+
rawPromptContent: rawPromptContent,
|
|
7465
|
+
rawRequest: null,
|
|
7466
|
+
rawResponse: { runResult: streamResult },
|
|
7467
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
7468
|
+
isFinished: true,
|
|
7469
|
+
});
|
|
7470
|
+
};
|
|
6691
7471
|
for await (const event of streamResult) {
|
|
6692
7472
|
if (event.type === 'raw_model_stream_event' && ((_b = event.data) === null || _b === void 0 ? void 0 : _b.type) === 'output_text_delta') {
|
|
6693
7473
|
latestContent += event.data.delta;
|
|
@@ -6710,9 +7490,21 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6710
7490
|
arguments: rawItem.arguments,
|
|
6711
7491
|
rawToolCall: rawItem,
|
|
6712
7492
|
createdAt: $getCurrentDate(),
|
|
7493
|
+
state: 'PENDING',
|
|
7494
|
+
logs: [
|
|
7495
|
+
createToolCallLogEntry({
|
|
7496
|
+
kind: 'request',
|
|
7497
|
+
title: 'Request prepared',
|
|
7498
|
+
message: `Prepared ${String(rawItem.name)} request.`,
|
|
7499
|
+
payload: {
|
|
7500
|
+
arguments: rawItem.arguments,
|
|
7501
|
+
},
|
|
7502
|
+
}),
|
|
7503
|
+
],
|
|
6713
7504
|
};
|
|
6714
7505
|
toolCallIndexById.set(rawItem.callId, toolCalls.length);
|
|
6715
7506
|
toolCalls.push(toolCall);
|
|
7507
|
+
this.agentKitToolSnapshotsByCallId.set(rawItem.callId, toolCall);
|
|
6716
7508
|
onProgress({
|
|
6717
7509
|
content: latestContent,
|
|
6718
7510
|
modelName: this.agentKitModelName,
|
|
@@ -6726,15 +7518,34 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6726
7518
|
}
|
|
6727
7519
|
if (event.name === 'tool_output' && (rawItem === null || rawItem === void 0 ? void 0 : rawItem.type) === 'function_call_result') {
|
|
6728
7520
|
const index = toolCallIndexById.get(rawItem.callId);
|
|
6729
|
-
const result = this.
|
|
7521
|
+
const result = this.resolveAgentKitToolOutputResult(rawItem.callId, rawItem.output);
|
|
7522
|
+
const progressToolCall = rawItem.callId
|
|
7523
|
+
? this.agentKitToolSnapshotsByCallId.get(rawItem.callId)
|
|
7524
|
+
: undefined;
|
|
6730
7525
|
if (index !== undefined) {
|
|
6731
7526
|
const existingToolCall = toolCalls[index];
|
|
6732
7527
|
const completedToolCall = {
|
|
6733
7528
|
...existingToolCall,
|
|
7529
|
+
...(progressToolCall || {}),
|
|
6734
7530
|
result,
|
|
6735
7531
|
rawToolCall: rawItem,
|
|
7532
|
+
state: resolveFinalToolCallState({
|
|
7533
|
+
currentState: (_d = progressToolCall === null || progressToolCall === void 0 ? void 0 : progressToolCall.state) !== null && _d !== void 0 ? _d : existingToolCall.state,
|
|
7534
|
+
errors: (_e = progressToolCall === null || progressToolCall === void 0 ? void 0 : progressToolCall.errors) !== null && _e !== void 0 ? _e : existingToolCall.errors,
|
|
7535
|
+
}),
|
|
7536
|
+
logs: [
|
|
7537
|
+
...((progressToolCall === null || progressToolCall === void 0 ? void 0 : progressToolCall.logs) ||
|
|
7538
|
+
existingToolCall.logs ||
|
|
7539
|
+
[]),
|
|
7540
|
+
createToolCallLogEntry({
|
|
7541
|
+
kind: 'result',
|
|
7542
|
+
title: 'Execution finished',
|
|
7543
|
+
message: `${existingToolCall.name} returned a result.`,
|
|
7544
|
+
}),
|
|
7545
|
+
],
|
|
6736
7546
|
};
|
|
6737
7547
|
toolCalls[index] = completedToolCall;
|
|
7548
|
+
this.agentKitToolSnapshotsByCallId.delete(rawItem.callId);
|
|
6738
7549
|
onProgress({
|
|
6739
7550
|
content: latestContent,
|
|
6740
7551
|
modelName: this.agentKitModelName,
|
|
@@ -6749,14 +7560,19 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6749
7560
|
}
|
|
6750
7561
|
}
|
|
6751
7562
|
}
|
|
7563
|
+
emitFinishedStreamSnapshot();
|
|
6752
7564
|
await streamResult.completed;
|
|
6753
7565
|
const complete = $getCurrentDate();
|
|
6754
|
-
const
|
|
7566
|
+
const duration = uncertainNumber((new Date(complete).getTime() - new Date(start).getTime()) / 1000);
|
|
7567
|
+
const finalContent = ((_f = streamResult.finalOutput) !== null && _f !== void 0 ? _f : latestContent);
|
|
6755
7568
|
const finalResult = {
|
|
6756
7569
|
content: finalContent,
|
|
6757
7570
|
modelName: this.agentKitModelName,
|
|
6758
7571
|
timing: { start, complete },
|
|
6759
|
-
usage:
|
|
7572
|
+
usage: {
|
|
7573
|
+
...UNCERTAIN_USAGE,
|
|
7574
|
+
duration,
|
|
7575
|
+
},
|
|
6760
7576
|
rawPromptContent: rawPromptContent,
|
|
6761
7577
|
rawRequest,
|
|
6762
7578
|
rawResponse: { runResult: streamResult },
|
|
@@ -6783,9 +7599,13 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6783
7599
|
});
|
|
6784
7600
|
}
|
|
6785
7601
|
else {
|
|
7602
|
+
const userThreadContent = await this.buildAgentKitUserContentWithAttachments({
|
|
7603
|
+
textContent: typeof content === 'string' ? content : String(content !== null && content !== void 0 ? content : ''),
|
|
7604
|
+
rawAttachments: message.attachments,
|
|
7605
|
+
});
|
|
6786
7606
|
inputItems.push({
|
|
6787
7607
|
role: 'user',
|
|
6788
|
-
content,
|
|
7608
|
+
content: userThreadContent,
|
|
6789
7609
|
});
|
|
6790
7610
|
}
|
|
6791
7611
|
}
|
|
@@ -6801,18 +7621,64 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6801
7621
|
* Builds the user message content for AgentKit runs, including file inputs when provided.
|
|
6802
7622
|
*/
|
|
6803
7623
|
async buildAgentKitUserContent(prompt, rawPromptContent) {
|
|
6804
|
-
|
|
6805
|
-
|
|
6806
|
-
|
|
6807
|
-
|
|
6808
|
-
|
|
6809
|
-
|
|
6810
|
-
|
|
6811
|
-
|
|
6812
|
-
|
|
6813
|
-
|
|
7624
|
+
const files = 'files' in prompt && Array.isArray(prompt.files) ? prompt.files : undefined;
|
|
7625
|
+
const rawAttachments = 'attachments' in prompt ? prompt.attachments : undefined;
|
|
7626
|
+
return this.buildAgentKitUserContentWithAttachments({
|
|
7627
|
+
textContent: rawPromptContent,
|
|
7628
|
+
rawAttachments,
|
|
7629
|
+
files,
|
|
7630
|
+
});
|
|
7631
|
+
}
|
|
7632
|
+
/**
|
|
7633
|
+
* Converts uploaded `File` objects into AgentKit `input_image` entries.
|
|
7634
|
+
*/
|
|
7635
|
+
async createAgentKitInputImageItemsFromFiles(files) {
|
|
7636
|
+
return Promise.all(files.map(async (file) => {
|
|
7637
|
+
const arrayBuffer = await file.arrayBuffer();
|
|
7638
|
+
const base64 = Buffer.from(arrayBuffer).toString('base64');
|
|
7639
|
+
return {
|
|
7640
|
+
type: 'input_image',
|
|
7641
|
+
image: `data:${file.type};base64,${base64}`,
|
|
7642
|
+
};
|
|
7643
|
+
}));
|
|
7644
|
+
}
|
|
7645
|
+
/**
|
|
7646
|
+
* Converts image chat attachments into AgentKit `input_image` entries.
|
|
7647
|
+
*
|
|
7648
|
+
* Note: This keeps images in the same completion request as multimodal input.
|
|
7649
|
+
*/
|
|
7650
|
+
createAgentKitInputImageItemsFromAttachments(rawAttachments) {
|
|
7651
|
+
return normalizeChatAttachments(rawAttachments)
|
|
7652
|
+
.filter((attachment) => isImageAttachment(attachment))
|
|
7653
|
+
.map((attachment) => ({
|
|
7654
|
+
type: 'input_image',
|
|
7655
|
+
image: attachment.url,
|
|
7656
|
+
}));
|
|
7657
|
+
}
|
|
7658
|
+
/**
|
|
7659
|
+
* Builds AgentKit user content that can include text, uploaded files, and image attachments.
|
|
7660
|
+
*/
|
|
7661
|
+
async buildAgentKitUserContentWithAttachments(options) {
|
|
7662
|
+
var _a;
|
|
7663
|
+
const { textContent, rawAttachments, files } = options;
|
|
7664
|
+
const contentItems = [];
|
|
7665
|
+
if (textContent.trim() !== '') {
|
|
7666
|
+
contentItems.push({
|
|
7667
|
+
type: 'input_text',
|
|
7668
|
+
text: textContent,
|
|
7669
|
+
});
|
|
6814
7670
|
}
|
|
6815
|
-
|
|
7671
|
+
contentItems.push(...this.createAgentKitInputImageItemsFromAttachments(rawAttachments));
|
|
7672
|
+
if (files && files.length > 0) {
|
|
7673
|
+
contentItems.push(...(await this.createAgentKitInputImageItemsFromFiles(files)));
|
|
7674
|
+
}
|
|
7675
|
+
if (contentItems.length === 0) {
|
|
7676
|
+
return textContent;
|
|
7677
|
+
}
|
|
7678
|
+
if (contentItems.length === 1 && ((_a = contentItems[0]) === null || _a === void 0 ? void 0 : _a.type) === 'input_text') {
|
|
7679
|
+
return textContent;
|
|
7680
|
+
}
|
|
7681
|
+
return contentItems;
|
|
6816
7682
|
}
|
|
6817
7683
|
/**
|
|
6818
7684
|
* Normalizes AgentKit tool outputs into a string for Promptbook tool call results.
|
|
@@ -6829,6 +7695,32 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
|
|
|
6829
7695
|
}
|
|
6830
7696
|
return JSON.stringify(output !== null && output !== void 0 ? output : null);
|
|
6831
7697
|
}
|
|
7698
|
+
/**
|
|
7699
|
+
* Resolves the assistant-visible AgentKit tool response while preserving structured tool result data.
|
|
7700
|
+
*/
|
|
7701
|
+
resolveAgentKitToolResponse(callId, functionResponse) {
|
|
7702
|
+
const toolExecutionEnvelope = parseToolExecutionEnvelope(functionResponse);
|
|
7703
|
+
if (!toolExecutionEnvelope) {
|
|
7704
|
+
return functionResponse;
|
|
7705
|
+
}
|
|
7706
|
+
if (callId) {
|
|
7707
|
+
this.agentKitToolResultsByCallId.set(callId, toolExecutionEnvelope.toolResult);
|
|
7708
|
+
}
|
|
7709
|
+
return toolExecutionEnvelope.assistantMessage;
|
|
7710
|
+
}
|
|
7711
|
+
/**
|
|
7712
|
+
* Resolves the stored Promptbook tool result for one AgentKit tool call.
|
|
7713
|
+
*/
|
|
7714
|
+
resolveAgentKitToolOutputResult(callId, output) {
|
|
7715
|
+
if (callId) {
|
|
7716
|
+
const storedToolResult = this.agentKitToolResultsByCallId.get(callId);
|
|
7717
|
+
if (storedToolResult !== undefined) {
|
|
7718
|
+
this.agentKitToolResultsByCallId.delete(callId);
|
|
7719
|
+
return storedToolResult;
|
|
7720
|
+
}
|
|
7721
|
+
}
|
|
7722
|
+
return this.formatAgentKitToolOutput(output);
|
|
7723
|
+
}
|
|
6832
7724
|
/**
|
|
6833
7725
|
* Returns AgentKit-specific options.
|
|
6834
7726
|
*/
|