@librechat/agents 3.7.18 → 3.7.20
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/dist/cjs/agents/AgentContext.cjs +5 -2
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +2 -1
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/langfuse.cjs +6 -2
- package/dist/cjs/langfuse.cjs.map +1 -1
- package/dist/cjs/llm/invoke.cjs +17 -2
- package/dist/cjs/llm/invoke.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +110 -24
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/prepareProviderRequest.cjs +102 -1
- package/dist/cjs/llm/prepareProviderRequest.cjs.map +1 -1
- package/dist/cjs/main.cjs +1 -0
- package/dist/cjs/tools/search/format.cjs +7 -0
- package/dist/cjs/tools/search/format.cjs.map +1 -1
- package/dist/cjs/tools/search/tool.cjs +7 -2
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/esm/agents/AgentContext.mjs +5 -2
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +2 -1
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/langfuse.mjs +6 -2
- package/dist/esm/langfuse.mjs.map +1 -1
- package/dist/esm/llm/invoke.mjs +17 -2
- package/dist/esm/llm/invoke.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +110 -25
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/prepareProviderRequest.mjs +104 -3
- package/dist/esm/llm/prepareProviderRequest.mjs.map +1 -1
- package/dist/esm/main.mjs +2 -2
- package/dist/esm/tools/search/format.mjs +7 -1
- package/dist/esm/tools/search/format.mjs.map +1 -1
- package/dist/esm/tools/search/tool.mjs +7 -3
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/types/agents/AgentContext.d.ts +4 -1
- package/dist/types/langfuse.d.ts +5 -1
- package/dist/types/llm/openai/index.d.ts +11 -1
- package/dist/types/llm/prepareProviderRequest.d.ts +1 -1
- package/dist/types/tools/search/format.d.ts +2 -1
- package/dist/types/tools/search/tool.d.ts +1 -0
- package/dist/types/types/graph.d.ts +2 -0
- package/dist/types/types/llm.d.ts +23 -0
- package/package.json +2 -1
- package/src/agents/AgentContext.ts +7 -0
- package/src/graphs/Graph.ts +2 -1
- package/src/langfuse.ts +12 -0
- package/src/llm/invoke.ts +23 -2
- package/src/llm/openai/index.ts +281 -27
- package/src/llm/prepareProviderRequest.ts +257 -6
- package/src/tools/search/format.ts +15 -1
- package/src/tools/search/tool.ts +13 -3
- package/src/types/graph.ts +2 -0
- package/src/types/llm.ts +23 -0
package/dist/esm/main.mjs
CHANGED
|
@@ -98,7 +98,7 @@ import { ReadFileToolDefinition, ReadFileToolDescription, ReadFileToolName, Read
|
|
|
98
98
|
import { formatSkillCatalog } from "./tools/skillCatalog.mjs";
|
|
99
99
|
import { ToolSearchToolDefinition, ToolSearchToolDescription, ToolSearchToolName, ToolSearchToolSchema, countNestedGroups, createToolSearch, escapeRegexSpecialChars, extractMcpServerName, formatServerListing, getAvailableMcpServers, getBaseToolName, getDeferredToolsListing, hasNestedQuantifiers, isDangerousPattern, isFromAnyMcpServer, isFromMcpServer, normalizeServerFilter, performLocalSearch, sanitizeRegex } from "./tools/ToolSearch.mjs";
|
|
100
100
|
import { DATE_RANGE, DEFAULT_COUNTRY_DESCRIPTION, DEFAULT_QUERY_DESCRIPTION, WebSearchToolDefinition, WebSearchToolDescription, WebSearchToolName, WebSearchToolSchema, countrySchema, dateSchema, imagesSchema, newsSchema, querySchema, videosSchema } from "./tools/search/schema.mjs";
|
|
101
|
-
import { createSearchTool, executeParallelSearches, resolveSearchOutcome } from "./tools/search/tool.mjs";
|
|
101
|
+
import { createSearchTool, executeParallelSearches, normalizeSearchResultData, resolveSearchOutcome } from "./tools/search/tool.mjs";
|
|
102
102
|
import "./tools/search/index.mjs";
|
|
103
103
|
import { deserializeMessage, extractTextFromContent, serializeMessage } from "./session/messageSerialization.mjs";
|
|
104
104
|
import { JsonlSessionStore, SessionManager } from "./session/JsonlSessionStore.mjs";
|
|
@@ -120,4 +120,4 @@ import "./langchain/index.mjs";
|
|
|
120
120
|
import "./provider-registration.mjs";
|
|
121
121
|
import { DEFAULT_STREAM_DELAY, computeAdaptivePieceSize, resolveStreamDelay, smoothStream } from "./llm/stream/smoother.mjs";
|
|
122
122
|
import { BaseCheckpointSaver, Command, INTERRUPT, MemorySaver, interrupt, isInterrupted } from "@langchain/langgraph";
|
|
123
|
-
export { ACTIVITY_LABEL_RUN_NAME, ACTIVITY_PHASE_LABEL_RUN_NAME, ACTIVITY_PHASE_RUN_NAME, AGENT_MODEL_CALL_RUN_NAME, AIMessage, AIMessageChunk, ANTHROPIC_TOOL_TOKEN_MULTIPLIER, ASK_USER_QUESTION_ID_PATTERN, AgentSession, BASH_SHELL_GUIDANCE, BaseCheckpointSaver, BaseMessage, BaseMessageChunk, BashExecutionToolDefinition, BashExecutionToolDescription, BashExecutionToolName, BashExecutionToolSchema, BashProgrammaticToolCallingDefinition, BashProgrammaticToolCallingDescription, BashProgrammaticToolCallingName, BashProgrammaticToolCallingSchema, BashToolOutputReferencesGuide, CALIBRATION_RATIO_MAX, CALIBRATION_RATIO_MIN, CLOUDFLARE_BASH_CODING_TOOL_NAMES, CLOUDFLARE_CODING_TOOL_NAMES, CODE_API_AUTHORIZATION_ERROR_MESSAGE, CODE_API_EXECUTION_FAILED_ERROR_MESSAGE, CODE_API_EXPECTED_PROFILE_HEADER, CODE_API_INVALID_REQUEST_ERROR_MESSAGE, CODE_API_RATE_LIMITED_ERROR_MESSAGE, CODE_API_UNAVAILABLE_ERROR_MESSAGE, CODE_ARTIFACT_PATH_GUIDANCE, CODE_EXECUTION_TOOLS, COMPACTION_SEMANTIC_INDEX_LIMITS, Calculator, CalculatorSchema, CalculatorToolDefinition, CalculatorToolDescription, CalculatorToolName, Callback, ChatModelStreamHandler, CloudflareBashExecutionToolDescription, CloudflareCodeExecutionToolDescription, CodeApiRequestError, CodeExecutionToolDefinition, CodeExecutionToolDescription, CodeExecutionToolName, CodeExecutionToolSchema, Command, CommonEvents, CompileCheckToolName, Constants, ContentTypes, DATE_RANGE, DEFAULT_CONTEXT_PRUNING_SETTINGS, DEFAULT_COUNTRY_DESCRIPTION, DEFAULT_HOOK_TIMEOUT_MS, DEFAULT_INTRA_TURN_RETAIN_RATIO, DEFAULT_MAX_SEALS, DEFAULT_MAX_STOP_CONTINUATIONS, DEFAULT_MAX_TOOL_CALL_ARG_BYTES, DEFAULT_PREEMPT_RESTART_GRACE_MS, DEFAULT_PROMPT_CACHE_TTL, DEFAULT_QUERY_DESCRIPTION, DEFAULT_RECURSION_LIMIT, DEFAULT_RESERVE_RATIO, DEFAULT_RETAIN_RECENT_TURNS, DEFAULT_STREAM_DELAY, DEFAULT_SUBAGENT_DESCRIPTION, DEFAULT_TOOL_TOKEN_MULTIPLIER, DynamicStructuredTool, EnvVar, EventActorExecutor, FADING_MIN_BUDGET_TOKENS, FADING_TIER_VERSION, FAILED_EXECUTION_FILE_REMINDER, FakeChatModel, Graph, GraphEvents, GraphNodeActions, GraphNodeKeys, HARD_MAX_TOOL_CALL_INPUT_CHARS, HARD_MAX_TOOL_RESULT_CHARS, HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE, HOOK_EVENTS, HOOK_INJECTED_MESSAGES_CAPABLE, HOOK_PREEMPT_BOUNDARY_CAPABLE, HOOK_PREEMPT_RESTART_CAPABLE, HOOK_STOP_CONTINUATION_CAPABLE, HandlerRegistry, HookRegistry, HumanMessage, IMAGE_TOKEN_SAFETY_MARGIN, INTENT_ARG, INTENT_DESCRIPTION, INTENT_LABEL_MARKER, INTENT_PROPERTY, INTERRUPT, InMemorySubagentTaskStore, JsonlSessionStore, LLMStreamHandler, LOCAL_CODING_BUNDLE_NAMES, LOCAL_CODING_TOOL_NAMES, LOCAL_SPAWN_TIMEOUT_MS, LocalBashExecutionToolDescription, LocalCodeExecutionToolDescription, LocalEditFileToolName, LocalEditFileToolSchema, LocalFileCheckpointerImpl, LocalGlobSearchToolName, LocalGlobSearchToolSchema, LocalGrepSearchToolName, LocalGrepSearchToolSchema, LocalListDirectoryToolName, LocalListDirectoryToolSchema, LocalReadFileToolSchema, LocalWriteFileToolName, LocalWriteFileToolSchema, MASKED_RESULT_MIN_CHARS, MAX_ASK_USER_QUESTIONS, MAX_CACHE_SIZE, MAX_PATTERN_LENGTH, MIN_JSON_VALUE_CHARS, MULTI_AGENT_GRAPH_RUN_NAME, MemorySaver, ModelEndHandler, MultiAgentGraph, OPENAI_RESPONSES_ACTIVE_REASONING_ID_KEY, OPENAI_RESPONSES_REPLAY_POSITIONS_KEY, ORIGINAL_CONTENT_MAX_CHARS, PREDECESSOR_HANDOFF_CUE, PREEMPT_BOUNDARY_HOOK_TIMEOUT_MS, PRESSURE_THRESHOLD_MASKING, PROVIDER_MESSAGE_PROVENANCE_LIMITS, PROVIDER_MESSAGE_PROVENANCE_VERSION, ProgrammaticToolCallingDefinition, ProgrammaticToolCallingDescription, ProgrammaticToolCallingName, ProgrammaticToolCallingSchema, PromptTemplate, ProviderMessageProjectionInvariantError, Providers, REASONING_LABEL_RUN_NAME, REMOVE_ALL_MESSAGES, REPLY_PRIMER_TOKENS, ReadFileToolDefinition, ReadFileToolDescription, ReadFileToolName, ReadFileToolSchema, Run, Runnable, RunnableCallable, RunnableLambda, RunnableSequence, SDK_STREAM_DISPATCH, STANDARD_GRAPH_RUN_NAME, STATEFUL_BASH_NOTE, STATEFUL_ENV_NOTE, SessionManager, SkillToolDefinition, SkillToolDescription, SkillToolName, SkillToolSchema, StandardGraph, StatefulBashExecutionToolDescription, StatefulCodeExecutionToolDescription, StepTypes, StreamLimitExceededError, StructuredTool, SubagentExecutor, SubagentToolDefinition, SubagentToolDescription, SubagentToolName, SubagentToolSchema, SystemMessage, TMP_SCRATCH_OUTPUT_REMINDER, TOOL_APPROVAL_EXECUTION_SCOPE_CONFIG_KEY, TestChatStreamHandler, TestLLMStreamHandler, TitleMethod, TokenEncoderManager, Tool, ToolCallTypes, ToolEndHandler, ToolMessage, ToolNode, ToolSearchToolDefinition, ToolSearchToolDescription, ToolSearchToolName, ToolSearchToolSchema, UnsafeTokenMeasurementError, WebSearchToolDefinition, WebSearchToolDescription, WebSearchToolName, WebSearchToolSchema, _createBashProgramForTests, _resetLocalEngineWarningsForTests, _resetRipgrepCacheForTests, _resetSyntaxCheckProbeCacheForTests, _resetUnrecognizedTriggerWarnings, addBedrockCacheControl, addBedrockTailCacheControl, addCacheControl, addCacheControlToStablePrefixMessages, addCodeApiExecutionProfileHeader, addTailCacheControl, appendCodeSessionFileSummary, appendFailedExecutionFileReminder, appendPredecessorHandoffCue, appendProviderMessageProvenance, appendTmpScratchReminder, applyContextPruning, applyEdit, applyFadingCaps, applyOutcome, applyPreToolUseHooksForBridge, apportionTokenCounts, askUserQuestion, askUserQuestions, attemptInvoke, bashAstFindingsToErrors, buildAnthropicCacheControl, buildBashExecutionToolDescription, buildBashExecutionToolSchema, buildBedrockCachePoint, buildChildInputs, buildCodeApiEndpoint, buildCodeApiExecutionErrorMessage, buildCodeApiHttpErrorMessage, buildCodeExecutionToolDescription, buildCodeExecutionToolSchema, buildSandboxRuntimeConfig, buildSubagentToolParams, buildSummarizationInstruction, buildSummaryCarrierText, calculateMaxToolCallInputChars, calculateMaxToolResultChars, calculateMaxTotalToolOutputSize, calculateTotalTokens, canSealPreempt, checkValidNumber, clampCalibrationRatio, classifyAttachment, clientExecTimeoutMs, clientFsTimeoutMs, cloneMessage, coalesceAdjacentUserTurns, commandAvailabilityEnvCacheKey, compactSyntheticProviderContextMessage, composeAbortSignals, composeEventHandlers, computeAdaptivePieceSize, constructorChainHasLcName, convertInjectedMessages, convertMessagesToContent, countNestedGroups, countrySchema, createAgentSession, createBashExecutionTool, createBashProgrammaticToolCallingSchema, createBashProgrammaticToolCallingTool, createCloudflareBashExecutionTool, createCloudflareBashProgrammaticToolCallingTool, createCloudflareBridgeRuntime, createCloudflareCodeExecutionTool, createCloudflareCodingToolBundle, createCloudflareCodingTools, createCloudflareExecutionTool, createCloudflareExecutionWorld, createCloudflareLocalExecutionConfig, createCloudflareProgrammaticToolCallingTool, createCloudflareWorkspaceFS, createCodeExecutionTool, createCompileCheckTool, createCompileCheckToolDefinition, createContentAggregator, createEventActorExecutor, createFadingTier, createFakeStreamingLLM, createGraph, createHandlers, createLocalBashExecutionTool, createLocalBashProgrammaticToolCallingTool, createLocalCodeExecutionTool, createLocalCodingToolBundle, createLocalCodingToolDefinitions, createLocalCodingToolRegistry, createLocalCodingTools, createLocalEditFileTool, createLocalFileCheckpointer, createLocalGlobSearchTool, createLocalGrepSearchTool, createLocalListDirectoryTool, createLocalProgrammaticToolCallingTool, createLocalReadFileTool, createLocalWriteFileTool, createMetadataAggregator, createProgrammaticToolCallingSchema, createProgrammaticToolCallingTool, createPruneMessages, createRemoveAllMessage, createRunHandlers, createSchemaOnlyTool, createSchemaOnlyTools, createSearchTool, createSubagentToolDefinition, createTokenCounter, createToolErrorOwnership, createToolPolicyHook, createToolSearch, createWorkspacePolicyHook, dateSchema, decodeFile, defaultOmitOptions, deriveMessages, deserializeMessage, dispatchesChatModelStream, dropIncompleteToolStreamContent, emptyOutputMessage, encodeFile, encodingForModel, encodingOfTokenCounter, enforceOriginalContentCap, ensureThinkingBlockInMessages, escapeRegexSpecialChars, estimateAnthropicImageTokens, estimateDocumentBlockTokens, estimateImageBlockTokens, estimateOpenAIImageTokens, estimateTimedMediaBlockTokens, execWithClientTimeout, executeCloudflareBash, executeCloudflareCode, executeHooks, executeLocalBash, executeLocalBashWithArgs, executeLocalCode, executeParallelSearches, executeTools, extractErrorMessage, extractImageDimensions, extractMcpServerName, extractTextFromContent, extractToolDiscoveries, extractUsedBashToolNames, extractUsedToolNames, fadingBudgetTokens, fadingRungForBudget, fadingRungForExchangeChars, fadingRungForResultChars, fetchSessionFiles, filterBashToolsByUsage, filterGraphSubagentResult, filterSubagentResult, filterToolsByUsage, findLastIndex, flattenLegacyContent, foldToolBlocksForToollessAgent, formatAgentMessages, formatAnthropicArtifactContent, formatAnthropicMessage, formatArtifactPayload, formatCloudflareOutput, formatCompletedResponse, formatContentStrings, formatFromLangChain, formatLangChainMessages, formatMediaMessage, formatMessage, formatServerListing, formatSkillCatalog, getAssistantTextPhase, getAvailableMcpServers, getBaseToolName, getBufferString, getChatModelClass, getChunkContent, getCloudflareWorkspaceRoot, getCodeBaseURL, getContextOverflowInfo, getConverseOverrideMessage, getDeferredToolsListing, getExecutionWorld, getLocalCwd, getLocalSessionId, getMaxOutputTokensKey, getMessageCreationContentMetadata, getMessageId, getMessagesWithinTokenLimit, getProviderMessageProvenance, getProviderSourceMessageIds, getReadRoots, getSpawn, getTokenCountForMessage, getWorkspaceFS, getWorkspaceRoots, getWriteRoots, handleServerToolResult, handleToolCallChunks, handleToolCalls, hasBijectiveProviderContentPartMapping, hasNestedQuantifier, hasNestedQuantifiers, hasNonEmptyTextContent, hasToolSearchInCurrentTurn, hasUnsafeStructuredSerialization, imageAttachmentContent, imagesSchema, initializeModel, inspectProviderMessageProjection, inspectProviderMessageProvenance, inspectProviderSourceMessageIds, interrupt, isAIMessage, isAnthropicLike, isAskUserQuestionsInterrupt, isBaseMessage, isContextOverflowError, isDangerousPattern, isFadingTier, isFromAnyMcpServer, isFromMcpServer, isGoogleLike, isGraphSubagentConfig, isInformativeFadingTier, isIntentLabelProperty, isInterrupted, isLegacyConvertible, isLibreChatOpenAIModel, isLikelyContextOverflowError, isOpenAILike, isPresent, isProgrammaticRunnerAutoBound, isProgrammaticRunnerResolvedDirectly, isReasoningContentBlock, isSyntheticProviderContextMessage, isThinkingEnabled, isToolMessage, isZodSchema, joinKeys, labelContentByAgent, locateEdit, makeIsDeferred, makeRequest, mapChatMessagesToStoredMessages, mapStoredMessagesToChatMessages, markTokenCounterCacheCompatible, maskConsumedToolResults, matchesQuery, maxFadingRung, mergeAggregatedHookResults, messagesStateReducer, modifyDeltaProperties, newsSchema, nodeExecutionWorld, normalizeBashToolResultsForReplay, normalizeCodeApiRequestError, normalizeServerFilter, normalizeSubagentConfigEntries, normalizeSubagentConfigs, normalizeToBashIdentifier, normalizeToPythonIdentifier, outcomeFieldsFromResult, parseBooleanEnv, partitionAndMarkAnthropicToolCache, performLocalSearch, preFlightTruncateToolCallInputs, preFlightTruncateToolResults, prepareProviderRequest, probeLocalCommandAvailability, projectAgentContextUsage, projectAnthropicArtifactContent, projectArtifactPayload, projectCacheControlledToolOutputsToText, projectComputerCallOutputsToText, projectOpenAIChatToolMessageContent, projectOpenAIResponsesToolMessageContent, projectOpenAIToolMessageContent, projectOpenRouterToolMessageContent, projectSingleTextToolOutputsToText, projectStructuredToolOutputsToText, projectToolCallInputs, projectToolMessagesForProvider, projectToolStreamContentForProvider, querySchema, readIntent, readOutcomeFields, registerProvider, removePredecessorHandoffCue, repairOrphanedToolMessages, resetIfNotEmpty, resolveBedrockPromptCacheTtl, resolveCloudflareSandbox, resolveCodeApiAuthHeaders, resolveContextPruningSettings, resolveFadingCaps, resolveFadingTier, resolveFetchProxyAgent, resolveIntraTurnRetainTokens, resolveLocalExecutionConfig, resolveLocalExecutionTools, resolveLocalImplementationNames, resolveLocalToolRegistry, resolveLocalToolsForBinding, resolvePromptCacheTtl, resolveProviderMessageProjectionInvariantMode, resolveSearchOutcome, resolveStreamDelay, resolveStreamLimits, resolveSubagentConfigEntries, resolveSubagentConfigs, resolveToolOutcome, resolveWorkspacePath, resolveWorkspacePathSafe, runBashAstChecks, runPlainExecution, runPostEditSyntaxCheck, sanitizeOrphanToolBlocks, sanitizeRegex, seedFadingTier, selectRuntimeSessionHint, separateSummarizationParameters, serializeMessage, serializeToolCallInput, setCommandAvailabilityCacheEntry, setFreshProviderMessageProvenance, setInvalidProviderMessageProvenance, setProviderMessageProvenance, shellQuote, shiftIndexTokenCountMap, shouldBypassProxy, shouldTriggerSummarization, sleep, smoothStream, spawnLocalProcess, splitAssistantTextContentByPhase, splitAtRecencyBoundary, stampSyntheticProviderMessage, strictAlternationProviders, stripAnthropicCacheControl, stripBedrockCacheControl, stripCodeSessionFileSummary, stripIntent, summarizeEvent, supportsBedrockToolCache, syncBudgetDerivedFields, toJsonSchema, tool, toolResultTypes, toolsCondition, truncateLocalOutput, truncateToolInput, truncateToolResultContent, tryFallbackProviders, unescapeObject, unwrapToolResponse, validateBashCommand, validateCloudflareBashCommand, videosSchema, withClientTimeout, withIntent, withMessageRole, withoutIntent, wrapPythonForPlainExecution };
|
|
123
|
+
export { ACTIVITY_LABEL_RUN_NAME, ACTIVITY_PHASE_LABEL_RUN_NAME, ACTIVITY_PHASE_RUN_NAME, AGENT_MODEL_CALL_RUN_NAME, AIMessage, AIMessageChunk, ANTHROPIC_TOOL_TOKEN_MULTIPLIER, ASK_USER_QUESTION_ID_PATTERN, AgentSession, BASH_SHELL_GUIDANCE, BaseCheckpointSaver, BaseMessage, BaseMessageChunk, BashExecutionToolDefinition, BashExecutionToolDescription, BashExecutionToolName, BashExecutionToolSchema, BashProgrammaticToolCallingDefinition, BashProgrammaticToolCallingDescription, BashProgrammaticToolCallingName, BashProgrammaticToolCallingSchema, BashToolOutputReferencesGuide, CALIBRATION_RATIO_MAX, CALIBRATION_RATIO_MIN, CLOUDFLARE_BASH_CODING_TOOL_NAMES, CLOUDFLARE_CODING_TOOL_NAMES, CODE_API_AUTHORIZATION_ERROR_MESSAGE, CODE_API_EXECUTION_FAILED_ERROR_MESSAGE, CODE_API_EXPECTED_PROFILE_HEADER, CODE_API_INVALID_REQUEST_ERROR_MESSAGE, CODE_API_RATE_LIMITED_ERROR_MESSAGE, CODE_API_UNAVAILABLE_ERROR_MESSAGE, CODE_ARTIFACT_PATH_GUIDANCE, CODE_EXECUTION_TOOLS, COMPACTION_SEMANTIC_INDEX_LIMITS, Calculator, CalculatorSchema, CalculatorToolDefinition, CalculatorToolDescription, CalculatorToolName, Callback, ChatModelStreamHandler, CloudflareBashExecutionToolDescription, CloudflareCodeExecutionToolDescription, CodeApiRequestError, CodeExecutionToolDefinition, CodeExecutionToolDescription, CodeExecutionToolName, CodeExecutionToolSchema, Command, CommonEvents, CompileCheckToolName, Constants, ContentTypes, DATE_RANGE, DEFAULT_CONTEXT_PRUNING_SETTINGS, DEFAULT_COUNTRY_DESCRIPTION, DEFAULT_HOOK_TIMEOUT_MS, DEFAULT_INTRA_TURN_RETAIN_RATIO, DEFAULT_MAX_SEALS, DEFAULT_MAX_STOP_CONTINUATIONS, DEFAULT_MAX_TOOL_CALL_ARG_BYTES, DEFAULT_PREEMPT_RESTART_GRACE_MS, DEFAULT_PROMPT_CACHE_TTL, DEFAULT_QUERY_DESCRIPTION, DEFAULT_RECURSION_LIMIT, DEFAULT_RESERVE_RATIO, DEFAULT_RETAIN_RECENT_TURNS, DEFAULT_STREAM_DELAY, DEFAULT_SUBAGENT_DESCRIPTION, DEFAULT_TOOL_TOKEN_MULTIPLIER, DynamicStructuredTool, EnvVar, EventActorExecutor, FADING_MIN_BUDGET_TOKENS, FADING_TIER_VERSION, FAILED_EXECUTION_FILE_REMINDER, FakeChatModel, Graph, GraphEvents, GraphNodeActions, GraphNodeKeys, HARD_MAX_TOOL_CALL_INPUT_CHARS, HARD_MAX_TOOL_RESULT_CHARS, HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE, HOOK_EVENTS, HOOK_INJECTED_MESSAGES_CAPABLE, HOOK_PREEMPT_BOUNDARY_CAPABLE, HOOK_PREEMPT_RESTART_CAPABLE, HOOK_STOP_CONTINUATION_CAPABLE, HandlerRegistry, HookRegistry, HumanMessage, IMAGE_TOKEN_SAFETY_MARGIN, INTENT_ARG, INTENT_DESCRIPTION, INTENT_LABEL_MARKER, INTENT_PROPERTY, INTERRUPT, InMemorySubagentTaskStore, JsonlSessionStore, LLMStreamHandler, LOCAL_CODING_BUNDLE_NAMES, LOCAL_CODING_TOOL_NAMES, LOCAL_SPAWN_TIMEOUT_MS, LocalBashExecutionToolDescription, LocalCodeExecutionToolDescription, LocalEditFileToolName, LocalEditFileToolSchema, LocalFileCheckpointerImpl, LocalGlobSearchToolName, LocalGlobSearchToolSchema, LocalGrepSearchToolName, LocalGrepSearchToolSchema, LocalListDirectoryToolName, LocalListDirectoryToolSchema, LocalReadFileToolSchema, LocalWriteFileToolName, LocalWriteFileToolSchema, MASKED_RESULT_MIN_CHARS, MAX_ASK_USER_QUESTIONS, MAX_CACHE_SIZE, MAX_PATTERN_LENGTH, MIN_JSON_VALUE_CHARS, MULTI_AGENT_GRAPH_RUN_NAME, MemorySaver, ModelEndHandler, MultiAgentGraph, OPENAI_RESPONSES_ACTIVE_REASONING_ID_KEY, OPENAI_RESPONSES_REPLAY_POSITIONS_KEY, ORIGINAL_CONTENT_MAX_CHARS, PREDECESSOR_HANDOFF_CUE, PREEMPT_BOUNDARY_HOOK_TIMEOUT_MS, PRESSURE_THRESHOLD_MASKING, PROVIDER_MESSAGE_PROVENANCE_LIMITS, PROVIDER_MESSAGE_PROVENANCE_VERSION, ProgrammaticToolCallingDefinition, ProgrammaticToolCallingDescription, ProgrammaticToolCallingName, ProgrammaticToolCallingSchema, PromptTemplate, ProviderMessageProjectionInvariantError, Providers, REASONING_LABEL_RUN_NAME, REMOVE_ALL_MESSAGES, REPLY_PRIMER_TOKENS, ReadFileToolDefinition, ReadFileToolDescription, ReadFileToolName, ReadFileToolSchema, Run, Runnable, RunnableCallable, RunnableLambda, RunnableSequence, SDK_STREAM_DISPATCH, STANDARD_GRAPH_RUN_NAME, STATEFUL_BASH_NOTE, STATEFUL_ENV_NOTE, SessionManager, SkillToolDefinition, SkillToolDescription, SkillToolName, SkillToolSchema, StandardGraph, StatefulBashExecutionToolDescription, StatefulCodeExecutionToolDescription, StepTypes, StreamLimitExceededError, StructuredTool, SubagentExecutor, SubagentToolDefinition, SubagentToolDescription, SubagentToolName, SubagentToolSchema, SystemMessage, TMP_SCRATCH_OUTPUT_REMINDER, TOOL_APPROVAL_EXECUTION_SCOPE_CONFIG_KEY, TestChatStreamHandler, TestLLMStreamHandler, TitleMethod, TokenEncoderManager, Tool, ToolCallTypes, ToolEndHandler, ToolMessage, ToolNode, ToolSearchToolDefinition, ToolSearchToolDescription, ToolSearchToolName, ToolSearchToolSchema, UnsafeTokenMeasurementError, WebSearchToolDefinition, WebSearchToolDescription, WebSearchToolName, WebSearchToolSchema, _createBashProgramForTests, _resetLocalEngineWarningsForTests, _resetRipgrepCacheForTests, _resetSyntaxCheckProbeCacheForTests, _resetUnrecognizedTriggerWarnings, addBedrockCacheControl, addBedrockTailCacheControl, addCacheControl, addCacheControlToStablePrefixMessages, addCodeApiExecutionProfileHeader, addTailCacheControl, appendCodeSessionFileSummary, appendFailedExecutionFileReminder, appendPredecessorHandoffCue, appendProviderMessageProvenance, appendTmpScratchReminder, applyContextPruning, applyEdit, applyFadingCaps, applyOutcome, applyPreToolUseHooksForBridge, apportionTokenCounts, askUserQuestion, askUserQuestions, attemptInvoke, bashAstFindingsToErrors, buildAnthropicCacheControl, buildBashExecutionToolDescription, buildBashExecutionToolSchema, buildBedrockCachePoint, buildChildInputs, buildCodeApiEndpoint, buildCodeApiExecutionErrorMessage, buildCodeApiHttpErrorMessage, buildCodeExecutionToolDescription, buildCodeExecutionToolSchema, buildSandboxRuntimeConfig, buildSubagentToolParams, buildSummarizationInstruction, buildSummaryCarrierText, calculateMaxToolCallInputChars, calculateMaxToolResultChars, calculateMaxTotalToolOutputSize, calculateTotalTokens, canSealPreempt, checkValidNumber, clampCalibrationRatio, classifyAttachment, clientExecTimeoutMs, clientFsTimeoutMs, cloneMessage, coalesceAdjacentUserTurns, commandAvailabilityEnvCacheKey, compactSyntheticProviderContextMessage, composeAbortSignals, composeEventHandlers, computeAdaptivePieceSize, constructorChainHasLcName, convertInjectedMessages, convertMessagesToContent, countNestedGroups, countrySchema, createAgentSession, createBashExecutionTool, createBashProgrammaticToolCallingSchema, createBashProgrammaticToolCallingTool, createCloudflareBashExecutionTool, createCloudflareBashProgrammaticToolCallingTool, createCloudflareBridgeRuntime, createCloudflareCodeExecutionTool, createCloudflareCodingToolBundle, createCloudflareCodingTools, createCloudflareExecutionTool, createCloudflareExecutionWorld, createCloudflareLocalExecutionConfig, createCloudflareProgrammaticToolCallingTool, createCloudflareWorkspaceFS, createCodeExecutionTool, createCompileCheckTool, createCompileCheckToolDefinition, createContentAggregator, createEventActorExecutor, createFadingTier, createFakeStreamingLLM, createGraph, createHandlers, createLocalBashExecutionTool, createLocalBashProgrammaticToolCallingTool, createLocalCodeExecutionTool, createLocalCodingToolBundle, createLocalCodingToolDefinitions, createLocalCodingToolRegistry, createLocalCodingTools, createLocalEditFileTool, createLocalFileCheckpointer, createLocalGlobSearchTool, createLocalGrepSearchTool, createLocalListDirectoryTool, createLocalProgrammaticToolCallingTool, createLocalReadFileTool, createLocalWriteFileTool, createMetadataAggregator, createProgrammaticToolCallingSchema, createProgrammaticToolCallingTool, createPruneMessages, createRemoveAllMessage, createRunHandlers, createSchemaOnlyTool, createSchemaOnlyTools, createSearchTool, createSubagentToolDefinition, createTokenCounter, createToolErrorOwnership, createToolPolicyHook, createToolSearch, createWorkspacePolicyHook, dateSchema, decodeFile, defaultOmitOptions, deriveMessages, deserializeMessage, dispatchesChatModelStream, dropIncompleteToolStreamContent, emptyOutputMessage, encodeFile, encodingForModel, encodingOfTokenCounter, enforceOriginalContentCap, ensureThinkingBlockInMessages, escapeRegexSpecialChars, estimateAnthropicImageTokens, estimateDocumentBlockTokens, estimateImageBlockTokens, estimateOpenAIImageTokens, estimateTimedMediaBlockTokens, execWithClientTimeout, executeCloudflareBash, executeCloudflareCode, executeHooks, executeLocalBash, executeLocalBashWithArgs, executeLocalCode, executeParallelSearches, executeTools, extractErrorMessage, extractImageDimensions, extractMcpServerName, extractTextFromContent, extractToolDiscoveries, extractUsedBashToolNames, extractUsedToolNames, fadingBudgetTokens, fadingRungForBudget, fadingRungForExchangeChars, fadingRungForResultChars, fetchSessionFiles, filterBashToolsByUsage, filterGraphSubagentResult, filterSubagentResult, filterToolsByUsage, findLastIndex, flattenLegacyContent, foldToolBlocksForToollessAgent, formatAgentMessages, formatAnthropicArtifactContent, formatAnthropicMessage, formatArtifactPayload, formatCloudflareOutput, formatCompletedResponse, formatContentStrings, formatFromLangChain, formatLangChainMessages, formatMediaMessage, formatMessage, formatServerListing, formatSkillCatalog, getAssistantTextPhase, getAvailableMcpServers, getBaseToolName, getBufferString, getChatModelClass, getChunkContent, getCloudflareWorkspaceRoot, getCodeBaseURL, getContextOverflowInfo, getConverseOverrideMessage, getDeferredToolsListing, getExecutionWorld, getLocalCwd, getLocalSessionId, getMaxOutputTokensKey, getMessageCreationContentMetadata, getMessageId, getMessagesWithinTokenLimit, getProviderMessageProvenance, getProviderSourceMessageIds, getReadRoots, getSpawn, getTokenCountForMessage, getWorkspaceFS, getWorkspaceRoots, getWriteRoots, handleServerToolResult, handleToolCallChunks, handleToolCalls, hasBijectiveProviderContentPartMapping, hasNestedQuantifier, hasNestedQuantifiers, hasNonEmptyTextContent, hasToolSearchInCurrentTurn, hasUnsafeStructuredSerialization, imageAttachmentContent, imagesSchema, initializeModel, inspectProviderMessageProjection, inspectProviderMessageProvenance, inspectProviderSourceMessageIds, interrupt, isAIMessage, isAnthropicLike, isAskUserQuestionsInterrupt, isBaseMessage, isContextOverflowError, isDangerousPattern, isFadingTier, isFromAnyMcpServer, isFromMcpServer, isGoogleLike, isGraphSubagentConfig, isInformativeFadingTier, isIntentLabelProperty, isInterrupted, isLegacyConvertible, isLibreChatOpenAIModel, isLikelyContextOverflowError, isOpenAILike, isPresent, isProgrammaticRunnerAutoBound, isProgrammaticRunnerResolvedDirectly, isReasoningContentBlock, isSyntheticProviderContextMessage, isThinkingEnabled, isToolMessage, isZodSchema, joinKeys, labelContentByAgent, locateEdit, makeIsDeferred, makeRequest, mapChatMessagesToStoredMessages, mapStoredMessagesToChatMessages, markTokenCounterCacheCompatible, maskConsumedToolResults, matchesQuery, maxFadingRung, mergeAggregatedHookResults, messagesStateReducer, modifyDeltaProperties, newsSchema, nodeExecutionWorld, normalizeBashToolResultsForReplay, normalizeCodeApiRequestError, normalizeSearchResultData, normalizeServerFilter, normalizeSubagentConfigEntries, normalizeSubagentConfigs, normalizeToBashIdentifier, normalizeToPythonIdentifier, outcomeFieldsFromResult, parseBooleanEnv, partitionAndMarkAnthropicToolCache, performLocalSearch, preFlightTruncateToolCallInputs, preFlightTruncateToolResults, prepareProviderRequest, probeLocalCommandAvailability, projectAgentContextUsage, projectAnthropicArtifactContent, projectArtifactPayload, projectCacheControlledToolOutputsToText, projectComputerCallOutputsToText, projectOpenAIChatToolMessageContent, projectOpenAIResponsesToolMessageContent, projectOpenAIToolMessageContent, projectOpenRouterToolMessageContent, projectSingleTextToolOutputsToText, projectStructuredToolOutputsToText, projectToolCallInputs, projectToolMessagesForProvider, projectToolStreamContentForProvider, querySchema, readIntent, readOutcomeFields, registerProvider, removePredecessorHandoffCue, repairOrphanedToolMessages, resetIfNotEmpty, resolveBedrockPromptCacheTtl, resolveCloudflareSandbox, resolveCodeApiAuthHeaders, resolveContextPruningSettings, resolveFadingCaps, resolveFadingTier, resolveFetchProxyAgent, resolveIntraTurnRetainTokens, resolveLocalExecutionConfig, resolveLocalExecutionTools, resolveLocalImplementationNames, resolveLocalToolRegistry, resolveLocalToolsForBinding, resolvePromptCacheTtl, resolveProviderMessageProjectionInvariantMode, resolveSearchOutcome, resolveStreamDelay, resolveStreamLimits, resolveSubagentConfigEntries, resolveSubagentConfigs, resolveToolOutcome, resolveWorkspacePath, resolveWorkspacePathSafe, runBashAstChecks, runPlainExecution, runPostEditSyntaxCheck, sanitizeOrphanToolBlocks, sanitizeRegex, seedFadingTier, selectRuntimeSessionHint, separateSummarizationParameters, serializeMessage, serializeToolCallInput, setCommandAvailabilityCacheEntry, setFreshProviderMessageProvenance, setInvalidProviderMessageProvenance, setProviderMessageProvenance, shellQuote, shiftIndexTokenCountMap, shouldBypassProxy, shouldTriggerSummarization, sleep, smoothStream, spawnLocalProcess, splitAssistantTextContentByPhase, splitAtRecencyBoundary, stampSyntheticProviderMessage, strictAlternationProviders, stripAnthropicCacheControl, stripBedrockCacheControl, stripCodeSessionFileSummary, stripIntent, summarizeEvent, supportsBedrockToolCache, syncBudgetDerivedFields, toJsonSchema, tool, toolResultTypes, toolsCondition, truncateLocalOutput, truncateToolInput, truncateToolResultContent, tryFallbackProviders, unescapeObject, unwrapToolResponse, validateBashCommand, validateCloudflareBashCommand, videosSchema, withClientTimeout, withIntent, withMessageRole, withoutIntent, wrapPythonForPlainExecution };
|
|
@@ -2,6 +2,7 @@ import { fileExtRegex, getDomainName } from "./utils.mjs";
|
|
|
2
2
|
//#region src/tools/search/format.ts
|
|
3
3
|
const DEFAULT_MAX_LLM_OUTPUT_CHARS = 5e4;
|
|
4
4
|
const MIN_PARTIAL_HIGHLIGHT_CHARS = 200;
|
|
5
|
+
const MISSING_SEARCH_RESULT_DATA_ERROR = "Search provider returned no result data";
|
|
5
6
|
function resolveMaxLLMOutputChars(maxOutputChars) {
|
|
6
7
|
if (maxOutputChars != null && maxOutputChars > 0) return maxOutputChars;
|
|
7
8
|
const envValue = Number(process.env.SEARCH_MAX_LLM_OUTPUT_CHARS);
|
|
@@ -113,6 +114,10 @@ function formatSource(source, index, turn, sourceType, references) {
|
|
|
113
114
|
return outputLines.join("\n");
|
|
114
115
|
}
|
|
115
116
|
function formatResultsForLLM(turn, results, maxOutputChars) {
|
|
117
|
+
if (results == null) return {
|
|
118
|
+
output: `Search failed: ${MISSING_SEARCH_RESULT_DATA_ERROR}`,
|
|
119
|
+
references: []
|
|
120
|
+
};
|
|
116
121
|
const trimmedHighlights = trimHighlightsToBudget(results, resolveMaxLLMOutputChars(maxOutputChars));
|
|
117
122
|
const outputLines = [];
|
|
118
123
|
const addSection = (title) => {
|
|
@@ -121,6 +126,7 @@ function formatResultsForLLM(turn, results, maxOutputChars) {
|
|
|
121
126
|
outputLines.push("");
|
|
122
127
|
};
|
|
123
128
|
const references = [];
|
|
129
|
+
if (results.error != null && results.error !== "") outputLines.push(`Search failed: ${results.error}`);
|
|
124
130
|
if (results.organic?.length != null && results.organic.length > 0) {
|
|
125
131
|
addSection(`Web Results, Turn ${turn}`);
|
|
126
132
|
for (let i = 0; i < results.organic.length; i++) {
|
|
@@ -189,6 +195,6 @@ function formatResultsForLLM(turn, results, maxOutputChars) {
|
|
|
189
195
|
};
|
|
190
196
|
}
|
|
191
197
|
//#endregion
|
|
192
|
-
export { formatResultsForLLM };
|
|
198
|
+
export { MISSING_SEARCH_RESULT_DATA_ERROR, formatResultsForLLM };
|
|
193
199
|
|
|
194
200
|
//# sourceMappingURL=format.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.mjs","names":[],"sources":["../../../../src/tools/search/format.ts"],"mappings":";;AAOA,MAAM,+BAA+B;AAIrC,MAAM,8BAA8B;
|
|
1
|
+
{"version":3,"file":"format.mjs","names":[],"sources":["../../../../src/tools/search/format.ts"],"mappings":"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"}
|
|
@@ -21,6 +21,9 @@ function resolveSearchOutcome(data, query) {
|
|
|
21
21
|
if (count === 0) return;
|
|
22
22
|
return `Found ${count} result${count === 1 ? "" : "s"} for "${query}"`;
|
|
23
23
|
}
|
|
24
|
+
function normalizeSearchResultData(result) {
|
|
25
|
+
return result ?? { error: "Search provider returned no result data" };
|
|
26
|
+
}
|
|
24
27
|
const countWebResults = (data) => {
|
|
25
28
|
const organic = data.organic ?? [];
|
|
26
29
|
const topStories = data.topStories ?? [];
|
|
@@ -194,10 +197,11 @@ function createTool({ schema, search, maxOutputChars, onSearchResults: _onSearch
|
|
|
194
197
|
})
|
|
195
198
|
});
|
|
196
199
|
const turn = runnableConfig.toolCall?.turn ?? 0;
|
|
197
|
-
const
|
|
200
|
+
const resultData = normalizeSearchResultData(searchResult);
|
|
201
|
+
const { output, references } = formatResultsForLLM(turn, resultData, maxOutputChars);
|
|
198
202
|
const data = {
|
|
199
203
|
turn,
|
|
200
|
-
...
|
|
204
|
+
...resultData,
|
|
201
205
|
references
|
|
202
206
|
};
|
|
203
207
|
const outcome = resolveSearchOutcome(data, query);
|
|
@@ -344,6 +348,6 @@ const createSearchTool = (config = {}) => {
|
|
|
344
348
|
});
|
|
345
349
|
};
|
|
346
350
|
//#endregion
|
|
347
|
-
export { createSearchTool, executeParallelSearches, resolveSearchOutcome };
|
|
351
|
+
export { createSearchTool, executeParallelSearches, normalizeSearchResultData, resolveSearchOutcome };
|
|
348
352
|
|
|
349
353
|
//# sourceMappingURL=tool.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.mjs","names":["params"],"sources":["../../../../src/tools/search/tool.ts"],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tool.mjs","names":["params"],"sources":["../../../../src/tools/search/tool.ts"],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export declare class AgentContext {
|
|
|
15
15
|
static fromConfig(agentConfig: t.AgentInputs, tokenCounter?: t.TokenCounter, indexTokenCountMap?: Record<string, number>, toolExecution?: t.ToolExecutionConfig): AgentContext;
|
|
16
16
|
/** Agent identifier */
|
|
17
17
|
agentId: string;
|
|
18
|
+
/** Logical endpoint selected by the host before provider resolution. */
|
|
19
|
+
endpoint: string;
|
|
18
20
|
/** Partition for this agent's transient code session and file refs. */
|
|
19
21
|
codeSessionKey?: string;
|
|
20
22
|
/** Human-readable name for this agent (used in handoff context). Falls back to agentId if not provided. */
|
|
@@ -221,8 +223,9 @@ export declare class AgentContext {
|
|
|
221
223
|
/** Names of sibling agents executing in parallel (empty if sequential) */
|
|
222
224
|
parallelSiblings: string[];
|
|
223
225
|
};
|
|
224
|
-
constructor({ agentId, codeSessionKey, name, provider, clientOptions, langfuse, maxContextTokens, streamBuffer, tokenCounter, tools, toolMap, toolRegistry, toolExecution, toolDefinitions, instructions, additionalInstructions, reasoningKey, toolEnd, instructionTokens, useLegacyContent, discoveredTools, summarizationEnabled, summarizationConfig, compactionSemanticIndex, contextPruningConfig, maxToolResultChars, }: {
|
|
226
|
+
constructor({ agentId, endpoint, codeSessionKey, name, provider, clientOptions, langfuse, maxContextTokens, streamBuffer, tokenCounter, tools, toolMap, toolRegistry, toolExecution, toolDefinitions, instructions, additionalInstructions, reasoningKey, toolEnd, instructionTokens, useLegacyContent, discoveredTools, summarizationEnabled, summarizationConfig, compactionSemanticIndex, contextPruningConfig, maxToolResultChars, }: {
|
|
225
227
|
agentId: string;
|
|
228
|
+
endpoint?: string;
|
|
226
229
|
codeSessionKey?: string;
|
|
227
230
|
name?: string;
|
|
228
231
|
provider: t.ProviderName;
|
package/dist/types/langfuse.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ type LangfuseAttributeParams = AgentLangfuseHandlerParams & {
|
|
|
44
44
|
};
|
|
45
45
|
export declare function isExplicitLangfuseConfig(langfuse?: t.LangfuseConfig): boolean;
|
|
46
46
|
export declare function createLibreChatTraceAttributes(attributes: LangfuseConfigTraceAttributes): LangfuseTraceAttributes;
|
|
47
|
-
export declare function createLangfuseTraceMetadata({ messageId, parentMessageId, agentId, agentName, rootAgentId, rootAgentName, activeAgentId, activeAgentName, }: {
|
|
47
|
+
export declare function createLangfuseTraceMetadata({ messageId, parentMessageId, agentId, agentName, rootAgentId, rootAgentName, activeAgentId, activeAgentName, endpoint, model, provider, resolvedProvider, }: {
|
|
48
48
|
messageId?: unknown;
|
|
49
49
|
parentMessageId?: unknown;
|
|
50
50
|
agentId?: unknown;
|
|
@@ -53,6 +53,10 @@ export declare function createLangfuseTraceMetadata({ messageId, parentMessageId
|
|
|
53
53
|
rootAgentName?: unknown;
|
|
54
54
|
activeAgentId?: unknown;
|
|
55
55
|
activeAgentName?: unknown;
|
|
56
|
+
endpoint?: unknown;
|
|
57
|
+
model?: unknown;
|
|
58
|
+
provider?: unknown;
|
|
59
|
+
resolvedProvider?: unknown;
|
|
56
60
|
}): LangfuseTraceMetadata;
|
|
57
61
|
export declare function getLangfuseTraceName(traceMetadata?: LangfuseTraceMetadata, fallback?: string): string;
|
|
58
62
|
export declare function shouldCreateLangfuseHandler(langfuse?: t.LangfuseConfig): boolean;
|
|
@@ -19,6 +19,7 @@ type OpenAICoreRequestOptions = OpenAIClient.RequestOptions;
|
|
|
19
19
|
type OpenAICompletionParam = OpenAIClient.Chat.Completions.ChatCompletionMessageParam;
|
|
20
20
|
type LibreChatOpenAIFields = t.ChatOpenAIFields & {
|
|
21
21
|
_lc_stream_delay?: number;
|
|
22
|
+
firstPartyEndpoint?: boolean;
|
|
22
23
|
includeReasoningContent?: boolean;
|
|
23
24
|
includeReasoningDetails?: boolean;
|
|
24
25
|
convertReasoningDetailsToContent?: boolean;
|
|
@@ -30,6 +31,7 @@ type LibreChatOpenAIFields = t.ChatOpenAIFields & {
|
|
|
30
31
|
};
|
|
31
32
|
type LibreChatAzureOpenAIFields = t.AzureOpenAIInput & {
|
|
32
33
|
_lc_stream_delay?: number;
|
|
34
|
+
firstPartyEndpoint?: boolean;
|
|
33
35
|
promptCacheExplicit?: boolean;
|
|
34
36
|
safety_identifier?: string;
|
|
35
37
|
};
|
|
@@ -38,10 +40,12 @@ export declare function addChatCacheBreakpoints(messages: OpenAIClient.Chat.Comp
|
|
|
38
40
|
/** @internal */
|
|
39
41
|
export declare function addResponseCacheBreakpoints(input: OpenAIClient.Responses.ResponseCreateParams['input']): OpenAIClient.Responses.ResponseCreateParams['input'];
|
|
40
42
|
/** @internal */
|
|
43
|
+
export declare function isGpt6AstraModel(model?: string): boolean;
|
|
44
|
+
/** @internal */
|
|
41
45
|
export declare function shouldIncludeEncryptedReasoning(model: string, params: {
|
|
42
46
|
store?: boolean | null;
|
|
43
47
|
reasoning?: unknown;
|
|
44
|
-
}): boolean;
|
|
48
|
+
}, astraRulesApply?: boolean): boolean;
|
|
45
49
|
export declare function getCacheWriteTokens(message: BaseMessage): number | undefined;
|
|
46
50
|
export declare function attachCacheWriteUsage(message: BaseMessage): void;
|
|
47
51
|
export declare function attachCacheWriteMetadata(response: OpenAIClient.Responses.Response): OpenAIClient.Responses.Response;
|
|
@@ -97,6 +101,9 @@ export declare class CustomAzureOpenAIClient extends AzureOpenAIClient {
|
|
|
97
101
|
fetchWithTimeout(url: RequestInfo, init: RequestInit | undefined, ms: number, controller: AbortController): Promise<Response>;
|
|
98
102
|
}
|
|
99
103
|
export declare class ChatOpenAI extends OriginalChatOpenAI<t.ChatOpenAICallOptions> {
|
|
104
|
+
protected firstPartyEndpoint?: boolean;
|
|
105
|
+
/** @see {@link astraRulesApply} */
|
|
106
|
+
protected get astraRulesApply(): boolean;
|
|
100
107
|
_lc_stream_delay: number;
|
|
101
108
|
constructor(fields?: LibreChatOpenAIFields & t.OpenAIChatInput['modelKwargs']);
|
|
102
109
|
get exposedClient(): CustomOpenAIClient;
|
|
@@ -117,6 +124,9 @@ export declare class ChatOpenAI extends OriginalChatOpenAI<t.ChatOpenAICallOptio
|
|
|
117
124
|
protected _streamRawResponseChunks(messages: BaseMessage[], options: this['ParsedCallOptions'], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
|
|
118
125
|
}
|
|
119
126
|
export declare class AzureChatOpenAI extends OriginalAzureChatOpenAI {
|
|
127
|
+
protected firstPartyEndpoint?: boolean;
|
|
128
|
+
/** @see {@link astraRulesApply} */
|
|
129
|
+
protected get astraRulesApply(): boolean;
|
|
120
130
|
_lc_stream_delay: number;
|
|
121
131
|
constructor(fields?: LibreChatAzureOpenAIFields);
|
|
122
132
|
get exposedClient(): CustomOpenAIClient;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
2
1
|
import type { BaseMessage } from '@langchain/core/messages';
|
|
2
|
+
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
3
3
|
import type { ToolOutputReferenceRegistry } from '@/tools/toolOutputReferences';
|
|
4
4
|
import type * as t from '@/types';
|
|
5
5
|
declare const preparedProviderRequestBrand: unique symbol;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type * as t from './types';
|
|
2
|
+
export declare const MISSING_SEARCH_RESULT_DATA_ERROR = "Search provider returned no result data";
|
|
2
3
|
/** Resolves the per-search highlight budget from config, the
|
|
3
4
|
* `SEARCH_MAX_LLM_OUTPUT_CHARS` env var, or the default (50,000 chars). */
|
|
4
5
|
export declare function resolveMaxLLMOutputChars(maxOutputChars?: number): number;
|
|
5
|
-
export declare function formatResultsForLLM(turn: number, results
|
|
6
|
+
export declare function formatResultsForLLM(turn: number, results?: t.SearchResultData | null, maxOutputChars?: number): {
|
|
6
7
|
output: string;
|
|
7
8
|
references: t.ResultReference[];
|
|
8
9
|
};
|
|
@@ -20,6 +20,7 @@ import { createSearchAPI } from './search';
|
|
|
20
20
|
* model-authored intent to stand unchanged as the label.
|
|
21
21
|
*/
|
|
22
22
|
export declare function resolveSearchOutcome(data: t.SearchResultData, query: string): string | undefined;
|
|
23
|
+
export declare function normalizeSearchResultData(result: t.SearchResultData | null | undefined): t.SearchResultData;
|
|
23
24
|
/**
|
|
24
25
|
* Executes parallel searches and merges the results,
|
|
25
26
|
* deduplicating top stories by link
|
|
@@ -672,6 +672,8 @@ export interface LangfuseConfig {
|
|
|
672
672
|
}
|
|
673
673
|
interface AgentInputFields {
|
|
674
674
|
agentId: string;
|
|
675
|
+
/** Logical endpoint selected by the host before provider resolution. */
|
|
676
|
+
endpoint?: string;
|
|
675
677
|
/**
|
|
676
678
|
* Partition key for transient code-session ids and file refs. Agents with
|
|
677
679
|
* the same key share those refs; different execution profiles/scopes must
|
|
@@ -58,6 +58,29 @@ export type GoogleThinkingConfig = {
|
|
|
58
58
|
export type ManagedRequestOptions = {
|
|
59
59
|
promptCacheExplicit?: boolean;
|
|
60
60
|
safety_identifier?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Declares that this client talks to the first-party OpenAI or Azure surface.
|
|
63
|
+
* Gates the model-specific request *shaping* documented only for it —
|
|
64
|
+
* currently GPT-6 Astra's rejected sampling and logprob parameters, its
|
|
65
|
+
* unsupported reasoning efforts, and the encrypted reasoning it supports —
|
|
66
|
+
* and defaults to off.
|
|
67
|
+
*
|
|
68
|
+
* Shaping only. Which API serves the turn is not decided here: GPT-6 Astra
|
|
69
|
+
* serves tool calls only from the Responses API, and a caller wanting them
|
|
70
|
+
* must select it with `useResponsesApi`, alongside the rest of the request
|
|
71
|
+
* shaping that depends on which API is in use.
|
|
72
|
+
*
|
|
73
|
+
* The shaping runs inside this SDK's own request delegates. A caller that
|
|
74
|
+
* supplies its own `completions` or `responses` delegate replaces that
|
|
75
|
+
* construction and owns the request shaping for it — this flag cannot reach
|
|
76
|
+
* inside a delegate it did not build.
|
|
77
|
+
*
|
|
78
|
+
* Declared rather than inferred from a base URL: only the caller knows
|
|
79
|
+
* whether a URL is a faithful first-party route, a gateway, or a proxy with
|
|
80
|
+
* its own semantics, and every gate it controls removes capability, so
|
|
81
|
+
* guessing wrong silently degrades an endpoint the SDK cannot see.
|
|
82
|
+
*/
|
|
83
|
+
firstPartyEndpoint?: boolean;
|
|
61
84
|
};
|
|
62
85
|
/**
|
|
63
86
|
* Adaptive stream-smoothing configuration shared by every provider client.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@librechat/agents",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.20",
|
|
4
4
|
"reova": {
|
|
5
5
|
"enabled": true,
|
|
6
6
|
"endpoint": "https://telemetry.reo.dev/data"
|
|
@@ -266,6 +266,7 @@
|
|
|
266
266
|
"script5": "tsx -r dotenv/config ./src/scripts/cli5.ts --name 'Jo' --location 'New York, NY'",
|
|
267
267
|
"test": "NODE_OPTIONS='--experimental-vm-modules' jest",
|
|
268
268
|
"test:live:handoffs": "RUN_HANDOFF_LIVE_TESTS=1 NODE_OPTIONS='--experimental-vm-modules' jest src/specs/agent-handoffs.live.test.ts --runInBand",
|
|
269
|
+
"test:live:cross-provider-attachments": "RUN_CROSS_PROVIDER_ATTACHMENT_LIVE_TESTS=1 NODE_OPTIONS='--experimental-vm-modules' jest src/specs/cross-provider-attachments.live.test.ts --runInBand",
|
|
269
270
|
"test:live:ask-user-questions": "RUN_ASK_USER_QUESTIONS_LIVE_TESTS=1 NODE_OPTIONS='--experimental-vm-modules' jest src/specs/ask-user-questions.live.test.ts --runInBand",
|
|
270
271
|
"test:memory": "NODE_OPTIONS='--expose-gc' npx jest src/specs/title.memory-leak.test.ts",
|
|
271
272
|
"test:all": "npm test -- --testPathIgnorePatterns=title.memory-leak.test.ts && npm run test:memory",
|
|
@@ -104,6 +104,7 @@ export class AgentContext {
|
|
|
104
104
|
): AgentContext {
|
|
105
105
|
const {
|
|
106
106
|
agentId,
|
|
107
|
+
endpoint,
|
|
107
108
|
codeSessionKey,
|
|
108
109
|
name,
|
|
109
110
|
provider,
|
|
@@ -135,6 +136,7 @@ export class AgentContext {
|
|
|
135
136
|
|
|
136
137
|
const agentContext = new AgentContext({
|
|
137
138
|
agentId,
|
|
139
|
+
endpoint,
|
|
138
140
|
codeSessionKey,
|
|
139
141
|
name: name ?? agentId,
|
|
140
142
|
provider,
|
|
@@ -219,6 +221,8 @@ export class AgentContext {
|
|
|
219
221
|
|
|
220
222
|
/** Agent identifier */
|
|
221
223
|
agentId: string;
|
|
224
|
+
/** Logical endpoint selected by the host before provider resolution. */
|
|
225
|
+
endpoint: string;
|
|
222
226
|
/** Partition for this agent's transient code session and file refs. */
|
|
223
227
|
codeSessionKey?: string;
|
|
224
228
|
/** Human-readable name for this agent (used in handoff context). Falls back to agentId if not provided. */
|
|
@@ -454,6 +458,7 @@ export class AgentContext {
|
|
|
454
458
|
|
|
455
459
|
constructor({
|
|
456
460
|
agentId,
|
|
461
|
+
endpoint,
|
|
457
462
|
codeSessionKey,
|
|
458
463
|
name,
|
|
459
464
|
provider,
|
|
@@ -481,6 +486,7 @@ export class AgentContext {
|
|
|
481
486
|
maxToolResultChars,
|
|
482
487
|
}: {
|
|
483
488
|
agentId: string;
|
|
489
|
+
endpoint?: string;
|
|
484
490
|
codeSessionKey?: string;
|
|
485
491
|
name?: string;
|
|
486
492
|
provider: t.ProviderName;
|
|
@@ -508,6 +514,7 @@ export class AgentContext {
|
|
|
508
514
|
maxToolResultChars?: number;
|
|
509
515
|
}) {
|
|
510
516
|
this.agentId = agentId;
|
|
517
|
+
this.endpoint = endpoint ?? provider;
|
|
511
518
|
this.codeSessionKey = codeSessionKey;
|
|
512
519
|
this.name = name;
|
|
513
520
|
this.provider = provider;
|
package/src/graphs/Graph.ts
CHANGED
|
@@ -151,6 +151,7 @@ import { shouldTraceToolNodeForLangfuse } from '@/langfuseToolOutputTracing';
|
|
|
151
151
|
import { createLocalCodingToolBundle } from '@/tools/local/LocalCodingTools';
|
|
152
152
|
import { SUBAGENT_REPLAY_CONTROLLER } from '@/tools/subagent/SubagentReplay';
|
|
153
153
|
import { applyGraphRuntimeConfig } from '@/graphs/applyGraphRuntimeConfig';
|
|
154
|
+
import { isFadingTier, isInformativeFadingTier } from '@/messages/fading';
|
|
154
155
|
import { createContextPressureMeter } from '@/llm/contextPressureMeter';
|
|
155
156
|
import { safeDispatchCustomEvent, emitAgentLog } from '@/utils/events';
|
|
156
157
|
import { prepareProviderRequest } from '@/llm/prepareProviderRequest';
|
|
@@ -163,7 +164,6 @@ import { initializeLangfuseTracing } from '@/instrumentation';
|
|
|
163
164
|
import { shouldTriggerSummarization } from '@/summarization';
|
|
164
165
|
import { isRunStepResumeState } from '@/tools/runStepResume';
|
|
165
166
|
import { resolveLocalToolsForBinding } from '@/tools/local';
|
|
166
|
-
import { isFadingTier, isInformativeFadingTier } from '@/messages/fading';
|
|
167
167
|
import { createSummarizeNode } from '@/summarization/node';
|
|
168
168
|
import { getTruncationStopReason } from '@/llm/truncation';
|
|
169
169
|
import { messagesStateReducer } from '@/messages/reducer';
|
|
@@ -3992,6 +3992,7 @@ export class StandardGraph extends Graph<t.BaseGraphState, t.GraphNode> {
|
|
|
3992
3992
|
rootAgentName: this.agentContexts.get(this.defaultAgentId)?.name,
|
|
3993
3993
|
activeAgentId: agentId,
|
|
3994
3994
|
activeAgentName: agentContext.name,
|
|
3995
|
+
endpoint: agentContext.endpoint,
|
|
3995
3996
|
});
|
|
3996
3997
|
let langfuseHandler: CallbackEntry | undefined;
|
|
3997
3998
|
let invokeConfig = {
|
package/src/langfuse.ts
CHANGED
|
@@ -840,6 +840,10 @@ export function createLangfuseTraceMetadata({
|
|
|
840
840
|
rootAgentName,
|
|
841
841
|
activeAgentId,
|
|
842
842
|
activeAgentName,
|
|
843
|
+
endpoint,
|
|
844
|
+
model,
|
|
845
|
+
provider,
|
|
846
|
+
resolvedProvider,
|
|
843
847
|
}: {
|
|
844
848
|
messageId?: unknown;
|
|
845
849
|
parentMessageId?: unknown;
|
|
@@ -849,6 +853,10 @@ export function createLangfuseTraceMetadata({
|
|
|
849
853
|
rootAgentName?: unknown;
|
|
850
854
|
activeAgentId?: unknown;
|
|
851
855
|
activeAgentName?: unknown;
|
|
856
|
+
endpoint?: unknown;
|
|
857
|
+
model?: unknown;
|
|
858
|
+
provider?: unknown;
|
|
859
|
+
resolvedProvider?: unknown;
|
|
852
860
|
}): LangfuseTraceMetadata {
|
|
853
861
|
return createTraceMetadata({
|
|
854
862
|
messageId,
|
|
@@ -859,6 +867,10 @@ export function createLangfuseTraceMetadata({
|
|
|
859
867
|
rootAgentName,
|
|
860
868
|
activeAgentId,
|
|
861
869
|
activeAgentName,
|
|
870
|
+
endpoint,
|
|
871
|
+
model,
|
|
872
|
+
provider,
|
|
873
|
+
resolvedProvider,
|
|
862
874
|
});
|
|
863
875
|
}
|
|
864
876
|
|
package/src/llm/invoke.ts
CHANGED
|
@@ -692,11 +692,32 @@ export async function attemptInvoke(
|
|
|
692
692
|
config?: RunnableConfig
|
|
693
693
|
): Promise<Partial<t.BaseGraphState>> {
|
|
694
694
|
const provider = resolveAttemptProvider(params);
|
|
695
|
-
const
|
|
695
|
+
const providerStampedConfig: RunnableConfig = {
|
|
696
696
|
...config,
|
|
697
697
|
metadata: {
|
|
698
698
|
...(config?.metadata ?? {}),
|
|
699
699
|
[Constants.INVOKED_PROVIDER]: provider,
|
|
700
|
+
provider,
|
|
701
|
+
resolvedProvider: provider,
|
|
702
|
+
},
|
|
703
|
+
};
|
|
704
|
+
const request = resolveAttemptRequest(params, providerStampedConfig);
|
|
705
|
+
const configuredModel = providerStampedConfig.metadata?.[
|
|
706
|
+
Constants.INVOKED_MODEL
|
|
707
|
+
];
|
|
708
|
+
const modelId =
|
|
709
|
+
request.modelId ??
|
|
710
|
+
(typeof configuredModel === 'string' ? configuredModel : undefined);
|
|
711
|
+
const stampedConfig: RunnableConfig = {
|
|
712
|
+
...providerStampedConfig,
|
|
713
|
+
metadata: {
|
|
714
|
+
...providerStampedConfig.metadata,
|
|
715
|
+
...(modelId == null
|
|
716
|
+
? {}
|
|
717
|
+
: {
|
|
718
|
+
[Constants.INVOKED_MODEL]: modelId,
|
|
719
|
+
model: modelId,
|
|
720
|
+
}),
|
|
700
721
|
/**
|
|
701
722
|
* One `attemptInvoke` call is one model attempt; primary, fallback,
|
|
702
723
|
* and retry attempts within a node otherwise share the same langgraph
|
|
@@ -727,7 +748,7 @@ export async function attemptInvoke(
|
|
|
727
748
|
try {
|
|
728
749
|
return await attemptInvokeBody(
|
|
729
750
|
{
|
|
730
|
-
request
|
|
751
|
+
request,
|
|
731
752
|
context: params.context,
|
|
732
753
|
onChunk: params.onChunk,
|
|
733
754
|
preemptAgentId: params.preemptAgentId,
|