@librechat/agents 3.4.7 → 3.5.1

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.
Files changed (924) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +0 -356
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/agents/projection.cjs +0 -9
  4. package/dist/cjs/agents/projection.cjs.map +1 -1
  5. package/dist/cjs/common/constants.cjs +0 -26
  6. package/dist/cjs/common/constants.cjs.map +1 -1
  7. package/dist/cjs/common/enum.cjs +0 -85
  8. package/dist/cjs/common/enum.cjs.map +1 -1
  9. package/dist/cjs/events.cjs +0 -14
  10. package/dist/cjs/events.cjs.map +1 -1
  11. package/dist/cjs/graphs/Graph.cjs +1 -909
  12. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  13. package/dist/cjs/graphs/MultiAgentGraph.cjs +7 -272
  14. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  15. package/dist/cjs/graphs/applyGraphRuntimeConfig.cjs.map +1 -1
  16. package/dist/cjs/graphs/createGraph.cjs.map +1 -1
  17. package/dist/cjs/hitl/askUserQuestion.cjs +0 -53
  18. package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
  19. package/dist/cjs/hitl/askUserQuestions.cjs +0 -20
  20. package/dist/cjs/hitl/askUserQuestions.cjs.map +1 -1
  21. package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs +0 -6
  22. package/dist/cjs/hitl/askUserQuestionsInterrupt.cjs.map +1 -1
  23. package/dist/cjs/hooks/HookRegistry.cjs +0 -127
  24. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  25. package/dist/cjs/hooks/createToolPolicyHook.cjs +0 -38
  26. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  27. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +0 -77
  28. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  29. package/dist/cjs/hooks/executeHooks.cjs +0 -79
  30. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  31. package/dist/cjs/hooks/index.cjs +0 -16
  32. package/dist/cjs/hooks/index.cjs.map +1 -1
  33. package/dist/cjs/hooks/matchers.cjs +0 -104
  34. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  35. package/dist/cjs/hooks/types.cjs +0 -8
  36. package/dist/cjs/hooks/types.cjs.map +1 -1
  37. package/dist/cjs/instrumentation.cjs +0 -14
  38. package/dist/cjs/instrumentation.cjs.map +1 -1
  39. package/dist/cjs/langfuse.cjs +0 -75
  40. package/dist/cjs/langfuse.cjs.map +1 -1
  41. package/dist/cjs/langfuseConfig.cjs.map +1 -1
  42. package/dist/cjs/langfuseRuntimeContext.cjs +0 -13
  43. package/dist/cjs/langfuseRuntimeContext.cjs.map +1 -1
  44. package/dist/cjs/langfuseRuntimeScope.cjs +0 -4
  45. package/dist/cjs/langfuseRuntimeScope.cjs.map +1 -1
  46. package/dist/cjs/langfuseSpanRegistry.cjs +0 -28
  47. package/dist/cjs/langfuseSpanRegistry.cjs.map +1 -1
  48. package/dist/cjs/langfuseToolOutputTracing.cjs +0 -3
  49. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  50. package/dist/cjs/langfuseTraceShaping.cjs +0 -74
  51. package/dist/cjs/langfuseTraceShaping.cjs.map +1 -1
  52. package/dist/cjs/llm/anthropic/index.cjs +0 -3
  53. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  54. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  55. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +1 -111
  56. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  57. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +0 -1
  58. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  59. package/dist/cjs/llm/anthropic/utils/stream_events.cjs +0 -8
  60. package/dist/cjs/llm/anthropic/utils/stream_events.cjs.map +1 -1
  61. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  62. package/dist/cjs/llm/bedrock/cachePoints.cjs.map +1 -1
  63. package/dist/cjs/llm/bedrock/index.cjs +1 -95
  64. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  65. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  66. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +0 -78
  67. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  68. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +0 -24
  69. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
  70. package/dist/cjs/llm/contextOverflowRecovery.cjs +0 -62
  71. package/dist/cjs/llm/contextOverflowRecovery.cjs.map +1 -1
  72. package/dist/cjs/llm/fake.cjs.map +1 -1
  73. package/dist/cjs/llm/google/index.cjs +2 -21
  74. package/dist/cjs/llm/google/index.cjs.map +1 -1
  75. package/dist/cjs/llm/google/utils/common.cjs +0 -35
  76. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  77. package/dist/cjs/llm/init.cjs +0 -9
  78. package/dist/cjs/llm/init.cjs.map +1 -1
  79. package/dist/cjs/llm/invoke.cjs +1 -270
  80. package/dist/cjs/llm/invoke.cjs.map +1 -1
  81. package/dist/cjs/llm/mistral/index.cjs.map +1 -1
  82. package/dist/cjs/llm/openai/index.cjs +0 -99
  83. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  84. package/dist/cjs/llm/openai/streamMetadata.cjs +0 -21
  85. package/dist/cjs/llm/openai/streamMetadata.cjs.map +1 -1
  86. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  87. package/dist/cjs/llm/openrouter/index.cjs +0 -1
  88. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  89. package/dist/cjs/llm/openrouter/toolCache.cjs +0 -6
  90. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  91. package/dist/cjs/llm/preempt.cjs +0 -75
  92. package/dist/cjs/llm/preempt.cjs.map +1 -1
  93. package/dist/cjs/llm/providers.cjs.map +1 -1
  94. package/dist/cjs/llm/request.cjs +0 -10
  95. package/dist/cjs/llm/request.cjs.map +1 -1
  96. package/dist/cjs/llm/stream/chunkAdapters.cjs +0 -62
  97. package/dist/cjs/llm/stream/chunkAdapters.cjs.map +1 -1
  98. package/dist/cjs/llm/stream/smoother.cjs +0 -58
  99. package/dist/cjs/llm/stream/smoother.cjs.map +1 -1
  100. package/dist/cjs/llm/streamLimits.cjs +4 -293
  101. package/dist/cjs/llm/streamLimits.cjs.map +1 -1
  102. package/dist/cjs/llm/truncation.cjs +0 -36
  103. package/dist/cjs/llm/truncation.cjs.map +1 -1
  104. package/dist/cjs/llm/vertexai/index.cjs +0 -330
  105. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  106. package/dist/cjs/messages/alternation.cjs +0 -43
  107. package/dist/cjs/messages/alternation.cjs.map +1 -1
  108. package/dist/cjs/messages/anthropicToolCache.cjs +0 -45
  109. package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
  110. package/dist/cjs/messages/assistantPhase.cjs +0 -12
  111. package/dist/cjs/messages/assistantPhase.cjs.map +1 -1
  112. package/dist/cjs/messages/budget.cjs +0 -9
  113. package/dist/cjs/messages/budget.cjs.map +1 -1
  114. package/dist/cjs/messages/cache.cjs +0 -172
  115. package/dist/cjs/messages/cache.cjs.map +1 -1
  116. package/dist/cjs/messages/content.cjs +0 -9
  117. package/dist/cjs/messages/content.cjs.map +1 -1
  118. package/dist/cjs/messages/contextPruning.cjs +0 -15
  119. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  120. package/dist/cjs/messages/contextPruningSettings.cjs +0 -3
  121. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
  122. package/dist/cjs/messages/core.cjs +0 -48
  123. package/dist/cjs/messages/core.cjs.map +1 -1
  124. package/dist/cjs/messages/format.cjs +1 -345
  125. package/dist/cjs/messages/format.cjs.map +1 -1
  126. package/dist/cjs/messages/handoffCue.cjs +0 -36
  127. package/dist/cjs/messages/handoffCue.cjs.map +1 -1
  128. package/dist/cjs/messages/ids.cjs.map +1 -1
  129. package/dist/cjs/messages/injected.cjs +0 -33
  130. package/dist/cjs/messages/injected.cjs.map +1 -1
  131. package/dist/cjs/messages/langchain.cjs +0 -14
  132. package/dist/cjs/messages/langchain.cjs.map +1 -1
  133. package/dist/cjs/messages/prune.cjs +1 -184
  134. package/dist/cjs/messages/prune.cjs.map +1 -1
  135. package/dist/cjs/messages/recency.cjs +0 -32
  136. package/dist/cjs/messages/recency.cjs.map +1 -1
  137. package/dist/cjs/messages/reducer.cjs +0 -30
  138. package/dist/cjs/messages/reducer.cjs.map +1 -1
  139. package/dist/cjs/messages/tools.cjs +0 -14
  140. package/dist/cjs/messages/tools.cjs.map +1 -1
  141. package/dist/cjs/openai/index.cjs.map +1 -1
  142. package/dist/cjs/prompts/activityLabel.cjs +9 -79
  143. package/dist/cjs/prompts/activityLabel.cjs.map +1 -1
  144. package/dist/cjs/responses/index.cjs.map +1 -1
  145. package/dist/cjs/run.cjs +2 -538
  146. package/dist/cjs/run.cjs.map +1 -1
  147. package/dist/cjs/session/AgentSession.cjs +1 -17
  148. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  149. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  150. package/dist/cjs/session/handlers.cjs +0 -7
  151. package/dist/cjs/session/handlers.cjs.map +1 -1
  152. package/dist/cjs/session/ids.cjs.map +1 -1
  153. package/dist/cjs/session/messageSerialization.cjs +0 -4
  154. package/dist/cjs/session/messageSerialization.cjs.map +1 -1
  155. package/dist/cjs/stream.cjs +1 -93
  156. package/dist/cjs/stream.cjs.map +1 -1
  157. package/dist/cjs/summarization/index.cjs +0 -27
  158. package/dist/cjs/summarization/index.cjs.map +1 -1
  159. package/dist/cjs/summarization/node.cjs +0 -273
  160. package/dist/cjs/summarization/node.cjs.map +1 -1
  161. package/dist/cjs/tools/BashExecutor.cjs +0 -35
  162. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  163. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +0 -24
  164. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  165. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  166. package/dist/cjs/tools/CodeExecutor.cjs +0 -13
  167. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  168. package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
  169. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +0 -101
  170. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  171. package/dist/cjs/tools/ReadFile.cjs.map +1 -1
  172. package/dist/cjs/tools/SkillTool.cjs +0 -5
  173. package/dist/cjs/tools/SkillTool.cjs.map +1 -1
  174. package/dist/cjs/tools/SubagentTool.cjs +0 -10
  175. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  176. package/dist/cjs/tools/ToolNode.cjs +6 -1038
  177. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  178. package/dist/cjs/tools/ToolSearch.cjs +0 -179
  179. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  180. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
  181. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
  182. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +0 -39
  183. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  184. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  185. package/dist/cjs/tools/eagerEventExecution.cjs +0 -6
  186. package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
  187. package/dist/cjs/tools/handlers.cjs +1 -41
  188. package/dist/cjs/tools/handlers.cjs.map +1 -1
  189. package/dist/cjs/tools/intentArg.cjs +1 -132
  190. package/dist/cjs/tools/intentArg.cjs.map +1 -1
  191. package/dist/cjs/tools/local/CompileCheckTool.cjs +0 -25
  192. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  193. package/dist/cjs/tools/local/FileCheckpointer.cjs +0 -23
  194. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  195. package/dist/cjs/tools/local/LocalCodingTools.cjs +0 -80
  196. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  197. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +0 -126
  198. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  199. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  200. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +0 -12
  201. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  202. package/dist/cjs/tools/local/attachments.cjs +0 -44
  203. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  204. package/dist/cjs/tools/local/bashAst.cjs +0 -16
  205. package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
  206. package/dist/cjs/tools/local/editStrategies.cjs +0 -14
  207. package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
  208. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  209. package/dist/cjs/tools/local/syntaxCheck.cjs +0 -31
  210. package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
  211. package/dist/cjs/tools/local/textEncoding.cjs +0 -11
  212. package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
  213. package/dist/cjs/tools/local/workspaceFS.cjs +0 -33
  214. package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
  215. package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
  216. package/dist/cjs/tools/schema.cjs +0 -8
  217. package/dist/cjs/tools/schema.cjs.map +1 -1
  218. package/dist/cjs/tools/search/anthropic.cjs +0 -9
  219. package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
  220. package/dist/cjs/tools/search/content.cjs.map +1 -1
  221. package/dist/cjs/tools/search/crw-scraper.cjs +0 -33
  222. package/dist/cjs/tools/search/crw-scraper.cjs.map +1 -1
  223. package/dist/cjs/tools/search/crw-search.cjs +0 -2
  224. package/dist/cjs/tools/search/crw-search.cjs.map +1 -1
  225. package/dist/cjs/tools/search/firecrawl.cjs +0 -25
  226. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  227. package/dist/cjs/tools/search/format.cjs +0 -30
  228. package/dist/cjs/tools/search/format.cjs.map +1 -1
  229. package/dist/cjs/tools/search/highlights.cjs +0 -16
  230. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  231. package/dist/cjs/tools/search/keenable-scraper.cjs +0 -8
  232. package/dist/cjs/tools/search/keenable-scraper.cjs.map +1 -1
  233. package/dist/cjs/tools/search/keenable-search.cjs +0 -7
  234. package/dist/cjs/tools/search/keenable-search.cjs.map +1 -1
  235. package/dist/cjs/tools/search/rerankers.cjs +0 -35
  236. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  237. package/dist/cjs/tools/search/schema.cjs +0 -1
  238. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  239. package/dist/cjs/tools/search/search.cjs +1 -14
  240. package/dist/cjs/tools/search/search.cjs.map +1 -1
  241. package/dist/cjs/tools/search/serper-scraper.cjs +0 -46
  242. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  243. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
  244. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  245. package/dist/cjs/tools/search/tool.cjs +0 -25
  246. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  247. package/dist/cjs/tools/search/utils.cjs +0 -8
  248. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  249. package/dist/cjs/tools/skillCatalog.cjs +0 -6
  250. package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
  251. package/dist/cjs/tools/streamedToolCallSeals.cjs +0 -6
  252. package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
  253. package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs +0 -2
  254. package/dist/cjs/tools/subagent/SubagentExecutionRegistry.cjs.map +1 -1
  255. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +3 -213
  256. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  257. package/dist/cjs/tools/subagent/SubagentReplay.cjs.map +1 -1
  258. package/dist/cjs/tools/subagent/childGraphConfig.cjs +0 -4
  259. package/dist/cjs/tools/subagent/childGraphConfig.cjs.map +1 -1
  260. package/dist/cjs/tools/subagent/runtimeLimits.cjs.map +1 -1
  261. package/dist/cjs/tools/toolOutputReferences.cjs +1 -322
  262. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
  263. package/dist/cjs/types/hitl.cjs +0 -5
  264. package/dist/cjs/types/hitl.cjs.map +1 -1
  265. package/dist/cjs/utils/callbacks.cjs.map +1 -1
  266. package/dist/cjs/utils/errors.cjs +14 -165
  267. package/dist/cjs/utils/errors.cjs.map +1 -1
  268. package/dist/cjs/utils/events.cjs +0 -10
  269. package/dist/cjs/utils/events.cjs.map +1 -1
  270. package/dist/cjs/utils/graph.cjs.map +1 -1
  271. package/dist/cjs/utils/handlers.cjs +0 -3
  272. package/dist/cjs/utils/handlers.cjs.map +1 -1
  273. package/dist/cjs/utils/llm.cjs +0 -1
  274. package/dist/cjs/utils/llm.cjs.map +1 -1
  275. package/dist/cjs/utils/misc.cjs +0 -16
  276. package/dist/cjs/utils/misc.cjs.map +1 -1
  277. package/dist/cjs/utils/proxy.cjs +0 -26
  278. package/dist/cjs/utils/proxy.cjs.map +1 -1
  279. package/dist/cjs/utils/run.cjs +0 -6
  280. package/dist/cjs/utils/run.cjs.map +1 -1
  281. package/dist/cjs/utils/schema.cjs +0 -5
  282. package/dist/cjs/utils/schema.cjs.map +1 -1
  283. package/dist/cjs/utils/title.cjs +0 -6
  284. package/dist/cjs/utils/title.cjs.map +1 -1
  285. package/dist/cjs/utils/tokens.cjs +0 -113
  286. package/dist/cjs/utils/tokens.cjs.map +1 -1
  287. package/dist/cjs/utils/toolContent.cjs +0 -41
  288. package/dist/cjs/utils/toolContent.cjs.map +1 -1
  289. package/dist/cjs/utils/truncation.cjs +0 -61
  290. package/dist/cjs/utils/truncation.cjs.map +1 -1
  291. package/dist/esm/agents/AgentContext.mjs +0 -356
  292. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  293. package/dist/esm/agents/projection.mjs +0 -9
  294. package/dist/esm/agents/projection.mjs.map +1 -1
  295. package/dist/esm/common/constants.mjs +0 -26
  296. package/dist/esm/common/constants.mjs.map +1 -1
  297. package/dist/esm/common/enum.mjs +0 -85
  298. package/dist/esm/common/enum.mjs.map +1 -1
  299. package/dist/esm/events.mjs +0 -14
  300. package/dist/esm/events.mjs.map +1 -1
  301. package/dist/esm/graphs/Graph.mjs +1 -909
  302. package/dist/esm/graphs/Graph.mjs.map +1 -1
  303. package/dist/esm/graphs/MultiAgentGraph.mjs +7 -272
  304. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  305. package/dist/esm/graphs/applyGraphRuntimeConfig.mjs.map +1 -1
  306. package/dist/esm/graphs/createGraph.mjs.map +1 -1
  307. package/dist/esm/hitl/askUserQuestion.mjs +0 -53
  308. package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
  309. package/dist/esm/hitl/askUserQuestions.mjs +0 -20
  310. package/dist/esm/hitl/askUserQuestions.mjs.map +1 -1
  311. package/dist/esm/hitl/askUserQuestionsInterrupt.mjs +0 -6
  312. package/dist/esm/hitl/askUserQuestionsInterrupt.mjs.map +1 -1
  313. package/dist/esm/hooks/HookRegistry.mjs +0 -127
  314. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  315. package/dist/esm/hooks/createToolPolicyHook.mjs +0 -38
  316. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  317. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +0 -77
  318. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  319. package/dist/esm/hooks/executeHooks.mjs +0 -79
  320. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  321. package/dist/esm/hooks/index.mjs +0 -16
  322. package/dist/esm/hooks/index.mjs.map +1 -1
  323. package/dist/esm/hooks/matchers.mjs +0 -104
  324. package/dist/esm/hooks/matchers.mjs.map +1 -1
  325. package/dist/esm/hooks/types.mjs +0 -8
  326. package/dist/esm/hooks/types.mjs.map +1 -1
  327. package/dist/esm/instrumentation.mjs +0 -14
  328. package/dist/esm/instrumentation.mjs.map +1 -1
  329. package/dist/esm/langfuse.mjs +0 -75
  330. package/dist/esm/langfuse.mjs.map +1 -1
  331. package/dist/esm/langfuseConfig.mjs.map +1 -1
  332. package/dist/esm/langfuseRuntimeContext.mjs +0 -13
  333. package/dist/esm/langfuseRuntimeContext.mjs.map +1 -1
  334. package/dist/esm/langfuseRuntimeScope.mjs +0 -4
  335. package/dist/esm/langfuseRuntimeScope.mjs.map +1 -1
  336. package/dist/esm/langfuseSpanRegistry.mjs +0 -28
  337. package/dist/esm/langfuseSpanRegistry.mjs.map +1 -1
  338. package/dist/esm/langfuseToolOutputTracing.mjs +0 -3
  339. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  340. package/dist/esm/langfuseTraceShaping.mjs +0 -74
  341. package/dist/esm/langfuseTraceShaping.mjs.map +1 -1
  342. package/dist/esm/llm/anthropic/index.mjs +0 -3
  343. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  344. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  345. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +1 -111
  346. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  347. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +0 -1
  348. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  349. package/dist/esm/llm/anthropic/utils/stream_events.mjs +0 -8
  350. package/dist/esm/llm/anthropic/utils/stream_events.mjs.map +1 -1
  351. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  352. package/dist/esm/llm/bedrock/cachePoints.mjs.map +1 -1
  353. package/dist/esm/llm/bedrock/index.mjs +1 -95
  354. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  355. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  356. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +0 -78
  357. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  358. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +0 -24
  359. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
  360. package/dist/esm/llm/contextOverflowRecovery.mjs +0 -62
  361. package/dist/esm/llm/contextOverflowRecovery.mjs.map +1 -1
  362. package/dist/esm/llm/fake.mjs.map +1 -1
  363. package/dist/esm/llm/google/index.mjs +2 -21
  364. package/dist/esm/llm/google/index.mjs.map +1 -1
  365. package/dist/esm/llm/google/utils/common.mjs +0 -35
  366. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  367. package/dist/esm/llm/init.mjs +0 -9
  368. package/dist/esm/llm/init.mjs.map +1 -1
  369. package/dist/esm/llm/invoke.mjs +1 -270
  370. package/dist/esm/llm/invoke.mjs.map +1 -1
  371. package/dist/esm/llm/mistral/index.mjs.map +1 -1
  372. package/dist/esm/llm/openai/index.mjs +0 -99
  373. package/dist/esm/llm/openai/index.mjs.map +1 -1
  374. package/dist/esm/llm/openai/streamMetadata.mjs +0 -21
  375. package/dist/esm/llm/openai/streamMetadata.mjs.map +1 -1
  376. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  377. package/dist/esm/llm/openrouter/index.mjs +0 -1
  378. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  379. package/dist/esm/llm/openrouter/toolCache.mjs +0 -6
  380. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  381. package/dist/esm/llm/preempt.mjs +0 -75
  382. package/dist/esm/llm/preempt.mjs.map +1 -1
  383. package/dist/esm/llm/providers.mjs.map +1 -1
  384. package/dist/esm/llm/request.mjs +0 -10
  385. package/dist/esm/llm/request.mjs.map +1 -1
  386. package/dist/esm/llm/stream/chunkAdapters.mjs +0 -62
  387. package/dist/esm/llm/stream/chunkAdapters.mjs.map +1 -1
  388. package/dist/esm/llm/stream/smoother.mjs +0 -58
  389. package/dist/esm/llm/stream/smoother.mjs.map +1 -1
  390. package/dist/esm/llm/streamLimits.mjs +4 -293
  391. package/dist/esm/llm/streamLimits.mjs.map +1 -1
  392. package/dist/esm/llm/truncation.mjs +0 -36
  393. package/dist/esm/llm/truncation.mjs.map +1 -1
  394. package/dist/esm/llm/vertexai/index.mjs +0 -330
  395. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  396. package/dist/esm/messages/alternation.mjs +0 -43
  397. package/dist/esm/messages/alternation.mjs.map +1 -1
  398. package/dist/esm/messages/anthropicToolCache.mjs +0 -45
  399. package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
  400. package/dist/esm/messages/assistantPhase.mjs +0 -12
  401. package/dist/esm/messages/assistantPhase.mjs.map +1 -1
  402. package/dist/esm/messages/budget.mjs +0 -9
  403. package/dist/esm/messages/budget.mjs.map +1 -1
  404. package/dist/esm/messages/cache.mjs +0 -172
  405. package/dist/esm/messages/cache.mjs.map +1 -1
  406. package/dist/esm/messages/content.mjs +0 -9
  407. package/dist/esm/messages/content.mjs.map +1 -1
  408. package/dist/esm/messages/contextPruning.mjs +0 -15
  409. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  410. package/dist/esm/messages/contextPruningSettings.mjs +0 -3
  411. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
  412. package/dist/esm/messages/core.mjs +0 -48
  413. package/dist/esm/messages/core.mjs.map +1 -1
  414. package/dist/esm/messages/format.mjs +1 -345
  415. package/dist/esm/messages/format.mjs.map +1 -1
  416. package/dist/esm/messages/handoffCue.mjs +0 -36
  417. package/dist/esm/messages/handoffCue.mjs.map +1 -1
  418. package/dist/esm/messages/ids.mjs.map +1 -1
  419. package/dist/esm/messages/injected.mjs +0 -33
  420. package/dist/esm/messages/injected.mjs.map +1 -1
  421. package/dist/esm/messages/langchain.mjs +0 -14
  422. package/dist/esm/messages/langchain.mjs.map +1 -1
  423. package/dist/esm/messages/prune.mjs +1 -184
  424. package/dist/esm/messages/prune.mjs.map +1 -1
  425. package/dist/esm/messages/recency.mjs +0 -32
  426. package/dist/esm/messages/recency.mjs.map +1 -1
  427. package/dist/esm/messages/reducer.mjs +0 -30
  428. package/dist/esm/messages/reducer.mjs.map +1 -1
  429. package/dist/esm/messages/tools.mjs +0 -14
  430. package/dist/esm/messages/tools.mjs.map +1 -1
  431. package/dist/esm/openai/index.mjs.map +1 -1
  432. package/dist/esm/prompts/activityLabel.mjs +9 -79
  433. package/dist/esm/prompts/activityLabel.mjs.map +1 -1
  434. package/dist/esm/responses/index.mjs.map +1 -1
  435. package/dist/esm/run.mjs +2 -538
  436. package/dist/esm/run.mjs.map +1 -1
  437. package/dist/esm/session/AgentSession.mjs +1 -17
  438. package/dist/esm/session/AgentSession.mjs.map +1 -1
  439. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  440. package/dist/esm/session/handlers.mjs +0 -7
  441. package/dist/esm/session/handlers.mjs.map +1 -1
  442. package/dist/esm/session/ids.mjs.map +1 -1
  443. package/dist/esm/session/messageSerialization.mjs +0 -4
  444. package/dist/esm/session/messageSerialization.mjs.map +1 -1
  445. package/dist/esm/stream.mjs +1 -93
  446. package/dist/esm/stream.mjs.map +1 -1
  447. package/dist/esm/summarization/index.mjs +0 -27
  448. package/dist/esm/summarization/index.mjs.map +1 -1
  449. package/dist/esm/summarization/node.mjs +0 -273
  450. package/dist/esm/summarization/node.mjs.map +1 -1
  451. package/dist/esm/tools/BashExecutor.mjs +0 -35
  452. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  453. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +0 -24
  454. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  455. package/dist/esm/tools/Calculator.mjs.map +1 -1
  456. package/dist/esm/tools/CodeExecutor.mjs +0 -13
  457. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  458. package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
  459. package/dist/esm/tools/ProgrammaticToolCalling.mjs +0 -101
  460. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  461. package/dist/esm/tools/ReadFile.mjs.map +1 -1
  462. package/dist/esm/tools/SkillTool.mjs +0 -5
  463. package/dist/esm/tools/SkillTool.mjs.map +1 -1
  464. package/dist/esm/tools/SubagentTool.mjs +0 -10
  465. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  466. package/dist/esm/tools/ToolNode.mjs +6 -1038
  467. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  468. package/dist/esm/tools/ToolSearch.mjs +0 -179
  469. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  470. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
  471. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
  472. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +0 -39
  473. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  474. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  475. package/dist/esm/tools/eagerEventExecution.mjs +0 -6
  476. package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
  477. package/dist/esm/tools/handlers.mjs +1 -41
  478. package/dist/esm/tools/handlers.mjs.map +1 -1
  479. package/dist/esm/tools/intentArg.mjs +1 -132
  480. package/dist/esm/tools/intentArg.mjs.map +1 -1
  481. package/dist/esm/tools/local/CompileCheckTool.mjs +0 -25
  482. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  483. package/dist/esm/tools/local/FileCheckpointer.mjs +0 -23
  484. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  485. package/dist/esm/tools/local/LocalCodingTools.mjs +0 -80
  486. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  487. package/dist/esm/tools/local/LocalExecutionEngine.mjs +0 -126
  488. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  489. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  490. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +0 -12
  491. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  492. package/dist/esm/tools/local/attachments.mjs +0 -44
  493. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  494. package/dist/esm/tools/local/bashAst.mjs +0 -16
  495. package/dist/esm/tools/local/bashAst.mjs.map +1 -1
  496. package/dist/esm/tools/local/editStrategies.mjs +0 -14
  497. package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
  498. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  499. package/dist/esm/tools/local/syntaxCheck.mjs +0 -31
  500. package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
  501. package/dist/esm/tools/local/textEncoding.mjs +0 -11
  502. package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
  503. package/dist/esm/tools/local/workspaceFS.mjs +0 -33
  504. package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
  505. package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
  506. package/dist/esm/tools/schema.mjs +0 -8
  507. package/dist/esm/tools/schema.mjs.map +1 -1
  508. package/dist/esm/tools/search/anthropic.mjs +0 -9
  509. package/dist/esm/tools/search/anthropic.mjs.map +1 -1
  510. package/dist/esm/tools/search/content.mjs.map +1 -1
  511. package/dist/esm/tools/search/crw-scraper.mjs +0 -33
  512. package/dist/esm/tools/search/crw-scraper.mjs.map +1 -1
  513. package/dist/esm/tools/search/crw-search.mjs +0 -2
  514. package/dist/esm/tools/search/crw-search.mjs.map +1 -1
  515. package/dist/esm/tools/search/firecrawl.mjs +0 -25
  516. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  517. package/dist/esm/tools/search/format.mjs +0 -30
  518. package/dist/esm/tools/search/format.mjs.map +1 -1
  519. package/dist/esm/tools/search/highlights.mjs +0 -16
  520. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  521. package/dist/esm/tools/search/keenable-scraper.mjs +0 -8
  522. package/dist/esm/tools/search/keenable-scraper.mjs.map +1 -1
  523. package/dist/esm/tools/search/keenable-search.mjs +0 -7
  524. package/dist/esm/tools/search/keenable-search.mjs.map +1 -1
  525. package/dist/esm/tools/search/rerankers.mjs +0 -35
  526. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  527. package/dist/esm/tools/search/schema.mjs +0 -1
  528. package/dist/esm/tools/search/schema.mjs.map +1 -1
  529. package/dist/esm/tools/search/search.mjs +1 -14
  530. package/dist/esm/tools/search/search.mjs.map +1 -1
  531. package/dist/esm/tools/search/serper-scraper.mjs +0 -46
  532. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  533. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
  534. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  535. package/dist/esm/tools/search/tool.mjs +0 -25
  536. package/dist/esm/tools/search/tool.mjs.map +1 -1
  537. package/dist/esm/tools/search/utils.mjs +0 -8
  538. package/dist/esm/tools/search/utils.mjs.map +1 -1
  539. package/dist/esm/tools/skillCatalog.mjs +0 -6
  540. package/dist/esm/tools/skillCatalog.mjs.map +1 -1
  541. package/dist/esm/tools/streamedToolCallSeals.mjs +0 -6
  542. package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
  543. package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs +0 -2
  544. package/dist/esm/tools/subagent/SubagentExecutionRegistry.mjs.map +1 -1
  545. package/dist/esm/tools/subagent/SubagentExecutor.mjs +3 -213
  546. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  547. package/dist/esm/tools/subagent/SubagentReplay.mjs.map +1 -1
  548. package/dist/esm/tools/subagent/childGraphConfig.mjs +0 -4
  549. package/dist/esm/tools/subagent/childGraphConfig.mjs.map +1 -1
  550. package/dist/esm/tools/subagent/runtimeLimits.mjs.map +1 -1
  551. package/dist/esm/tools/toolOutputReferences.mjs +1 -322
  552. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
  553. package/dist/esm/types/hitl.mjs +0 -5
  554. package/dist/esm/types/hitl.mjs.map +1 -1
  555. package/dist/esm/utils/callbacks.mjs.map +1 -1
  556. package/dist/esm/utils/errors.mjs +14 -165
  557. package/dist/esm/utils/errors.mjs.map +1 -1
  558. package/dist/esm/utils/events.mjs +0 -10
  559. package/dist/esm/utils/events.mjs.map +1 -1
  560. package/dist/esm/utils/graph.mjs.map +1 -1
  561. package/dist/esm/utils/handlers.mjs +0 -3
  562. package/dist/esm/utils/handlers.mjs.map +1 -1
  563. package/dist/esm/utils/llm.mjs +0 -1
  564. package/dist/esm/utils/llm.mjs.map +1 -1
  565. package/dist/esm/utils/misc.mjs +0 -16
  566. package/dist/esm/utils/misc.mjs.map +1 -1
  567. package/dist/esm/utils/proxy.mjs +0 -26
  568. package/dist/esm/utils/proxy.mjs.map +1 -1
  569. package/dist/esm/utils/run.mjs +0 -6
  570. package/dist/esm/utils/run.mjs.map +1 -1
  571. package/dist/esm/utils/schema.mjs +0 -5
  572. package/dist/esm/utils/schema.mjs.map +1 -1
  573. package/dist/esm/utils/title.mjs +0 -6
  574. package/dist/esm/utils/title.mjs.map +1 -1
  575. package/dist/esm/utils/tokens.mjs +0 -113
  576. package/dist/esm/utils/tokens.mjs.map +1 -1
  577. package/dist/esm/utils/toolContent.mjs +0 -41
  578. package/dist/esm/utils/toolContent.mjs.map +1 -1
  579. package/dist/esm/utils/truncation.mjs +0 -61
  580. package/dist/esm/utils/truncation.mjs.map +1 -1
  581. package/package.json +35 -32
  582. package/dist/types/agents/__tests__/promptCacheLiveHelpers.d.ts +0 -52
  583. package/dist/types/test/mockTools.d.ts +0 -28
  584. package/dist/types/utils/__tests__/fixtures/contextOverflowSignatures.d.ts +0 -40
  585. package/src/__tests__/stream.eagerArgsDivergence.test.ts +0 -911
  586. package/src/__tests__/stream.eagerEventExecution.test.ts +0 -5046
  587. package/src/__tests__/stream.streamLimits.test.ts +0 -1982
  588. package/src/agents/__tests__/AgentContext.anthropic.live.test.ts +0 -448
  589. package/src/agents/__tests__/AgentContext.bedrock.live.test.ts +0 -655
  590. package/src/agents/__tests__/AgentContext.openrouter.live.test.ts +0 -128
  591. package/src/agents/__tests__/AgentContext.overflow.test.ts +0 -205
  592. package/src/agents/__tests__/AgentContext.test.ts +0 -2425
  593. package/src/agents/__tests__/projection.test.ts +0 -73
  594. package/src/agents/__tests__/promptCacheLiveHelpers.ts +0 -175
  595. package/src/aggregator.test.ts +0 -1214
  596. package/src/graphs/__tests__/Graph.breakerLifecycle.test.ts +0 -273
  597. package/src/graphs/__tests__/Graph.closeRunStep.test.ts +0 -385
  598. package/src/graphs/__tests__/Graph.contextOverflow.test.ts +0 -1766
  599. package/src/graphs/__tests__/Graph.preemptSignal.test.ts +0 -126
  600. package/src/graphs/__tests__/Graph.reasoning.test.ts +0 -1717
  601. package/src/graphs/__tests__/Graph.subagentResumeState.test.ts +0 -80
  602. package/src/graphs/__tests__/MultiAgentGraph.test.ts +0 -177
  603. package/src/graphs/__tests__/composition.smoke.test.ts +0 -509
  604. package/src/graphs/__tests__/createGraph.test.ts +0 -206
  605. package/src/hooks/__tests__/HookRegistry.test.ts +0 -334
  606. package/src/hooks/__tests__/compactHooks.test.ts +0 -250
  607. package/src/hooks/__tests__/createToolPolicyHook.test.ts +0 -268
  608. package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +0 -405
  609. package/src/hooks/__tests__/executeHooks.test.ts +0 -1294
  610. package/src/hooks/__tests__/integration.test.ts +0 -337
  611. package/src/hooks/__tests__/matchers.test.ts +0 -238
  612. package/src/hooks/__tests__/preemptBoundary.test.ts +0 -152
  613. package/src/hooks/__tests__/toolHooks.test.ts +0 -669
  614. package/src/llm/__tests__/contextOverflowRecovery.test.ts +0 -401
  615. package/src/llm/__tests__/fallbackOverflow.test.ts +0 -287
  616. package/src/llm/anthropic/Jacob_Lee_Resume_2023.pdf +0 -0
  617. package/src/llm/anthropic/inherited-content-utils.spec.ts +0 -249
  618. package/src/llm/anthropic/inherited-stream-events.spec.ts +0 -1259
  619. package/src/llm/anthropic/inherited-strict.spec.ts +0 -302
  620. package/src/llm/anthropic/llm.spec.ts +0 -3394
  621. package/src/llm/anthropic/utils/cross-provider-reasoning.test.ts +0 -383
  622. package/src/llm/anthropic/utils/cross-provider-server-tools.test.ts +0 -110
  623. package/src/llm/anthropic/utils/server-tool-inputs.test.ts +0 -508
  624. package/src/llm/anthropic/utils/streaming-tool-input.test.ts +0 -361
  625. package/src/llm/anthropic/utils/stripPrefillCache.test.ts +0 -111
  626. package/src/llm/anthropic/utils/tool-id-normalization.test.ts +0 -287
  627. package/src/llm/bedrock/inherited-cache.spec.ts +0 -144
  628. package/src/llm/bedrock/inherited.spec.ts +0 -724
  629. package/src/llm/bedrock/llm.spec.ts +0 -1533
  630. package/src/llm/bedrock/streamSealDispatch.test.ts +0 -331
  631. package/src/llm/bedrock/toolCache.test.ts +0 -194
  632. package/src/llm/bedrock/utils/cross-provider-reasoning.test.ts +0 -131
  633. package/src/llm/bedrock/utils/cross-provider-server-tools.test.ts +0 -122
  634. package/src/llm/bedrock/utils/message_inputs.test.ts +0 -650
  635. package/src/llm/bedrock/utils/message_outputs.test.ts +0 -85
  636. package/src/llm/bedrock/utils/toolResultCachePoint.test.ts +0 -118
  637. package/src/llm/custom-chat-models.smoke.test.ts +0 -1966
  638. package/src/llm/google/data/gettysburg10.wav +0 -0
  639. package/src/llm/google/data/hotdog.jpg +0 -0
  640. package/src/llm/google/inherited-stream-events.spec.ts +0 -350
  641. package/src/llm/google/llm.spec.ts +0 -1388
  642. package/src/llm/google/streamSmoothing.test.ts +0 -121
  643. package/src/llm/google/utils/common.test.ts +0 -196
  644. package/src/llm/invoke.alternation.test.ts +0 -87
  645. package/src/llm/invoke.handoffCue.test.ts +0 -112
  646. package/src/llm/invoke.streamLimits.test.ts +0 -142
  647. package/src/llm/invoke.test.ts +0 -1198
  648. package/src/llm/mistral/streamSmoothing.test.ts +0 -97
  649. package/src/llm/openai/cacheWriteTokens.test.ts +0 -112
  650. package/src/llm/openai/contentBlocks.test.ts +0 -381
  651. package/src/llm/openai/deepseek.test.ts +0 -747
  652. package/src/llm/openai/inherited-deepseek.spec.ts +0 -347
  653. package/src/llm/openai/inherited-xai.spec.ts +0 -416
  654. package/src/llm/openai/llm.spec.ts +0 -1774
  655. package/src/llm/openai/managedRequests.test.ts +0 -182
  656. package/src/llm/openai/sequentialToolCallSeals.test.ts +0 -199
  657. package/src/llm/openai/streamMetadata.spec.ts +0 -86
  658. package/src/llm/openai/streamMetadataDedup.spec.ts +0 -166
  659. package/src/llm/openai/utils/isReasoningModel.test.ts +0 -90
  660. package/src/llm/openai/utils/messages.test.ts +0 -488
  661. package/src/llm/openrouter/reasoning.test.ts +0 -561
  662. package/src/llm/openrouter/toolCache.test.ts +0 -134
  663. package/src/llm/preempt.test.ts +0 -323
  664. package/src/llm/stream/chunkAdapters.test.ts +0 -202
  665. package/src/llm/stream/reassembly.test.ts +0 -241
  666. package/src/llm/stream/smoother.bench.test.ts +0 -155
  667. package/src/llm/stream/smoother.test.ts +0 -519
  668. package/src/llm/streamLimits.test.ts +0 -450
  669. package/src/llm/truncation.test.ts +0 -242
  670. package/src/llm/vertexai/fixThoughtSignatures.test.ts +0 -154
  671. package/src/llm/vertexai/inherited-stream-events.spec.ts +0 -271
  672. package/src/llm/vertexai/llm.spec.ts +0 -159
  673. package/src/llm/vertexai/repairUsageMetadata.test.ts +0 -54
  674. package/src/llm/vertexai/sealStreamedToolCalls.test.ts +0 -88
  675. package/src/llm/vertexai/streamSealDispatch.test.ts +0 -148
  676. package/src/llm/vertexai/streamSmoothing.test.ts +0 -109
  677. package/src/messages/__tests__/anthropicToolCache.test.ts +0 -339
  678. package/src/messages/__tests__/observationMasking.test.ts +0 -312
  679. package/src/messages/__tests__/recency.test.ts +0 -267
  680. package/src/messages/__tests__/tools.test.ts +0 -473
  681. package/src/messages/alternation.test.ts +0 -212
  682. package/src/messages/assistantPhase.test.ts +0 -75
  683. package/src/messages/cache.tail.test.ts +0 -533
  684. package/src/messages/cache.test.ts +0 -2166
  685. package/src/messages/content.test.ts +0 -362
  686. package/src/messages/contextPruning.test.ts +0 -184
  687. package/src/messages/ensureThinkingBlock.test.ts +0 -1427
  688. package/src/messages/foldToollessToolBlocks.test.ts +0 -596
  689. package/src/messages/formatAgentMessages.reducer.test.ts +0 -162
  690. package/src/messages/formatAgentMessages.skills.test.ts +0 -513
  691. package/src/messages/formatAgentMessages.steer.test.ts +0 -598
  692. package/src/messages/formatAgentMessages.test.ts +0 -8111
  693. package/src/messages/formatAgentMessages.tools.test.ts +0 -522
  694. package/src/messages/formatMessage.test.ts +0 -693
  695. package/src/messages/handoffCue.test.ts +0 -96
  696. package/src/messages/injected.test.ts +0 -107
  697. package/src/messages/labelContentByAgent.test.ts +0 -962
  698. package/src/messages/reducer.spec.ts +0 -32
  699. package/src/messages/shiftIndexTokenCountMap.test.ts +0 -81
  700. package/src/messages/tailCacheConversion.test.ts +0 -161
  701. package/src/openai/__tests__/openai.test.ts +0 -337
  702. package/src/responses/__tests__/responses.test.ts +0 -652
  703. package/src/scripts/abort.ts +0 -157
  704. package/src/scripts/activity-labels/captured.json +0 -56
  705. package/src/scripts/activity-labels/checks.cjs +0 -205
  706. package/src/scripts/activity-labels/corpus.cjs +0 -473
  707. package/src/scripts/activity-labels/report.cjs +0 -203
  708. package/src/scripts/activity-labels/rescore.cjs +0 -102
  709. package/src/scripts/activity-labels/run.ts +0 -705
  710. package/src/scripts/activity-labels/variants.ts +0 -71
  711. package/src/scripts/ant_web_search.ts +0 -159
  712. package/src/scripts/ant_web_search_edge_case.ts +0 -163
  713. package/src/scripts/ant_web_search_error_edge_case.ts +0 -149
  714. package/src/scripts/args.ts +0 -48
  715. package/src/scripts/bedrock-cache-debug.ts +0 -250
  716. package/src/scripts/bedrock-content-aggregation-test.ts +0 -266
  717. package/src/scripts/bedrock-merge-test.ts +0 -107
  718. package/src/scripts/bedrock-parallel-tools-test.ts +0 -204
  719. package/src/scripts/bench-prompt-cache.ts +0 -479
  720. package/src/scripts/caching.ts +0 -132
  721. package/src/scripts/cli.ts +0 -172
  722. package/src/scripts/cli2.ts +0 -133
  723. package/src/scripts/cli3.ts +0 -184
  724. package/src/scripts/cli4.ts +0 -191
  725. package/src/scripts/cli5.ts +0 -191
  726. package/src/scripts/code_exec.ts +0 -214
  727. package/src/scripts/code_exec_files.ts +0 -237
  728. package/src/scripts/code_exec_multi_session.ts +0 -237
  729. package/src/scripts/code_exec_ptc.ts +0 -335
  730. package/src/scripts/code_exec_session.ts +0 -283
  731. package/src/scripts/code_exec_simple.ts +0 -148
  732. package/src/scripts/compare_pi_vs_ours.ts +0 -1259
  733. package/src/scripts/content.ts +0 -139
  734. package/src/scripts/context-overflow-probe.ts +0 -997
  735. package/src/scripts/empty_input.ts +0 -137
  736. package/src/scripts/handoff-test.ts +0 -134
  737. package/src/scripts/local_engine.ts +0 -166
  738. package/src/scripts/local_engine_checkpointer.ts +0 -205
  739. package/src/scripts/local_engine_compile.ts +0 -263
  740. package/src/scripts/local_engine_hooks.ts +0 -226
  741. package/src/scripts/local_engine_image.ts +0 -201
  742. package/src/scripts/local_engine_ptc.ts +0 -151
  743. package/src/scripts/local_engine_workspace.ts +0 -258
  744. package/src/scripts/memory.ts +0 -107
  745. package/src/scripts/multi-agent-chain.ts +0 -332
  746. package/src/scripts/multi-agent-conditional.ts +0 -222
  747. package/src/scripts/multi-agent-document-review-chain.ts +0 -198
  748. package/src/scripts/multi-agent-hybrid-flow.ts +0 -311
  749. package/src/scripts/multi-agent-parallel-start.ts +0 -265
  750. package/src/scripts/multi-agent-parallel.ts +0 -395
  751. package/src/scripts/multi-agent-sequence.ts +0 -217
  752. package/src/scripts/multi-agent-subagent.ts +0 -246
  753. package/src/scripts/multi-agent-supervisor.ts +0 -366
  754. package/src/scripts/multi-agent-test.ts +0 -187
  755. package/src/scripts/openrouter_prompt_cache_live.ts +0 -310
  756. package/src/scripts/parallel-asymmetric-tools-test.ts +0 -275
  757. package/src/scripts/parallel-full-metadata-test.ts +0 -241
  758. package/src/scripts/parallel-tools-test.ts +0 -341
  759. package/src/scripts/preempt-probe.ts +0 -330
  760. package/src/scripts/preempt-scenarios.ts +0 -388
  761. package/src/scripts/programmatic_exec.ts +0 -387
  762. package/src/scripts/programmatic_exec_agent.ts +0 -232
  763. package/src/scripts/search.ts +0 -147
  764. package/src/scripts/sequential-full-metadata-test.ts +0 -198
  765. package/src/scripts/session_live.ts +0 -548
  766. package/src/scripts/simple.ts +0 -226
  767. package/src/scripts/single-agent-metadata-test.ts +0 -196
  768. package/src/scripts/stream.ts +0 -141
  769. package/src/scripts/subagent-configurable-inheritance.ts +0 -252
  770. package/src/scripts/subagent-event-driven-debug.ts +0 -190
  771. package/src/scripts/subagent-tools-debug.ts +0 -160
  772. package/src/scripts/subagent-usage-sink.ts +0 -176
  773. package/src/scripts/summarization-recency.ts +0 -462
  774. package/src/scripts/test-custom-prompt-key.ts +0 -145
  775. package/src/scripts/test-handoff-input.ts +0 -170
  776. package/src/scripts/test-handoff-preamble.ts +0 -278
  777. package/src/scripts/test-handoff-steering.ts +0 -430
  778. package/src/scripts/test-multi-agent-list-handoff.ts +0 -418
  779. package/src/scripts/test-parallel-agent-labeling.ts +0 -327
  780. package/src/scripts/test-parallel-handoffs.ts +0 -292
  781. package/src/scripts/test-thinking-handoff-bedrock.ts +0 -154
  782. package/src/scripts/test-thinking-handoff.ts +0 -156
  783. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.ts +0 -166
  784. package/src/scripts/test-tool-before-handoff-role-order.ts +0 -276
  785. package/src/scripts/test-tools-before-handoff.ts +0 -222
  786. package/src/scripts/test_code_api.ts +0 -354
  787. package/src/scripts/thinking-bedrock.ts +0 -160
  788. package/src/scripts/thinking-vertexai.ts +0 -168
  789. package/src/scripts/thinking.ts +0 -172
  790. package/src/scripts/tool_search.ts +0 -153
  791. package/src/scripts/tools.ts +0 -163
  792. package/src/session/__tests__/JsonlSessionStore.test.ts +0 -1463
  793. package/src/session/__tests__/handlers.test.ts +0 -161
  794. package/src/specs/activity-label-observability.live.test.ts +0 -262
  795. package/src/specs/activity-label-observability.test.ts +0 -167
  796. package/src/specs/activity-label-prompt.test.ts +0 -359
  797. package/src/specs/activity-label-trace-seed.test.ts +0 -47
  798. package/src/specs/activity-phase-label.test.ts +0 -306
  799. package/src/specs/agent-handoffs.live.test.ts +0 -140
  800. package/src/specs/agent-handoffs.test.ts +0 -2465
  801. package/src/specs/anthropic.simple.test.ts +0 -453
  802. package/src/specs/ask-user-question-batch.test.ts +0 -289
  803. package/src/specs/ask-user-questions.live.test.ts +0 -185
  804. package/src/specs/ask-user-questions.test.ts +0 -293
  805. package/src/specs/azure.simple.test.ts +0 -502
  806. package/src/specs/bedrock-toolless.live.test.ts +0 -123
  807. package/src/specs/bedrock-truncation.live.test.ts +0 -191
  808. package/src/specs/cache.simple.test.ts +0 -416
  809. package/src/specs/context-accuracy.live.test.ts +0 -409
  810. package/src/specs/context-overflow-recovery.live.test.ts +0 -213
  811. package/src/specs/context-usage-event.test.ts +0 -117
  812. package/src/specs/context-usage.live.test.ts +0 -297
  813. package/src/specs/custom-event-await.test.ts +0 -304
  814. package/src/specs/deepseek.simple.test.ts +0 -290
  815. package/src/specs/deterministic-trace-id.test.ts +0 -43
  816. package/src/specs/discovered-tools.test.ts +0 -217
  817. package/src/specs/durability-checkpoint.integration.test.ts +0 -243
  818. package/src/specs/graph-subagent.live.test.ts +0 -242
  819. package/src/specs/graph-subagent.test.ts +0 -322
  820. package/src/specs/handoffCue.test.ts +0 -165
  821. package/src/specs/langfuse-callbacks.test.ts +0 -1578
  822. package/src/specs/langfuse-config.test.ts +0 -247
  823. package/src/specs/langfuse-instrumentation.test.ts +0 -393
  824. package/src/specs/langfuse-metadata.test.ts +0 -245
  825. package/src/specs/langfuse-routing.integration.test.ts +0 -844
  826. package/src/specs/langfuse-runtime-context.test.ts +0 -92
  827. package/src/specs/langfuse-span-registry.test.ts +0 -87
  828. package/src/specs/langfuse-tool-output-tracing.test.ts +0 -1858
  829. package/src/specs/langfuse-trace-shaping.test.ts +0 -591
  830. package/src/specs/moonshot.simple.test.ts +0 -367
  831. package/src/specs/multi-agent-summarization.test.ts +0 -396
  832. package/src/specs/openai.simple.test.ts +0 -315
  833. package/src/specs/openrouter.simple.test.ts +0 -275
  834. package/src/specs/preemptSeal.test.ts +0 -678
  835. package/src/specs/prune.test.ts +0 -3741
  836. package/src/specs/reasoning.test.ts +0 -201
  837. package/src/specs/run-step-timestamps.test.ts +0 -414
  838. package/src/specs/spec.utils.ts +0 -15
  839. package/src/specs/subagent.test.ts +0 -864
  840. package/src/specs/summarization-unit.test.ts +0 -973
  841. package/src/specs/summarization.test.ts +0 -3823
  842. package/src/specs/summarize-prune.test.ts +0 -376
  843. package/src/specs/thinking-handoff.test.ts +0 -621
  844. package/src/specs/thinking-prune.test.ts +0 -827
  845. package/src/specs/token-accounting-e2e.test.ts +0 -1034
  846. package/src/specs/token-accounting-pipeline.test.ts +0 -1008
  847. package/src/specs/token-distribution-edge-case.test.ts +0 -315
  848. package/src/specs/token-memoization.test.ts +0 -40
  849. package/src/specs/tokens.test.ts +0 -1000
  850. package/src/specs/tool-error-resume.test.ts +0 -194
  851. package/src/specs/tool-error.test.ts +0 -198
  852. package/src/specs/vllm-reasoning-toolcalls.test.ts +0 -340
  853. package/src/stream.dispatch.test.ts +0 -63
  854. package/src/stream.test.ts +0 -144
  855. package/src/summarization/__tests__/aggregator.test.ts +0 -236
  856. package/src/summarization/__tests__/node.test.ts +0 -1996
  857. package/src/summarization/__tests__/trigger.test.ts +0 -149
  858. package/src/summarization/chunkHandler.test.ts +0 -196
  859. package/src/test/mockTools.ts +0 -386
  860. package/src/tools/Calculator.test.ts +0 -278
  861. package/src/tools/__tests__/BashExecutor.test.ts +0 -108
  862. package/src/tools/__tests__/CloudflareSandboxExecution.test.ts +0 -939
  863. package/src/tools/__tests__/CodeApiAuthHeaders.test.ts +0 -858
  864. package/src/tools/__tests__/CodeExecutor.stateful.test.ts +0 -124
  865. package/src/tools/__tests__/LocalExecutionRoots.test.ts +0 -8
  866. package/src/tools/__tests__/LocalExecutionTools.test.ts +0 -2733
  867. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +0 -318
  868. package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +0 -1557
  869. package/src/tools/__tests__/ReadFile.test.ts +0 -44
  870. package/src/tools/__tests__/SkillTool.test.ts +0 -442
  871. package/src/tools/__tests__/SubagentExecutor.test.ts +0 -3728
  872. package/src/tools/__tests__/SubagentReplay.test.ts +0 -329
  873. package/src/tools/__tests__/SubagentTool.test.ts +0 -149
  874. package/src/tools/__tests__/ToolNode.breakerSignal.test.ts +0 -595
  875. package/src/tools/__tests__/ToolNode.eagerEventExecution.test.ts +0 -1191
  876. package/src/tools/__tests__/ToolNode.invalidToolCalls.test.ts +0 -757
  877. package/src/tools/__tests__/ToolNode.langfuse.test.ts +0 -57
  878. package/src/tools/__tests__/ToolNode.onResultCompletion.test.ts +0 -736
  879. package/src/tools/__tests__/ToolNode.outputReferences.test.ts +0 -1710
  880. package/src/tools/__tests__/ToolNode.runtimeState.test.ts +0 -120
  881. package/src/tools/__tests__/ToolNode.session.test.ts +0 -1352
  882. package/src/tools/__tests__/ToolNode.streamLimits.test.ts +0 -69
  883. package/src/tools/__tests__/ToolSearch.integration.test.ts +0 -161
  884. package/src/tools/__tests__/ToolSearch.test.ts +0 -1227
  885. package/src/tools/__tests__/annotateMessagesForLLM.test.ts +0 -561
  886. package/src/tools/__tests__/directToolHITLResumeScope.test.ts +0 -980
  887. package/src/tools/__tests__/directToolHooks.test.ts +0 -700
  888. package/src/tools/__tests__/eagerEventExecution.session.test.ts +0 -92
  889. package/src/tools/__tests__/handlers.test.ts +0 -997
  890. package/src/tools/__tests__/hitl.test.ts +0 -4663
  891. package/src/tools/__tests__/intentArg.test.ts +0 -357
  892. package/src/tools/__tests__/intentCoverage.test.ts +0 -139
  893. package/src/tools/__tests__/localToolNames.test.ts +0 -75
  894. package/src/tools/__tests__/skillCatalog.test.ts +0 -161
  895. package/src/tools/__tests__/subagentHooks.test.ts +0 -1651
  896. package/src/tools/__tests__/toolOutputReferences.test.ts +0 -515
  897. package/src/tools/__tests__/workspaceSeam.test.ts +0 -147
  898. package/src/tools/local/__tests__/FileCheckpointer.test.ts +0 -162
  899. package/src/tools/local/__tests__/editStrategies.test.ts +0 -134
  900. package/src/tools/search/content.test.ts +0 -173
  901. package/src/tools/search/crw.test.ts +0 -836
  902. package/src/tools/search/format.test.ts +0 -242
  903. package/src/tools/search/http-agent.test.ts +0 -133
  904. package/src/tools/search/jina-reranker.test.ts +0 -306
  905. package/src/tools/search/keenable-scraper.test.ts +0 -153
  906. package/src/tools/search/keenable.test.ts +0 -183
  907. package/src/tools/search/outcome.test.ts +0 -90
  908. package/src/tools/search/output.md +0 -2775
  909. package/src/tools/search/rag-api-reranker.test.ts +0 -891
  910. package/src/tools/search/source-processing.test.ts +0 -516
  911. package/src/tools/search/tavily.test.ts +0 -965
  912. package/src/tools/search/test.html +0 -884
  913. package/src/tools/search/test.md +0 -643
  914. package/src/tools/subagent/__tests__/SubagentExecutionRegistry.test.ts +0 -637
  915. package/src/tools/subagent/__tests__/SubagentExecutor.lazy.test.ts +0 -3054
  916. package/src/tools/subagent/__tests__/childGraphConfig.test.ts +0 -521
  917. package/src/utils/__tests__/apportion.test.ts +0 -32
  918. package/src/utils/__tests__/errors.test.ts +0 -270
  919. package/src/utils/__tests__/fixtures/contextOverflowSignatures.ts +0 -336
  920. package/src/utils/__tests__/redactSecrets.test.ts +0 -56
  921. package/src/utils/__tests__/truncation.test.ts +0 -66
  922. package/src/utils/llm.test.ts +0 -18
  923. package/src/utils/proxy.test.ts +0 -176
  924. package/src/utils/toolContent.test.ts +0 -1432
@@ -39,13 +39,9 @@ function getOtelScopeAgentId(activeContext) {
39
39
  const value = activeContext.getValue(langfuseScopeAgentIdKey);
40
40
  return typeof value === "string" && value.trim() !== "" ? value : void 0;
41
41
  }
42
- /** The run identity the active scope belongs to (see
43
- * `LangfuseRuntimeContext.runId`), or `undefined` for unstamped scopes. */
44
42
  function resolveLangfuseScopeRunId(activeContext) {
45
43
  return require_langfuseRuntimeContext.getLangfuseScopeRunId() ?? getOtelScopeRunId(activeContext);
46
44
  }
47
- /** The agent identity of a per-agent overlay scope (see
48
- * `LangfuseRuntimeContext.agentId`), or `undefined` for run-level scopes. */
49
45
  function resolveLangfuseScopeAgentId(activeContext) {
50
46
  return require_langfuseRuntimeContext.getLangfuseScopeAgentId() ?? getOtelScopeAgentId(activeContext);
51
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"langfuseRuntimeScope.cjs","names":["getLangfuseRuntimeConfig","getTraceIdSeed","getLangfuseScopeRunId","getLangfuseScopeAgentId","getLangfuseRuntimeToolOutputTracingConfig","hasLangfuseRuntimeContextValue","context","replaceLangfuseRuntimeContext","runWithLangfuseRuntimeContext","resolveLangfuseConfig","hasToolOutputTracingConfig","resolveToolOutputTracingConfig"],"sources":["../../src/langfuseRuntimeScope.ts"],"sourcesContent":["import { context, createContextKey } from '@opentelemetry/api';\nimport type { Context } from '@opentelemetry/api';\nimport type {\n LangfuseRuntimeContext,\n ResolvedLangfuseToolOutputTracingConfig,\n} from '@/langfuseRuntimeContext';\nimport type * as t from '@/types';\nimport {\n getLangfuseRuntimeConfig,\n getLangfuseRuntimeToolOutputTracingConfig,\n getLangfuseScopeAgentId,\n getLangfuseScopeRunId,\n getTraceIdSeed,\n hasLangfuseRuntimeContextValue,\n replaceLangfuseRuntimeContext,\n runWithLangfuseRuntimeContext,\n} from '@/langfuseRuntimeContext';\nimport {\n hasToolOutputTracingConfig,\n resolveLangfuseConfig,\n resolveToolOutputTracingConfig,\n} from '@/langfuseConfig';\n\nexport type LangfuseRuntimeScope = LangfuseRuntimeContext;\n\nexport type ResolveLangfuseRuntimeScopeParams = {\n runLangfuse?: t.LangfuseConfig;\n langfuseOverlay?: t.LangfuseConfig;\n traceIdSeed?: string;\n runId?: string;\n agentId?: string;\n};\n\nexport type LangfuseRuntimeScopeOptions = {\n /** Replace the surrounding scope entirely instead of merging with it:\n * fields absent from `scope` are CLEARED rather than inherited. Required\n * when rejecting a foreign concurrent run's scope, whose explicit values\n * must not survive merge inheritance. */\n replace?: boolean;\n};\n\nconst langfuseToolOutputTracingConfigKey = createContextKey(\n 'librechat.langfuse.tool-output-tracing'\n);\nconst langfuseConfigKey = createContextKey('librechat.langfuse.config');\nconst langfuseTraceIdSeedKey = createContextKey(\n 'librechat.langfuse.trace-id-seed'\n);\nconst langfuseScopeRunIdKey = createContextKey('librechat.langfuse.run-id');\nconst langfuseScopeAgentIdKey = createContextKey('librechat.langfuse.agent-id');\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction hasText(value: string | undefined): value is string {\n return value != null && value.trim() !== '';\n}\n\nexport function getOtelLangfuseConfig(\n activeContext: Context\n): t.LangfuseConfig | undefined {\n const value = activeContext.getValue(langfuseConfigKey);\n return isRecord(value) ? (value as t.LangfuseConfig) : undefined;\n}\n\nexport function getOtelTraceIdSeed(activeContext: Context): string | undefined {\n const value = activeContext.getValue(langfuseTraceIdSeedKey);\n return typeof value === 'string' && value.trim() !== '' ? value : undefined;\n}\n\nexport function getOtelToolOutputTracingConfig(\n activeContext: Context\n): ResolvedLangfuseToolOutputTracingConfig | undefined {\n const value = activeContext.getValue(langfuseToolOutputTracingConfigKey);\n return isRecord(value)\n ? (value as ResolvedLangfuseToolOutputTracingConfig)\n : undefined;\n}\n\nexport function resolveLangfuseConfigForSpan(\n activeContext: Context\n): t.LangfuseConfig | undefined {\n return getLangfuseRuntimeConfig() ?? getOtelLangfuseConfig(activeContext);\n}\n\nexport function resolveTraceIdSeedForSpan(\n activeContext: Context\n): string | undefined {\n return getTraceIdSeed() ?? getOtelTraceIdSeed(activeContext);\n}\n\nfunction getOtelScopeRunId(activeContext: Context): string | undefined {\n const value = activeContext.getValue(langfuseScopeRunIdKey);\n return typeof value === 'string' && value.trim() !== '' ? value : undefined;\n}\n\nfunction getOtelScopeAgentId(activeContext: Context): string | undefined {\n const value = activeContext.getValue(langfuseScopeAgentIdKey);\n return typeof value === 'string' && value.trim() !== '' ? value : undefined;\n}\n\n/** The run identity the active scope belongs to (see\n * `LangfuseRuntimeContext.runId`), or `undefined` for unstamped scopes. */\nexport function resolveLangfuseScopeRunId(\n activeContext: Context\n): string | undefined {\n return getLangfuseScopeRunId() ?? getOtelScopeRunId(activeContext);\n}\n\n/** The agent identity of a per-agent overlay scope (see\n * `LangfuseRuntimeContext.agentId`), or `undefined` for run-level scopes. */\nexport function resolveLangfuseScopeAgentId(\n activeContext: Context\n): string | undefined {\n return getLangfuseScopeAgentId() ?? getOtelScopeAgentId(activeContext);\n}\n\nexport function resolveToolOutputTracingConfigForSpan(\n activeContext: Context\n): ResolvedLangfuseToolOutputTracingConfig | undefined {\n return (\n getLangfuseRuntimeToolOutputTracingConfig() ??\n getOtelToolOutputTracingConfig(activeContext)\n );\n}\n\nfunction setOrClearContextValue(\n activeContext: Context,\n key: Parameters<Context['setValue']>[0],\n value: unknown,\n replace: boolean\n): Context {\n if (value != null) {\n return activeContext.setValue(key, value);\n }\n return replace ? activeContext.deleteValue(key) : activeContext;\n}\n\nexport function withLangfuseRuntimeScope<T>(\n scope: LangfuseRuntimeScope,\n action: () => T,\n options?: LangfuseRuntimeScopeOptions\n): T {\n const replace = options?.replace === true;\n if (!replace && !hasLangfuseRuntimeContextValue(scope)) {\n return action();\n }\n\n let activeContext = context.active();\n activeContext = setOrClearContextValue(\n activeContext,\n langfuseConfigKey,\n scope.langfuse,\n replace\n );\n activeContext = setOrClearContextValue(\n activeContext,\n langfuseToolOutputTracingConfigKey,\n scope.toolOutputTracing,\n replace\n );\n activeContext = setOrClearContextValue(\n activeContext,\n langfuseTraceIdSeedKey,\n hasText(scope.traceIdSeed) ? scope.traceIdSeed : undefined,\n replace\n );\n activeContext = setOrClearContextValue(\n activeContext,\n langfuseScopeRunIdKey,\n hasText(scope.runId) ? scope.runId : undefined,\n replace\n );\n activeContext = setOrClearContextValue(\n activeContext,\n langfuseScopeAgentIdKey,\n hasText(scope.agentId) ? scope.agentId : undefined,\n replace\n );\n\n // Span processors receive the OTel parent context in `onStart`, while\n // LangChain callback handlers may run outside that context and need ALS.\n // The trace id generator reads the seed from ALS or OTel context so SDK\n // callbacks that preserve only one of those contexts still keep trace/score\n // cohesion.\n const runScoped = replace\n ? replaceLangfuseRuntimeContext\n : runWithLangfuseRuntimeContext;\n return runScoped(scope, () => context.with(activeContext, action));\n}\n\nexport function resolveLangfuseRuntimeScope({\n runLangfuse,\n langfuseOverlay,\n traceIdSeed,\n runId,\n agentId,\n}: ResolveLangfuseRuntimeScopeParams): LangfuseRuntimeScope {\n const langfuse = resolveLangfuseConfig(runLangfuse, langfuseOverlay);\n const toolOutputTracing = !hasToolOutputTracingConfig(\n runLangfuse,\n langfuseOverlay\n )\n ? undefined\n : resolveToolOutputTracingConfig(runLangfuse, langfuseOverlay);\n return { langfuse, traceIdSeed, toolOutputTracing, runId, agentId };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"langfuseRuntimeScope.cjs","names":["getLangfuseRuntimeConfig","getTraceIdSeed","getLangfuseScopeRunId","getLangfuseScopeAgentId","getLangfuseRuntimeToolOutputTracingConfig","hasLangfuseRuntimeContextValue","context","replaceLangfuseRuntimeContext","runWithLangfuseRuntimeContext","resolveLangfuseConfig","hasToolOutputTracingConfig","resolveToolOutputTracingConfig"],"sources":["../../src/langfuseRuntimeScope.ts"],"mappings":"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"}
@@ -2,25 +2,6 @@ const require_misc = require("./utils/misc.cjs");
2
2
  const require_langfuseConfig = require("./langfuseConfig.cjs");
3
3
  let node_crypto = require("node:crypto");
4
4
  //#region src/langfuseSpanRegistry.ts
5
- /**
6
- * Spans created through the Langfuse tracer provider, keyed by the export
7
- * destination they were routed to. Callback handlers use this to distinguish
8
- * safe ambient parents from spans a root observation must not inherit:
9
- *
10
- * - Foreign spans (a host's own OpenTelemetry instrumentation, e.g. HTTP
11
- * server spans on the global provider) are never exported to Langfuse —
12
- * inheriting one orphans the trace root (its root/trace input-output
13
- * shaping is skipped), collapses concurrent runs inside one request
14
- * context into a single merged trace, and bypasses the seeded
15
- * deterministic trace id generator.
16
- * - Langfuse-managed spans bound to a *different* destination (another
17
- * tenant's project) would leave the new trace dangling in its own
18
- * destination while inheriting the other tenant's trace id.
19
- *
20
- * Only a managed span whose destination matches the starting run's resolved
21
- * destination is a safe parent — that is the sanctioned way for hosts to
22
- * group runs under their own Langfuse observations.
23
- */
24
5
  const managedSpanDestinations = /* @__PURE__ */ new WeakMap();
25
6
  function registerLangfuseManagedSpan(span, destinationKey) {
26
7
  managedSpanDestinations.set(span, destinationKey);
@@ -67,13 +48,6 @@ function getLangfuseSpanProcessorParams(langfuse) {
67
48
  function hashCacheKeyValue(value) {
68
49
  return require_misc.isPresent(value) ? (0, node_crypto.createHash)("sha256").update(value, "utf8").digest("hex") : void 0;
69
50
  }
70
- /**
71
- * Identity of an export destination (project credentials + endpoint +
72
- * environment) only. Processor-level policies like `toolOutputTracing` are
73
- * deliberately excluded: two spans exporting to the same project under
74
- * different redaction settings still share a destination and may parent one
75
- * another.
76
- */
77
51
  function getLangfuseDestinationKey(params) {
78
52
  return JSON.stringify({
79
53
  publicKey: params.publicKey,
@@ -82,8 +56,6 @@ function getLangfuseDestinationKey(params) {
82
56
  environment: params.environment
83
57
  });
84
58
  }
85
- /** The export destination a run with this config resolves to, or `undefined`
86
- * when no Langfuse destination is configured. */
87
59
  function resolveLangfuseDestinationKey(langfuse) {
88
60
  const params = getLangfuseSpanProcessorParams(langfuse);
89
61
  return params == null ? void 0 : getLangfuseDestinationKey(params);
@@ -1 +1 @@
1
- {"version":3,"file":"langfuseSpanRegistry.cjs","names":["hasLangfuseConfigCredentials","isPresent","hasLangfuseEnvConfig","hasLangfuseEnvCredentials"],"sources":["../../src/langfuseSpanRegistry.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport type { LangfuseSpanProcessorParams } from '@langfuse/otel';\nimport type { Span } from '@opentelemetry/api';\nimport type * as t from '@/types';\nimport {\n hasLangfuseConfigCredentials,\n hasLangfuseEnvCredentials,\n hasLangfuseEnvConfig,\n} from '@/langfuseConfig';\nimport { isPresent } from '@/utils/misc';\n\n/**\n * Spans created through the Langfuse tracer provider, keyed by the export\n * destination they were routed to. Callback handlers use this to distinguish\n * safe ambient parents from spans a root observation must not inherit:\n *\n * - Foreign spans (a host's own OpenTelemetry instrumentation, e.g. HTTP\n * server spans on the global provider) are never exported to Langfuse —\n * inheriting one orphans the trace root (its root/trace input-output\n * shaping is skipped), collapses concurrent runs inside one request\n * context into a single merged trace, and bypasses the seeded\n * deterministic trace id generator.\n * - Langfuse-managed spans bound to a *different* destination (another\n * tenant's project) would leave the new trace dangling in its own\n * destination while inheriting the other tenant's trace id.\n *\n * Only a managed span whose destination matches the starting run's resolved\n * destination is a safe parent — that is the sanctioned way for hosts to\n * group runs under their own Langfuse observations.\n */\nconst managedSpanDestinations = new WeakMap<Span, string>();\n\nexport function registerLangfuseManagedSpan(\n span: Span,\n destinationKey: string\n): void {\n managedSpanDestinations.set(span, destinationKey);\n}\n\nexport function getLangfuseManagedSpanDestination(\n span: Span\n): string | undefined {\n return managedSpanDestinations.get(span);\n}\n\nfunction resolveLangfuseEnvironment(\n langfuse?: t.LangfuseConfig\n): string | undefined {\n const candidates = [\n langfuse?.environment,\n process.env.LANGFUSE_TRACING_ENVIRONMENT,\n process.env.NODE_ENV,\n ];\n for (const candidate of candidates) {\n if (candidate != null && candidate.trim() !== '') {\n return candidate.trim();\n }\n }\n return undefined;\n}\n\nexport function getLangfuseSpanProcessorParams(\n langfuse?: t.LangfuseConfig\n): LangfuseSpanProcessorParams | undefined {\n if (langfuse?.enabled === false) {\n return undefined;\n }\n const environment = resolveLangfuseEnvironment(langfuse);\n if (hasLangfuseConfigCredentials(langfuse)) {\n return {\n publicKey: langfuse.publicKey,\n secretKey: langfuse.secretKey,\n ...(isPresent(langfuse.baseUrl) ? { baseUrl: langfuse.baseUrl } : {}),\n ...(isPresent(environment) ? { environment } : {}),\n ...(langfuse.mediaUploadEnabled != null\n ? { mediaUploadEnabled: langfuse.mediaUploadEnabled }\n : {}),\n };\n }\n if (hasLangfuseEnvConfig()) {\n const baseUrl =\n langfuse?.baseUrl ??\n process.env.LANGFUSE_BASE_URL ??\n process.env.LANGFUSE_BASEURL;\n return {\n publicKey: process.env.LANGFUSE_PUBLIC_KEY as string,\n secretKey: process.env.LANGFUSE_SECRET_KEY as string,\n ...(isPresent(baseUrl) ? { baseUrl } : {}),\n ...(isPresent(environment) ? { environment } : {}),\n ...(langfuse?.mediaUploadEnabled != null\n ? { mediaUploadEnabled: langfuse.mediaUploadEnabled }\n : {}),\n };\n }\n if (isPresent(langfuse?.baseUrl) && hasLangfuseEnvCredentials()) {\n return {\n publicKey: process.env.LANGFUSE_PUBLIC_KEY as string,\n secretKey: process.env.LANGFUSE_SECRET_KEY as string,\n baseUrl: langfuse.baseUrl,\n ...(isPresent(environment) ? { environment } : {}),\n ...(langfuse.mediaUploadEnabled != null\n ? { mediaUploadEnabled: langfuse.mediaUploadEnabled }\n : {}),\n };\n }\n return undefined;\n}\n\nfunction hashCacheKeyValue(value: string | undefined): string | undefined {\n return isPresent(value)\n ? createHash('sha256').update(value, 'utf8').digest('hex')\n : undefined;\n}\n\n/**\n * Identity of an export destination (project credentials + endpoint +\n * environment) only. Processor-level policies like `toolOutputTracing` are\n * deliberately excluded: two spans exporting to the same project under\n * different redaction settings still share a destination and may parent one\n * another.\n */\nexport function getLangfuseDestinationKey(\n params: LangfuseSpanProcessorParams\n): string {\n return JSON.stringify({\n publicKey: params.publicKey,\n secretKeyHash: hashCacheKeyValue(params.secretKey),\n baseUrl: params.baseUrl,\n environment: params.environment,\n });\n}\n\n/** The export destination a run with this config resolves to, or `undefined`\n * when no Langfuse destination is configured. */\nexport function resolveLangfuseDestinationKey(\n langfuse?: t.LangfuseConfig\n): string | undefined {\n const params = getLangfuseSpanProcessorParams(langfuse);\n return params == null ? undefined : getLangfuseDestinationKey(params);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAM,0CAA0B,IAAI,QAAsB;AAE1D,SAAgB,4BACd,MACA,gBACM;CACN,wBAAwB,IAAI,MAAM,cAAc;AAClD;AAEA,SAAgB,kCACd,MACoB;CACpB,OAAO,wBAAwB,IAAI,IAAI;AACzC;AAEA,SAAS,2BACP,UACoB;CACpB,MAAM,aAAa;EACjB,UAAU;EACV,QAAQ,IAAI;EACZ,QAAQ,IAAI;CACd;CACA,KAAK,MAAM,aAAa,YACtB,IAAI,aAAa,QAAQ,UAAU,KAAK,MAAM,IAC5C,OAAO,UAAU,KAAK;AAI5B;AAEA,SAAgB,+BACd,UACyC;CACzC,IAAI,UAAU,YAAY,OACxB;CAEF,MAAM,cAAc,2BAA2B,QAAQ;CACvD,IAAIA,uBAAAA,6BAA6B,QAAQ,GACvC,OAAO;EACL,WAAW,SAAS;EACpB,WAAW,SAAS;EACpB,GAAIC,aAAAA,UAAU,SAAS,OAAO,IAAI,EAAE,SAAS,SAAS,QAAQ,IAAI,CAAC;EACnE,GAAIA,aAAAA,UAAU,WAAW,IAAI,EAAE,YAAY,IAAI,CAAC;EAChD,GAAI,SAAS,sBAAsB,OAC/B,EAAE,oBAAoB,SAAS,mBAAmB,IAClD,CAAC;CACP;CAEF,IAAIC,uBAAAA,qBAAqB,GAAG;EAC1B,MAAM,UACJ,UAAU,WACV,QAAQ,IAAI,qBACZ,QAAQ,IAAI;EACd,OAAO;GACL,WAAW,QAAQ,IAAI;GACvB,WAAW,QAAQ,IAAI;GACvB,GAAID,aAAAA,UAAU,OAAO,IAAI,EAAE,QAAQ,IAAI,CAAC;GACxC,GAAIA,aAAAA,UAAU,WAAW,IAAI,EAAE,YAAY,IAAI,CAAC;GAChD,GAAI,UAAU,sBAAsB,OAChC,EAAE,oBAAoB,SAAS,mBAAmB,IAClD,CAAC;EACP;CACF;CACA,IAAIA,aAAAA,UAAU,UAAU,OAAO,KAAKE,uBAAAA,0BAA0B,GAC5D,OAAO;EACL,WAAW,QAAQ,IAAI;EACvB,WAAW,QAAQ,IAAI;EACvB,SAAS,SAAS;EAClB,GAAIF,aAAAA,UAAU,WAAW,IAAI,EAAE,YAAY,IAAI,CAAC;EAChD,GAAI,SAAS,sBAAsB,OAC/B,EAAE,oBAAoB,SAAS,mBAAmB,IAClD,CAAC;CACP;AAGJ;AAEA,SAAS,kBAAkB,OAA+C;CACxE,OAAOA,aAAAA,UAAU,KAAK,KAAA,GAAA,YAAA,WAAA,CACP,QAAQ,CAAC,CAAC,OAAO,OAAO,MAAM,CAAC,CAAC,OAAO,KAAK,IACvD,KAAA;AACN;;;;;;;;AASA,SAAgB,0BACd,QACQ;CACR,OAAO,KAAK,UAAU;EACpB,WAAW,OAAO;EAClB,eAAe,kBAAkB,OAAO,SAAS;EACjD,SAAS,OAAO;EAChB,aAAa,OAAO;CACtB,CAAC;AACH;;;AAIA,SAAgB,8BACd,UACoB;CACpB,MAAM,SAAS,+BAA+B,QAAQ;CACtD,OAAO,UAAU,OAAO,KAAA,IAAY,0BAA0B,MAAM;AACtE"}
1
+ {"version":3,"file":"langfuseSpanRegistry.cjs","names":["hasLangfuseConfigCredentials","isPresent","hasLangfuseEnvConfig","hasLangfuseEnvCredentials"],"sources":["../../src/langfuseSpanRegistry.ts"],"mappings":";;;;AA8BA,MAAM,0CAA0B,IAAI,QAAsB;AAE1D,SAAgB,4BACd,MACA,gBACM;CACN,wBAAwB,IAAI,MAAM,cAAc;AAClD;AAEA,SAAgB,kCACd,MACoB;CACpB,OAAO,wBAAwB,IAAI,IAAI;AACzC;AAEA,SAAS,2BACP,UACoB;CACpB,MAAM,aAAa;EACjB,UAAU;EACV,QAAQ,IAAI;EACZ,QAAQ,IAAI;CACd;CACA,KAAK,MAAM,aAAa,YACtB,IAAI,aAAa,QAAQ,UAAU,KAAK,MAAM,IAC5C,OAAO,UAAU,KAAK;AAI5B;AAEA,SAAgB,+BACd,UACyC;CACzC,IAAI,UAAU,YAAY,OACxB;CAEF,MAAM,cAAc,2BAA2B,QAAQ;CACvD,IAAIA,uBAAAA,6BAA6B,QAAQ,GACvC,OAAO;EACL,WAAW,SAAS;EACpB,WAAW,SAAS;EACpB,GAAIC,aAAAA,UAAU,SAAS,OAAO,IAAI,EAAE,SAAS,SAAS,QAAQ,IAAI,CAAC;EACnE,GAAIA,aAAAA,UAAU,WAAW,IAAI,EAAE,YAAY,IAAI,CAAC;EAChD,GAAI,SAAS,sBAAsB,OAC/B,EAAE,oBAAoB,SAAS,mBAAmB,IAClD,CAAC;CACP;CAEF,IAAIC,uBAAAA,qBAAqB,GAAG;EAC1B,MAAM,UACJ,UAAU,WACV,QAAQ,IAAI,qBACZ,QAAQ,IAAI;EACd,OAAO;GACL,WAAW,QAAQ,IAAI;GACvB,WAAW,QAAQ,IAAI;GACvB,GAAID,aAAAA,UAAU,OAAO,IAAI,EAAE,QAAQ,IAAI,CAAC;GACxC,GAAIA,aAAAA,UAAU,WAAW,IAAI,EAAE,YAAY,IAAI,CAAC;GAChD,GAAI,UAAU,sBAAsB,OAChC,EAAE,oBAAoB,SAAS,mBAAmB,IAClD,CAAC;EACP;CACF;CACA,IAAIA,aAAAA,UAAU,UAAU,OAAO,KAAKE,uBAAAA,0BAA0B,GAC5D,OAAO;EACL,WAAW,QAAQ,IAAI;EACvB,WAAW,QAAQ,IAAI;EACvB,SAAS,SAAS;EAClB,GAAIF,aAAAA,UAAU,WAAW,IAAI,EAAE,YAAY,IAAI,CAAC;EAChD,GAAI,SAAS,sBAAsB,OAC/B,EAAE,oBAAoB,SAAS,mBAAmB,IAClD,CAAC;CACP;AAGJ;AAEA,SAAS,kBAAkB,OAA+C;CACxE,OAAOA,aAAAA,UAAU,KAAK,KAAA,GAAA,YAAA,WAAA,CACP,QAAQ,CAAC,CAAC,OAAO,OAAO,MAAM,CAAC,CAAC,OAAO,KAAK,IACvD,KAAA;AACN;AASA,SAAgB,0BACd,QACQ;CACR,OAAO,KAAK,UAAU;EACpB,WAAW,OAAO;EAClB,eAAe,kBAAkB,OAAO,SAAS;EACjD,SAAS,OAAO;EAChB,aAAa,OAAO;CACtB,CAAC;AACH;AAIA,SAAgB,8BACd,UACoB;CACpB,MAAM,SAAS,+BAA+B,QAAQ;CACtD,OAAO,UAAU,OAAO,KAAA,IAAY,0BAA0B,MAAM;AACtE"}
@@ -92,9 +92,6 @@ function toolNameMatches(toolName, config) {
92
92
  }
93
93
  return config.redactedToolNames.has(normalizedToolName);
94
94
  }
95
- /** Whether a tool's outputs are excluded from tracing (global disable or
96
- * `redactedToolNames` match). Exported for the activity-label prompt
97
- * builder, whose prompt becomes Langfuse generation input. */
98
95
  function shouldRedactTool(toolName, config) {
99
96
  return config.enabled === false || toolNameMatches(toolName, config);
100
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"langfuseToolOutputTracing.cjs","names":["normalizeToolName","LangfuseOtelSpanAttributes","LangfuseSpanProcessor","shouldDropLangfuseSpan","resolveToolOutputTracingConfigForSpan","hasToolOutputTracingConfig","resolveToolOutputTracingConfig","resolveLangfuseConfig"],"sources":["../../src/langfuseToolOutputTracing.ts"],"sourcesContent":["import { LangfuseSpanProcessor } from '@langfuse/otel';\nimport { LangfuseOtelSpanAttributes } from '@langfuse/tracing';\nimport type {\n ReadableSpan,\n Span,\n SpanProcessor,\n} from '@opentelemetry/sdk-trace-base';\nimport type { LangfuseSpanProcessorParams } from '@langfuse/otel';\nimport type { Context } from '@opentelemetry/api';\nimport type { ResolvedLangfuseToolOutputTracingConfig } from '@/langfuseRuntimeContext';\nimport type * as t from '@/types';\nimport {\n LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT,\n hasToolOutputTracingConfig,\n normalizeToolName,\n resolveLangfuseConfig,\n resolveToolOutputTracingConfig,\n} from '@/langfuseConfig';\nimport {\n shapeLangfuseSpan,\n shouldDropLangfuseSpan,\n} from '@/langfuseTraceShaping';\nimport { resolveToolOutputTracingConfigForSpan } from '@/langfuseRuntimeScope';\n\nexport { LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT, resolveLangfuseConfig };\n\nconst LANGGRAPH_TOOL_NODE_PREFIX = 'tools=';\nconst SERVER_TOOL_RESULT_PREFIX = '{\"serverToolResult\":';\nconst SERVER_TOOL_RESULT_REPLAY_MARKER_KEY = 'librechatResponsesReplay';\n\nconst CHAT_ROLES = new Set([\n 'assistant',\n 'developer',\n 'human',\n 'system',\n 'user',\n]);\n\ntype SpanWithAttributes = ReadableSpan & {\n attributes: Record<string, unknown>;\n};\n\ntype RedactionResult = {\n value: unknown;\n changed: boolean;\n};\n\ntype RedactionContext = {\n generatedImageData: Set<string>;\n generatedImageIds: Set<string>;\n toolNamesByCallId: Map<string, string>;\n};\n\nconst TOOL_OUTPUT_FIELD_KEYS = ['content', 'artifact'];\n\ntype ResponsesReplayOutputDescriptor = {\n nestedOutputFields?: Readonly<Record<string, readonly string[]>>;\n outputFields: readonly string[];\n resolveToolNameFromCallId?: boolean;\n toolName?: string;\n};\n\nconst RESPONSES_REPLAY_OUTPUT_DESCRIPTORS: Readonly<\n Record<string, ResponsesReplayOutputDescriptor>\n> = {\n local_shell_call_output: {\n outputFields: ['output'],\n toolName: 'local_shell',\n },\n shell_call_output: { outputFields: ['output'], toolName: 'shell' },\n apply_patch_call_output: {\n outputFields: ['output'],\n toolName: 'apply_patch',\n },\n program_output: { outputFields: ['result'], toolName: 'program' },\n code_interpreter_call: {\n outputFields: ['outputs'],\n toolName: 'code_interpreter',\n },\n mcp_call: { outputFields: ['output', 'error'], toolName: 'mcp' },\n mcp_list_tools: {\n outputFields: ['tools', 'error'],\n toolName: 'mcp_list_tools',\n },\n image_generation_call: {\n outputFields: ['result'],\n toolName: 'image_generation',\n },\n file_search_call: {\n outputFields: ['results'],\n toolName: 'file_search',\n },\n web_search_call: {\n nestedOutputFields: { action: ['sources'] },\n outputFields: ['results'],\n toolName: 'web_search',\n },\n tool_search_output: {\n outputFields: ['tools'],\n toolName: 'tool_search',\n },\n function_call_output: {\n outputFields: ['output'],\n resolveToolNameFromCallId: true,\n },\n custom_tool_call_output: {\n outputFields: ['output'],\n resolveToolNameFromCallId: true,\n },\n computer_call_output: {\n outputFields: ['output'],\n toolName: 'computer_use',\n },\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction isPresent(value: unknown): value is string {\n return typeof value === 'string' && value.trim() !== '';\n}\n\nfunction shouldApplyToolOutputRedaction(\n config: ResolvedLangfuseToolOutputTracingConfig\n): boolean {\n return config.enabled === false || config.redactedToolNames.size > 0;\n}\n\nfunction toolNameMatches(\n toolName: string | undefined,\n config: ResolvedLangfuseToolOutputTracingConfig\n): boolean {\n if (!isPresent(toolName)) {\n return false;\n }\n\n const normalizedToolName = normalizeToolName(toolName);\n if (config.redactedToolNameMatchMode === 'partial') {\n for (const redactedToolName of config.redactedToolNames) {\n if (normalizedToolName.includes(redactedToolName)) {\n return true;\n }\n }\n return false;\n }\n\n return config.redactedToolNames.has(normalizedToolName);\n}\n\n/** Whether a tool's outputs are excluded from tracing (global disable or\n * `redactedToolNames` match). Exported for the activity-label prompt\n * builder, whose prompt becomes Langfuse generation input. */\nexport function shouldRedactTool(\n toolName: string | undefined,\n config: ResolvedLangfuseToolOutputTracingConfig\n): boolean {\n return config.enabled === false || toolNameMatches(toolName, config);\n}\n\nfunction getStringField(\n value: Record<string, unknown>,\n key: string\n): string | undefined {\n const field = value[key];\n return typeof field === 'string' ? field : undefined;\n}\n\nfunction getNestedStringField(\n value: Record<string, unknown>,\n objectKey: string,\n fieldKey: string\n): string | undefined {\n const nested = value[objectKey];\n if (!isRecord(nested)) {\n return undefined;\n }\n return getStringField(nested, fieldKey);\n}\n\nfunction getSerializedToolCallId(\n value: Record<string, unknown>\n): string | undefined {\n return (\n getStringField(value, 'tool_call_id') ??\n getStringField(value, 'toolCallId') ??\n getStringField(value, 'call_id') ??\n getNestedStringField(value, 'kwargs', 'tool_call_id') ??\n getNestedStringField(value, 'additional_kwargs', 'tool_call_id') ??\n getNestedStringField(value, 'data', 'tool_call_id') ??\n (typeof value.id === 'string' ? value.id : undefined)\n );\n}\n\nfunction getSerializedToolName(\n value: Record<string, unknown>,\n redactionContext?: RedactionContext\n): string | undefined {\n const role = getStringField(value, 'role');\n const explicitName =\n getStringField(value, 'name') ??\n getStringField(value, 'tool_name') ??\n getNestedStringField(value, 'function', 'name') ??\n getNestedStringField(value, 'kwargs', 'name') ??\n getNestedStringField(value, 'additional_kwargs', 'name') ??\n getNestedStringField(value, 'data', 'name') ??\n (role != null && role.toLowerCase() !== 'tool' ? role : undefined);\n\n if (explicitName != null) {\n return explicitName;\n }\n\n const toolCallId = getSerializedToolCallId(value);\n return toolCallId != null\n ? redactionContext?.toolNamesByCallId.get(toolCallId)\n : undefined;\n}\n\nfunction hasToolMessageIdentity(value: Record<string, unknown>): boolean {\n const type = getStringField(value, 'type') ?? getStringField(value, '_type');\n if (type === 'tool' || type === 'tool_message') {\n return true;\n }\n\n const id = value.id;\n if (\n Array.isArray(id) &&\n id.some((part) => typeof part === 'string' && part.includes('ToolMessage'))\n ) {\n return true;\n }\n\n if (\n 'tool_call_id' in value ||\n getNestedStringField(value, 'kwargs', 'tool_call_id') != null ||\n getNestedStringField(value, 'additional_kwargs', 'tool_call_id') != null\n ) {\n return true;\n }\n\n const role = getStringField(value, 'role');\n return (\n role != null &&\n !CHAT_ROLES.has(role.toLowerCase()) &&\n ('content' in value || isRecord(value.kwargs) || isRecord(value.data))\n );\n}\n\nfunction hasAssistantMessageIdentity(value: Record<string, unknown>): boolean {\n const role = getStringField(value, 'role');\n if (role?.toLowerCase() === 'assistant') {\n return true;\n }\n const type = getStringField(value, 'type') ?? getStringField(value, '_type');\n if (type === 'ai' || type === 'assistant') {\n return true;\n }\n const id = value.id;\n return (\n Array.isArray(id) &&\n id.some(\n (part) =>\n typeof part === 'string' &&\n (part === 'AIMessage' || part === 'AIMessageChunk')\n )\n );\n}\n\nfunction redactToolContentFields(\n value: Record<string, unknown>,\n config: ResolvedLangfuseToolOutputTracingConfig\n): Record<string, unknown> {\n const next = { ...value };\n\n for (const outputKey of TOOL_OUTPUT_FIELD_KEYS) {\n if (outputKey in next) {\n next[outputKey] = config.redactionText;\n }\n }\n\n for (const nestedKey of ['kwargs', 'data', 'additional_kwargs']) {\n const nested = next[nestedKey];\n if (!isRecord(nested)) {\n continue;\n }\n const nextNested = { ...nested };\n let changed = false;\n for (const outputKey of TOOL_OUTPUT_FIELD_KEYS) {\n if (outputKey in nextNested) {\n nextNested[outputKey] = config.redactionText;\n changed = true;\n }\n }\n if (changed) {\n next[nestedKey] = nextNested;\n }\n }\n\n return next;\n}\n\nfunction redactResponsesReplayOutput(\n value: Record<string, unknown>,\n config: ResolvedLangfuseToolOutputTracingConfig,\n redactionContext: RedactionContext\n): RedactionResult | undefined {\n const type = getStringField(value, 'type');\n if (\n type == null ||\n !Object.prototype.hasOwnProperty.call(\n RESPONSES_REPLAY_OUTPUT_DESCRIPTORS,\n type\n )\n ) {\n return undefined;\n }\n const descriptor =\n RESPONSES_REPLAY_OUTPUT_DESCRIPTORS[\n type as keyof typeof RESPONSES_REPLAY_OUTPUT_DESCRIPTORS\n ];\n const hasDirectOutput = descriptor.outputFields.some(\n (outputField) => outputField in value\n );\n const hasNestedOutput = Object.entries(\n descriptor.nestedOutputFields ?? {}\n ).some(([objectField, outputFields]) => {\n const nested = value[objectField];\n return (\n isRecord(nested) &&\n outputFields.some((outputField) => outputField in nested)\n );\n });\n if (!hasDirectOutput && !hasNestedOutput) {\n return undefined;\n }\n let toolName = descriptor.toolName;\n if (descriptor.resolveToolNameFromCallId === true) {\n toolName = getSerializedToolName(value, redactionContext);\n } else if (type === 'mcp_call') {\n toolName = getStringField(value, 'name') ?? descriptor.toolName;\n }\n if (!shouldRedactTool(toolName, config)) {\n return undefined;\n }\n const redacted = { ...value };\n for (const outputField of descriptor.outputFields) {\n if (outputField in redacted) {\n redacted[outputField] = config.redactionText;\n }\n }\n for (const [objectField, outputFields] of Object.entries(\n descriptor.nestedOutputFields ?? {}\n )) {\n const nested = redacted[objectField];\n if (!isRecord(nested)) {\n continue;\n }\n const redactedNested = { ...nested };\n for (const outputField of outputFields) {\n if (outputField in redactedNested) {\n redactedNested[outputField] = config.redactionText;\n }\n }\n redacted[objectField] = redactedNested;\n }\n return {\n value: redacted,\n changed: true,\n };\n}\n\nfunction redactStandardServerToolResult(\n value: Record<string, unknown>,\n config: ResolvedLangfuseToolOutputTracingConfig,\n redactionContext: RedactionContext\n): RedactionResult | undefined {\n if (\n getStringField(value, 'type') !== 'server_tool_call_result' ||\n !('output' in value)\n ) {\n return undefined;\n }\n const toolName =\n getNestedStringField(value, 'extras', 'name') ??\n getSerializedToolName(value, redactionContext);\n if (!shouldRedactTool(toolName, config)) {\n return undefined;\n }\n return {\n value: { ...value, output: config.redactionText },\n changed: true,\n };\n}\n\nfunction parseSerializedServerToolResultMarker(\n text: string\n): { toolName?: string } | undefined {\n if (!text.startsWith(SERVER_TOOL_RESULT_PREFIX)) {\n return undefined;\n }\n try {\n const parsed = JSON.parse(text) as unknown;\n if (!isRecord(parsed) || !isRecord(parsed.serverToolResult)) {\n return undefined;\n }\n const result = parsed.serverToolResult;\n if (result[SERVER_TOOL_RESULT_REPLAY_MARKER_KEY] !== true) {\n return undefined;\n }\n const status = getStringField(result, 'status');\n if (\n (status !== 'error' && status !== 'success') ||\n !Object.prototype.hasOwnProperty.call(result, 'output')\n ) {\n return undefined;\n }\n const toolName = getStringField(result, 'toolName');\n return toolName != null ? { toolName } : {};\n } catch {\n const match =\n /^\\{\"serverToolResult\":\\{\"librechatResponsesReplay\":true,(?:\"toolName\":(\"(?:\\\\.|[^\"\\\\])*\"),)?\"status\":\"(?:error|success)\",\"output\":/.exec(\n text.slice(0, 512)\n );\n if (match == null) {\n return undefined;\n }\n const encodedToolName = match.at(1);\n if (encodedToolName == null) {\n return {};\n }\n try {\n const toolName = JSON.parse(encodedToolName) as unknown;\n return typeof toolName === 'string' ? { toolName } : {};\n } catch {\n return {};\n }\n }\n}\n\nfunction redactMarkedServerToolResult(\n value: Record<string, unknown>,\n config: ResolvedLangfuseToolOutputTracingConfig,\n allowSerializedMarker: boolean\n): RedactionResult | undefined {\n const type = getStringField(value, 'type');\n if (type !== 'text' && type !== 'image') {\n return undefined;\n }\n const text = type === 'text' ? getStringField(value, 'text') : undefined;\n const extras = value.extras;\n const marker = isRecord(extras)\n ? extras.librechatServerToolResult\n : undefined;\n const serializedMarker =\n allowSerializedMarker && text != null\n ? parseSerializedServerToolResultMarker(text)\n : undefined;\n if (!isRecord(marker) && serializedMarker == null) {\n return undefined;\n }\n const toolName = isRecord(marker)\n ? getStringField(marker, 'toolName')\n : serializedMarker?.toolName;\n if (!shouldRedactTool(toolName, config)) {\n return undefined;\n }\n if (type === 'image') {\n const redacted = { ...value };\n let changed = false;\n for (const outputField of ['data', 'url', 'fileId']) {\n if (outputField in redacted) {\n redacted[outputField] = config.redactionText;\n changed = true;\n }\n }\n return changed ? { value: redacted, changed: true } : undefined;\n }\n return {\n value: { ...value, text: config.redactionText },\n changed: true,\n };\n}\n\nfunction redactGeneratedImageBlock(\n value: Record<string, unknown>,\n config: ResolvedLangfuseToolOutputTracingConfig,\n redactionContext: RedactionContext,\n isAssistantContent: boolean\n): RedactionResult | undefined {\n if (\n getStringField(value, 'type') !== 'image' ||\n !shouldRedactTool('image_generation', config)\n ) {\n return undefined;\n }\n const extras = value.extras;\n const explicitMarker = isRecord(extras)\n ? extras.librechatServerToolResult\n : undefined;\n const explicitToolName = isRecord(explicitMarker)\n ? getStringField(explicitMarker, 'toolName')\n : undefined;\n if (\n explicitToolName != null &&\n normalizeToolName(explicitToolName) !== 'image_generation'\n ) {\n return undefined;\n }\n const id = getStringField(value, 'id');\n const data = getStringField(value, 'data');\n const metadata = value.metadata;\n const normalizedStatus = isRecord(metadata)\n ? getStringField(metadata, 'status')\n : undefined;\n const hasNormalizedGeneratedImageIdentity =\n isAssistantContent &&\n id?.startsWith('ig_') === true &&\n isPresent(normalizedStatus);\n const isGeneratedImage =\n explicitToolName != null ||\n hasNormalizedGeneratedImageIdentity ||\n (id != null\n ? redactionContext.generatedImageIds.has(id)\n : data != null && redactionContext.generatedImageData.has(data));\n if (!isGeneratedImage) {\n return undefined;\n }\n const redacted = { ...value };\n let changed = false;\n for (const outputField of ['data', 'url', 'fileId']) {\n if (outputField in redacted) {\n redacted[outputField] = config.redactionText;\n changed = true;\n }\n }\n return changed ? { value: redacted, changed: true } : undefined;\n}\n\nfunction collectRedactionContext(\n value: unknown,\n redactionContext: RedactionContext\n): void {\n if (Array.isArray(value)) {\n for (const item of value) {\n collectRedactionContext(item, redactionContext);\n }\n return;\n }\n\n if (!isRecord(value)) {\n return;\n }\n\n const toolCallId = getSerializedToolCallId(value);\n const toolName = getSerializedToolName(value);\n if (toolCallId != null && toolName != null) {\n redactionContext.toolNamesByCallId.set(toolCallId, toolName);\n }\n\n if (getStringField(value, 'type') === 'image_generation_call') {\n const id = getStringField(value, 'id');\n const result = getStringField(value, 'result');\n if (id != null) {\n redactionContext.generatedImageIds.add(id);\n }\n if (result != null) {\n redactionContext.generatedImageData.add(result);\n }\n }\n\n for (const child of Object.values(value)) {\n collectRedactionContext(child, redactionContext);\n }\n}\n\nfunction redactValue(\n value: unknown,\n config: ResolvedLangfuseToolOutputTracingConfig,\n redactionContext: RedactionContext,\n allowSerializedServerToolResult = false\n): RedactionResult {\n if (Array.isArray(value)) {\n let changed = false;\n const next: unknown[] = [];\n for (const item of value) {\n const result = redactValue(\n item,\n config,\n redactionContext,\n allowSerializedServerToolResult\n );\n if (result.changed) {\n changed = true;\n }\n next.push(result.value);\n }\n return changed ? { value: next, changed } : { value, changed };\n }\n\n if (!isRecord(value)) {\n return { value, changed: false };\n }\n\n const allowSerializedMarker =\n allowSerializedServerToolResult || hasAssistantMessageIdentity(value);\n\n const replayOutput = redactResponsesReplayOutput(\n value,\n config,\n redactionContext\n );\n if (replayOutput != null) {\n return replayOutput;\n }\n const standardServerToolResult = redactStandardServerToolResult(\n value,\n config,\n redactionContext\n );\n if (standardServerToolResult != null) {\n return standardServerToolResult;\n }\n const markedServerToolResult = redactMarkedServerToolResult(\n value,\n config,\n allowSerializedMarker\n );\n if (markedServerToolResult != null) {\n return markedServerToolResult;\n }\n const generatedImageBlock = redactGeneratedImageBlock(\n value,\n config,\n redactionContext,\n allowSerializedMarker\n );\n if (generatedImageBlock != null) {\n return generatedImageBlock;\n }\n\n const toolName = getSerializedToolName(value, redactionContext);\n if (hasToolMessageIdentity(value) && shouldRedactTool(toolName, config)) {\n return {\n value: redactToolContentFields(value, config),\n changed: true,\n };\n }\n\n let changed = false;\n const next: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(value)) {\n const result = redactValue(\n child,\n config,\n redactionContext,\n allowSerializedMarker\n );\n if (result.changed) {\n changed = true;\n }\n next[key] = result.value;\n }\n\n return changed ? { value: next, changed } : { value, changed };\n}\n\nfunction redactSerializedValue(\n value: unknown,\n config: ResolvedLangfuseToolOutputTracingConfig\n): RedactionResult {\n const redactionContext: RedactionContext = {\n generatedImageData: new Set(),\n generatedImageIds: new Set(),\n toolNamesByCallId: new Map(),\n };\n if (typeof value !== 'string') {\n collectRedactionContext(value, redactionContext);\n return redactValue(value, config, redactionContext);\n }\n\n const trimmed = value.trim();\n if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {\n return { value, changed: false };\n }\n\n try {\n const parsed = JSON.parse(value) as unknown;\n collectRedactionContext(parsed, redactionContext);\n const result = redactValue(parsed, config, redactionContext);\n return result.changed\n ? { value: JSON.stringify(result.value), changed: true }\n : { value, changed: false };\n } catch {\n // OpenTelemetry truncates string attributes before span processors run.\n // Langfuse serializes structured message values to JSON first, so a\n // truncated attribute can still contain tool output even though it is no\n // longer parseable. Fail closed for JSON-shaped attributes whenever tool\n // output redaction is active instead of exporting a partial secret.\n return { value: config.redactionText, changed: true };\n }\n}\n\nfunction redactAttribute(\n attributes: Record<string, unknown>,\n key: string,\n config: ResolvedLangfuseToolOutputTracingConfig\n): void {\n if (!(key in attributes)) {\n return;\n }\n\n const result = redactSerializedValue(attributes[key], config);\n if (result.changed) {\n attributes[key] = result.value;\n }\n}\n\nfunction isToolObservation(attributes: Record<string, unknown>): boolean {\n const type = attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE];\n return typeof type === 'string' && type.toLowerCase() === 'tool';\n}\n\nfunction classifyLangGraphToolNodeSpan(\n attributes: Record<string, unknown>\n): void {\n const type = attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE];\n if (typeof type !== 'string' || type.toLowerCase() !== 'span') {\n return;\n }\n\n const langGraphNode =\n attributes[\n `${LangfuseOtelSpanAttributes.OBSERVATION_METADATA}.langgraph_node`\n ];\n if (\n typeof langGraphNode === 'string' &&\n langGraphNode.startsWith(LANGGRAPH_TOOL_NODE_PREFIX)\n ) {\n attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE] = 'tool';\n }\n}\n\nexport function classifyLangfuseToolNodeSpan(span: ReadableSpan): void {\n classifyLangGraphToolNodeSpan((span as SpanWithAttributes).attributes);\n}\n\nfunction redactToolObservationOutput(\n span: ReadableSpan,\n attributes: Record<string, unknown>,\n config: ResolvedLangfuseToolOutputTracingConfig\n): void {\n if (\n !(\n isToolObservation(attributes) &&\n shouldRedactTool(span.name, config) &&\n LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT in attributes\n )\n ) {\n return;\n }\n\n attributes[LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT] =\n config.redactionText;\n}\n\nexport function redactLangfuseSpanToolOutputs(\n span: ReadableSpan,\n config: ResolvedLangfuseToolOutputTracingConfig\n): void {\n const attributes = (span as SpanWithAttributes).attributes;\n classifyLangfuseToolNodeSpan(span);\n\n if (!shouldApplyToolOutputRedaction(config)) {\n return;\n }\n\n redactToolObservationOutput(span, attributes, config);\n\n for (const key of [\n LangfuseOtelSpanAttributes.OBSERVATION_INPUT,\n LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT,\n LangfuseOtelSpanAttributes.TRACE_INPUT,\n LangfuseOtelSpanAttributes.TRACE_OUTPUT,\n ]) {\n redactAttribute(attributes, key, config);\n }\n}\n\nexport function prepareLangfuseSpanForExport(\n span: ReadableSpan,\n config?: ResolvedLangfuseToolOutputTracingConfig\n): void {\n classifyLangfuseToolNodeSpan(span);\n if (config != null) {\n redactLangfuseSpanToolOutputs(span, config);\n }\n shapeLangfuseSpan(span);\n}\n\nclass ToolOutputRedactingLangfuseSpanProcessor implements SpanProcessor {\n private readonly processor: LangfuseSpanProcessor;\n private readonly fallbackConfig?: ResolvedLangfuseToolOutputTracingConfig;\n private readonly spanConfigs = new WeakMap<\n object,\n ResolvedLangfuseToolOutputTracingConfig\n >();\n\n constructor(\n params?: LangfuseSpanProcessorParams,\n fallbackConfig?: ResolvedLangfuseToolOutputTracingConfig\n ) {\n this.processor = new LangfuseSpanProcessor(params);\n this.fallbackConfig = fallbackConfig;\n }\n\n onStart(span: Span, parentContext: Context): void {\n if (shouldDropLangfuseSpan(span.name)) {\n return;\n }\n const config =\n resolveToolOutputTracingConfigForSpan(parentContext) ??\n this.fallbackConfig;\n if (config != null) {\n this.spanConfigs.set(span, config);\n }\n this.processor.onStart(span, parentContext);\n }\n\n onEnd(span: ReadableSpan): void {\n if (shouldDropLangfuseSpan(span.name)) {\n return;\n }\n const config = this.spanConfigs.get(span) ?? this.fallbackConfig;\n prepareLangfuseSpanForExport(span, config);\n this.processor.onEnd(span);\n }\n\n forceFlush(): Promise<void> {\n return this.processor.forceFlush();\n }\n\n shutdown(): Promise<void> {\n return this.processor.shutdown();\n }\n}\n\nexport function createLangfuseSpanProcessor(\n params?: LangfuseSpanProcessorParams,\n runLangfuse?: t.LangfuseConfig,\n agentLangfuse?: t.LangfuseConfig\n): SpanProcessor {\n const fallbackConfig = hasToolOutputTracingConfig(runLangfuse, agentLangfuse)\n ? resolveToolOutputTracingConfig(runLangfuse, agentLangfuse)\n : undefined;\n return new ToolOutputRedactingLangfuseSpanProcessor(params, fallbackConfig);\n}\n\nfunction hasLangfuseEnvKeys(): boolean {\n return (\n isPresent(process.env.LANGFUSE_SECRET_KEY) &&\n isPresent(process.env.LANGFUSE_PUBLIC_KEY)\n );\n}\n\nfunction hasLangfuseConfigKeys(langfuse?: t.LangfuseConfig): boolean {\n if (langfuse == null) {\n return false;\n }\n return isPresent(langfuse.secretKey) && isPresent(langfuse.publicKey);\n}\n\nexport function shouldTraceToolNodeForLangfuse({\n runLangfuse,\n agentLangfuse,\n}: {\n runLangfuse?: t.LangfuseConfig;\n agentLangfuse?: t.LangfuseConfig;\n}): boolean {\n const langfuse = resolveLangfuseConfig(runLangfuse, agentLangfuse);\n if (langfuse?.enabled === false) {\n return false;\n }\n\n const explicit = langfuse?.toolNodeTracing?.enabled;\n if (explicit !== true) {\n return false;\n }\n\n return hasLangfuseConfigKeys(langfuse) || hasLangfuseEnvKeys();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"langfuseToolOutputTracing.cjs","names":["normalizeToolName","LangfuseOtelSpanAttributes","LangfuseSpanProcessor","shouldDropLangfuseSpan","resolveToolOutputTracingConfigForSpan","hasToolOutputTracingConfig","resolveToolOutputTracingConfig","resolveLangfuseConfig"],"sources":["../../src/langfuseToolOutputTracing.ts"],"mappings":"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"}
@@ -102,16 +102,6 @@ function getMessageToolCalls(message) {
102
102
  }
103
103
  return calls;
104
104
  }
105
- /**
106
- * Id-bearing `invalid_tool_calls` on the assistant turn. ToolNode pairs these
107
- * with synthesized error results (and an invalid-only turn is routed on them
108
- * alone), so the tool-dispatch span must count them as part of the executing
109
- * batch — otherwise an invalid-only dispatch finds zero calls and the span
110
- * keeps the full serialized graph state as its input, and a mixed dispatch
111
- * silently omits the malformed call. `args` stays the raw unparsed string.
112
- */
113
- /** Tool-result ids present in the serialized state — ToolNode's
114
- * `!toolMessageIds.has(id)` execution filter, mirrored for the span. */
115
105
  function getToolResultIds(messages) {
116
106
  const ids = /* @__PURE__ */ new Set();
117
107
  for (const message of messages) {
@@ -135,8 +125,6 @@ function getMessageInvalidToolCalls(message, answeredIds) {
135
125
  }
136
126
  return calls;
137
127
  }
138
- /** The serialized message's own id (uuid), NOT the LC-serialization type id
139
- * array that `message.id` carries in constructor dumps. */
140
128
  function getSerializedMessageId(message) {
141
129
  const kwargsId = isRecord(message.kwargs) ? message.kwargs.id : void 0;
142
130
  const dataId = isRecord(message.data) ? message.data.id : void 0;
@@ -144,17 +132,9 @@ function getSerializedMessageId(message) {
144
132
  const id = kwargsId ?? dataId ?? rawId;
145
133
  return typeof id === "string" && id !== "" ? id : void 0;
146
134
  }
147
- /** Latest assistant turn's tool calls — the calls this tool node is executing. */
148
135
  function findPendingToolCalls(value) {
149
136
  const messages = getMessageArray(value);
150
137
  if (messages == null) return [];
151
- /**
152
- * Invalid calls count only where ToolNode's own gate lets them execute:
153
- * the messages-state form (a bare-array state means the node returns a
154
- * plain output list and skips invalid handling) with an id-bearing
155
- * assistant message (no id, no reducer upsert). Mirrors
156
- * `canPromoteInvalidCalls` so the span never reports skipped calls.
157
- */
158
138
  const invalidCallsApply = !Array.isArray(value);
159
139
  const answeredIds = invalidCallsApply ? getToolResultIds(messages) : void 0;
160
140
  for (let i = messages.length - 1; i >= 0; i--) {
@@ -173,13 +153,6 @@ function getRootSpanParentId(span) {
173
153
  function isRootSpan(span) {
174
154
  return getRootSpanParentId(span) == null;
175
155
  }
176
- /**
177
- * LangGraph plumbing observations that add noise without information:
178
- * the duplicated `__start__` channel-seed nodes and anonymous
179
- * `RunnableLambda` pass-throughs (Langfuse team feedback items 4 & 5).
180
- * Internal ToolNode batch spans are disabled at their source so traced child
181
- * tools retain an exported parent. Explicitly traced ToolNodes are preserved.
182
- */
183
156
  function shouldDropLangfuseSpan(spanName) {
184
157
  return spanName === LANGGRAPH_START_NODE || spanName === ANONYMOUS_LAMBDA_NAME;
185
158
  }
@@ -203,13 +176,6 @@ function shapeRootSpan(span) {
203
176
  const outputKey = _langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT;
204
177
  const question = findLastMessageText(parseAttributeValue(span.attributes[inputKey]), "user");
205
178
  const answer = findLastMessageText(parseAttributeValue(span.attributes[outputKey]), "assistant");
206
- /** A generation that IS the trace root — a bare `model.invoke` with no
207
- * wrapping chain, i.e. the activity-label path — is also the only
208
- * observation carrying its own prompt: reducing its observation input
209
- * would discard the SystemMessage from the one place it is traced.
210
- * Chain/agent roots keep the full reduction; their child generations
211
- * still record the complete prompt. Trace-level input/output reduce
212
- * either way, so the trace list keeps showing question and answer. */
213
179
  if (!isGenerationSpan(span)) {
214
180
  if (question != null) span.attributes[inputKey] = question;
215
181
  if (answer != null) span.attributes[outputKey] = answer;
@@ -227,25 +193,9 @@ function isToolSpan(span) {
227
193
  const type = span.attributes[_langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE];
228
194
  return typeof type === "string" && type.toLowerCase() === TOOL_OBSERVATION_TYPE;
229
195
  }
230
- /**
231
- * Whether the span is a LangGraph node execution whose node id is the span
232
- * name — the shape of the outer workflow-agent node. `@langfuse/tracing`
233
- * flattens object metadata to per-key attributes with string values stored
234
- * raw, so LangGraph's `langgraph_node` arrives directly comparable.
235
- */
236
196
  function isWorkflowNodeSpan(span) {
237
197
  return span.attributes[OBSERVATION_METADATA_LANGGRAPH_NODE] === span.name;
238
198
  }
239
- /**
240
- * LibreChat ephemeral agents are identified as
241
- * `endpoint__model___sender[____index]` (`__` encodes `:`; see LibreChat's
242
- * `encodeEphemeralAgentId`), and the outer workflow node carries that id as
243
- * its span name — so switching models renames the span (item 1). Returns the
244
- * stable human `sender` segment only when the name matches that encoding:
245
- * the `endpoint__model` prefix must contain both segments and — unlike
246
- * display names such as `LibreChat Agent: Ops___EU` — never contains
247
- * whitespace, so legitimate names that merely embed `___` are left alone.
248
- */
249
199
  function extractEphemeralAgentSender(name) {
250
200
  let workingId = name;
251
201
  const indexSeparator = workingId.lastIndexOf(EPHEMERAL_AGENT_INDEX_SEPARATOR);
@@ -259,12 +209,6 @@ function extractEphemeralAgentSender(name) {
259
209
  const sender = workingId.slice(senderSeparator + 3).replace(/__/g, ":");
260
210
  return sender === "" ? void 0 : sender;
261
211
  }
262
- /** Workflow-agent node spans are always children of the run's root chain and
263
- * always carry `langgraph_node` metadata equal to their name, so host-named
264
- * run roots (`LibreChat Agent: <name>`) and ordinary chains that merely look
265
- * like encoded ids (`pipeline__stage___EU`) are never rename candidates.
266
- * Successful decodes become `agent` observations, matching the inner
267
- * `agent=<id>` node shaping. */
268
212
  function shapeEphemeralAgentNodeSpan(span) {
269
213
  if (isToolSpan(span) || isRootSpan(span) || !isWorkflowNodeSpan(span)) return;
270
214
  const sender = extractEphemeralAgentSender(span.name);
@@ -284,24 +228,6 @@ function shapeRootObservationType(span) {
284
228
  }
285
229
  if (hasTraceTag(span, AGENT_TRACE_TAG)) span.attributes[_langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE] = ROOT_OBSERVATION_TYPE;
286
230
  }
287
- /**
288
- * Reshapes spans per Langfuse-team feedback before export:
289
- * - `agent=<id>` / `tools=<id>` node names carry the ephemeral agent id
290
- * (`provider__model`) — strip it so switching models doesn't break
291
- * name-based logic (item 1). The outer workflow node is named with the
292
- * bare agent id; ephemeral ids reduce to their stable sender name.
293
- * - LLM generation spans keep the provider client class name (`ChatOpenAI`,
294
- * `AzureChatOpenAI`, …); rename them to a provider-agnostic `llm` so the
295
- * name reflects the operation, not the model (the model stays on the
296
- * generation's model attribute).
297
- * - Agent nodes become `agent` observations, while tool-dispatch nodes become
298
- * stable `chain` observations whose input is scoped to the pending calls.
299
- * Individual child calls remain `tool` observations (items 3 & 4).
300
- * - Agent trace roots become `agent` observations, while title and activity
301
- * summary roots become `chain` observations. Root and trace input/output are
302
- * reduced to the user question and assistant response when chat messages are
303
- * available (item 2).
304
- */
305
231
  function shapeLangfuseSpan(span) {
306
232
  const mutable = span;
307
233
  if (mutable.name.startsWith(LANGGRAPH_AGENT_NODE_PREFIX)) shapeAgentNodeSpan(mutable);
@@ -1 +1 @@
1
- {"version":3,"file":"langfuseTraceShaping.cjs","names":["LangfuseOtelSpanAttributes"],"sources":["../../src/langfuseTraceShaping.ts"],"sourcesContent":["import { LangfuseOtelSpanAttributes } from '@langfuse/tracing';\nimport type { ReadableSpan } from '@opentelemetry/sdk-trace-base';\nimport { Constants } from '@/common';\n\nconst LANGGRAPH_START_NODE = '__start__';\nconst ANONYMOUS_LAMBDA_NAME = 'RunnableLambda';\nconst LANGGRAPH_AGENT_NODE_PREFIX = 'agent=';\nconst LANGGRAPH_TOOL_NODE_PREFIX = 'tools=';\nconst AGENT_NODE_SPAN_NAME = 'agent';\nconst TOOL_DISPATCH_SPAN_NAME = 'tool-dispatch';\nconst GENERATION_SPAN_NAME = 'llm';\nconst ROOT_OBSERVATION_TYPE = 'agent';\nconst CHAIN_OBSERVATION_TYPE = 'chain';\nconst TOOL_OBSERVATION_TYPE = 'tool';\nconst AGENT_TRACE_TAG = 'agent';\nconst TITLE_TRACE_TAG = 'title';\nconst ACTIVITY_PHASE_TRACE_TAG = 'activity-phase';\nconst ACTIVITY_PHASE_ROOT_NAME = 'summarize-activity-phase';\nconst EPHEMERAL_AGENT_SENDER_SEPARATOR = '___';\nconst EPHEMERAL_AGENT_INDEX_SEPARATOR = '____';\nconst OBSERVATION_METADATA_LANGGRAPH_NODE = `${LangfuseOtelSpanAttributes.OBSERVATION_METADATA}.langgraph_node`;\n\ntype MutableSpan = ReadableSpan & {\n name: string;\n attributes: Record<string, unknown>;\n};\n\ntype SerializedToolCall = {\n name: string;\n args: unknown;\n id?: string;\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value != null && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction parseAttributeValue(value: unknown): unknown {\n if (typeof value !== 'string') {\n return value;\n }\n const trimmed = value.trim();\n if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {\n return value;\n }\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return value;\n }\n}\n\nfunction getMessageArray(\n value: unknown\n): Record<string, unknown>[] | undefined {\n if (Array.isArray(value)) {\n const records = value.filter(isRecord);\n return records.length > 0 ? records : undefined;\n }\n if (!isRecord(value)) {\n return undefined;\n }\n return (\n getMessageArray(value.messages) ??\n getMessageArray(value.input) ??\n getMessageArray(value.output)\n );\n}\n\nfunction getMessageRole(message: Record<string, unknown>): string | undefined {\n const id = message.id;\n if (Array.isArray(id)) {\n const className = id[id.length - 1];\n if (typeof className === 'string') {\n if (className.includes('Human')) {\n return 'user';\n }\n if (className.includes('AI')) {\n return 'assistant';\n }\n if (className.includes('System')) {\n return 'system';\n }\n if (className.includes('Tool')) {\n return 'tool';\n }\n }\n }\n const rawRole =\n message.type ?? message._type ?? message.role ?? message.sender;\n if (typeof rawRole !== 'string') {\n const kwargs = message.kwargs;\n return isRecord(kwargs) ? getMessageRole(kwargs) : undefined;\n }\n const normalized = rawRole.toLowerCase();\n if (normalized === 'human') {\n return 'user';\n }\n if (normalized === 'ai') {\n return 'assistant';\n }\n return normalized;\n}\n\nfunction getMessageText(message: Record<string, unknown>): string | undefined {\n const content =\n message.content ??\n (isRecord(message.kwargs) ? message.kwargs.content : undefined) ??\n (isRecord(message.data) ? message.data.content : undefined);\n if (typeof content === 'string') {\n return content;\n }\n if (!Array.isArray(content)) {\n return undefined;\n }\n const text = content\n .filter(isRecord)\n .map((part) => (typeof part.text === 'string' ? part.text : ''))\n .join('');\n return text === '' ? undefined : text;\n}\n\nfunction findLastMessageText(value: unknown, role: string): string | undefined {\n const messages = getMessageArray(value);\n if (messages == null) {\n return undefined;\n }\n for (let i = messages.length - 1; i >= 0; i--) {\n if (getMessageRole(messages[i]) !== role) {\n continue;\n }\n const text = getMessageText(messages[i]);\n if (text != null && text.trim() !== '') {\n return text;\n }\n }\n return undefined;\n}\n\nfunction normalizeToolCall(value: unknown): SerializedToolCall | undefined {\n if (!isRecord(value)) {\n return undefined;\n }\n const fn = value.function;\n if (isRecord(fn) && typeof fn.name === 'string') {\n return {\n name: fn.name,\n args: parseAttributeValue(fn.arguments),\n ...(typeof value.id === 'string' ? { id: value.id } : {}),\n };\n }\n if (typeof value.name !== 'string') {\n return undefined;\n }\n return {\n name: value.name,\n args: value.args ?? {},\n ...(typeof value.id === 'string' ? { id: value.id } : {}),\n };\n}\n\nfunction getMessageToolCalls(\n message: Record<string, unknown>\n): SerializedToolCall[] {\n const rawCalls =\n message.tool_calls ??\n (isRecord(message.kwargs) ? message.kwargs.tool_calls : undefined) ??\n (isRecord(message.additional_kwargs)\n ? message.additional_kwargs.tool_calls\n : undefined) ??\n (isRecord(message.data) ? message.data.tool_calls : undefined);\n if (!Array.isArray(rawCalls)) {\n return [];\n }\n const calls: SerializedToolCall[] = [];\n for (const rawCall of rawCalls) {\n const call = normalizeToolCall(rawCall);\n if (call != null) {\n calls.push(call);\n }\n }\n return calls;\n}\n\n/**\n * Id-bearing `invalid_tool_calls` on the assistant turn. ToolNode pairs these\n * with synthesized error results (and an invalid-only turn is routed on them\n * alone), so the tool-dispatch span must count them as part of the executing\n * batch — otherwise an invalid-only dispatch finds zero calls and the span\n * keeps the full serialized graph state as its input, and a mixed dispatch\n * silently omits the malformed call. `args` stays the raw unparsed string.\n */\n/** Tool-result ids present in the serialized state — ToolNode's\n * `!toolMessageIds.has(id)` execution filter, mirrored for the span. */\nfunction getToolResultIds(\n messages: Record<string, unknown>[]\n): Set<string> {\n const ids = new Set<string>();\n for (const message of messages) {\n if (getMessageRole(message) !== 'tool') {\n continue;\n }\n const rawId =\n message.tool_call_id ??\n (isRecord(message.kwargs) ? message.kwargs.tool_call_id : undefined) ??\n (isRecord(message.data) ? message.data.tool_call_id : undefined);\n if (typeof rawId === 'string' && rawId !== '') {\n ids.add(rawId);\n }\n }\n return ids;\n}\n\nfunction getMessageInvalidToolCalls(\n message: Record<string, unknown>,\n answeredIds: ReadonlySet<string>\n): SerializedToolCall[] {\n const rawCalls =\n message.invalid_tool_calls ??\n (isRecord(message.kwargs) ? message.kwargs.invalid_tool_calls : undefined) ??\n (isRecord(message.data) ? message.data.invalid_tool_calls : undefined);\n if (!Array.isArray(rawCalls)) {\n return [];\n }\n const calls: SerializedToolCall[] = [];\n for (const rawCall of rawCalls) {\n // Same attribution predicate ToolNode executes with (id-bearing,\n // non-server) so the span never claims calls the node deliberately skips.\n if (\n !isRecord(rawCall) ||\n typeof rawCall.id !== 'string' ||\n rawCall.id === '' ||\n answeredIds.has(rawCall.id) ||\n rawCall.id.startsWith(Constants.ANTHROPIC_SERVER_TOOL_PREFIX)\n ) {\n continue;\n }\n // Same name fallback ToolNode synthesizes with — a nameless attributable\n // call still gets a result, so it must still count in the span input.\n const call = normalizeToolCall(\n typeof rawCall.name === 'string' && rawCall.name !== ''\n ? rawCall\n : { ...rawCall, name: 'unknown' }\n );\n if (call != null) {\n calls.push(call);\n }\n }\n return calls;\n}\n\n/** The serialized message's own id (uuid), NOT the LC-serialization type id\n * array that `message.id` carries in constructor dumps. */\nfunction getSerializedMessageId(\n message: Record<string, unknown>\n): string | undefined {\n const kwargsId = isRecord(message.kwargs) ? message.kwargs.id : undefined;\n const dataId = isRecord(message.data) ? message.data.id : undefined;\n const rawId = message.id;\n const id = kwargsId ?? dataId ?? rawId;\n return typeof id === 'string' && id !== '' ? id : undefined;\n}\n\n/** Latest assistant turn's tool calls — the calls this tool node is executing. */\nfunction findPendingToolCalls(value: unknown): SerializedToolCall[] {\n const messages = getMessageArray(value);\n if (messages == null) {\n return [];\n }\n /**\n * Invalid calls count only where ToolNode's own gate lets them execute:\n * the messages-state form (a bare-array state means the node returns a\n * plain output list and skips invalid handling) with an id-bearing\n * assistant message (no id, no reducer upsert). Mirrors\n * `canPromoteInvalidCalls` so the span never reports skipped calls.\n */\n const invalidCallsApply = !Array.isArray(value);\n const answeredIds = invalidCallsApply\n ? getToolResultIds(messages)\n : undefined;\n for (let i = messages.length - 1; i >= 0; i--) {\n if (getMessageRole(messages[i]) !== 'assistant') {\n continue;\n }\n const calls = [\n ...getMessageToolCalls(messages[i]),\n ...(invalidCallsApply && getSerializedMessageId(messages[i]) != null\n ? getMessageInvalidToolCalls(messages[i], answeredIds!)\n : []),\n ];\n if (calls.length > 0) {\n return calls;\n }\n }\n return [];\n}\n\nfunction getRootSpanParentId(span: ReadableSpan): string | undefined {\n const legacyParent = (span as { parentSpanId?: string }).parentSpanId;\n if (typeof legacyParent === 'string' && legacyParent !== '') {\n return legacyParent;\n }\n const parentContext = (span as { parentSpanContext?: { spanId?: string } })\n .parentSpanContext;\n const spanId = parentContext?.spanId;\n return typeof spanId === 'string' && spanId !== '' ? spanId : undefined;\n}\n\nfunction isRootSpan(span: ReadableSpan): boolean {\n return getRootSpanParentId(span) == null;\n}\n\n/**\n * LangGraph plumbing observations that add noise without information:\n * the duplicated `__start__` channel-seed nodes and anonymous\n * `RunnableLambda` pass-throughs (Langfuse team feedback items 4 & 5).\n * Internal ToolNode batch spans are disabled at their source so traced child\n * tools retain an exported parent. Explicitly traced ToolNodes are preserved.\n */\nexport function shouldDropLangfuseSpan(spanName: string): boolean {\n return (\n spanName === LANGGRAPH_START_NODE || spanName === ANONYMOUS_LAMBDA_NAME\n );\n}\n\nfunction shapeToolNodeSpan(span: MutableSpan): void {\n const inputKey = LangfuseOtelSpanAttributes.OBSERVATION_INPUT;\n span.name = TOOL_DISPATCH_SPAN_NAME;\n span.attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE] =\n CHAIN_OBSERVATION_TYPE;\n const calls = findPendingToolCalls(\n parseAttributeValue(span.attributes[inputKey])\n );\n if (calls.length === 0) {\n return;\n }\n span.attributes[inputKey] = JSON.stringify(\n calls.map(({ name, args }) => ({ name, args }))\n );\n}\n\nfunction shapeAgentNodeSpan(span: MutableSpan): void {\n span.name = AGENT_NODE_SPAN_NAME;\n span.attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE] =\n ROOT_OBSERVATION_TYPE;\n}\n\nfunction shapeRootSpan(span: MutableSpan): void {\n const inputKey = LangfuseOtelSpanAttributes.OBSERVATION_INPUT;\n const outputKey = LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT;\n const question = findLastMessageText(\n parseAttributeValue(span.attributes[inputKey]),\n 'user'\n );\n const answer = findLastMessageText(\n parseAttributeValue(span.attributes[outputKey]),\n 'assistant'\n );\n /** A generation that IS the trace root — a bare `model.invoke` with no\n * wrapping chain, i.e. the activity-label path — is also the only\n * observation carrying its own prompt: reducing its observation input\n * would discard the SystemMessage from the one place it is traced.\n * Chain/agent roots keep the full reduction; their child generations\n * still record the complete prompt. Trace-level input/output reduce\n * either way, so the trace list keeps showing question and answer. */\n if (!isGenerationSpan(span)) {\n if (question != null) {\n span.attributes[inputKey] = question;\n }\n if (answer != null) {\n span.attributes[outputKey] = answer;\n }\n }\n const traceInput = question ?? span.attributes[inputKey];\n const traceOutput = answer ?? span.attributes[outputKey];\n if (traceInput != null) {\n span.attributes[LangfuseOtelSpanAttributes.TRACE_INPUT] = traceInput;\n }\n if (traceOutput != null) {\n span.attributes[LangfuseOtelSpanAttributes.TRACE_OUTPUT] = traceOutput;\n }\n}\n\nfunction isGenerationSpan(span: MutableSpan): boolean {\n const type = span.attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE];\n return typeof type === 'string' && type.toLowerCase() === 'generation';\n}\n\nfunction isToolSpan(span: MutableSpan): boolean {\n const type = span.attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE];\n return (\n typeof type === 'string' && type.toLowerCase() === TOOL_OBSERVATION_TYPE\n );\n}\n\n/**\n * Whether the span is a LangGraph node execution whose node id is the span\n * name — the shape of the outer workflow-agent node. `@langfuse/tracing`\n * flattens object metadata to per-key attributes with string values stored\n * raw, so LangGraph's `langgraph_node` arrives directly comparable.\n */\nfunction isWorkflowNodeSpan(span: MutableSpan): boolean {\n return span.attributes[OBSERVATION_METADATA_LANGGRAPH_NODE] === span.name;\n}\n\n/**\n * LibreChat ephemeral agents are identified as\n * `endpoint__model___sender[____index]` (`__` encodes `:`; see LibreChat's\n * `encodeEphemeralAgentId`), and the outer workflow node carries that id as\n * its span name — so switching models renames the span (item 1). Returns the\n * stable human `sender` segment only when the name matches that encoding:\n * the `endpoint__model` prefix must contain both segments and — unlike\n * display names such as `LibreChat Agent: Ops___EU` — never contains\n * whitespace, so legitimate names that merely embed `___` are left alone.\n */\nfunction extractEphemeralAgentSender(name: string): string | undefined {\n let workingId = name;\n const indexSeparator = workingId.lastIndexOf(EPHEMERAL_AGENT_INDEX_SEPARATOR);\n if (\n indexSeparator !== -1 &&\n /^\\d+$/.test(\n workingId.slice(indexSeparator + EPHEMERAL_AGENT_INDEX_SEPARATOR.length)\n )\n ) {\n workingId = workingId.slice(0, indexSeparator);\n }\n const senderSeparator = workingId.indexOf(EPHEMERAL_AGENT_SENDER_SEPARATOR);\n if (senderSeparator <= 0) {\n return undefined;\n }\n const encodedPrefix = workingId.slice(0, senderSeparator);\n if (/\\s/.test(encodedPrefix)) {\n return undefined;\n }\n const prefixParts = encodedPrefix.split('__');\n if (prefixParts.length < 2 || prefixParts.some((part) => part === '')) {\n return undefined;\n }\n const sender = workingId\n .slice(senderSeparator + EPHEMERAL_AGENT_SENDER_SEPARATOR.length)\n .replace(/__/g, ':');\n return sender === '' ? undefined : sender;\n}\n\n/** Workflow-agent node spans are always children of the run's root chain and\n * always carry `langgraph_node` metadata equal to their name, so host-named\n * run roots (`LibreChat Agent: <name>`) and ordinary chains that merely look\n * like encoded ids (`pipeline__stage___EU`) are never rename candidates.\n * Successful decodes become `agent` observations, matching the inner\n * `agent=<id>` node shaping. */\nfunction shapeEphemeralAgentNodeSpan(span: MutableSpan): void {\n if (isToolSpan(span) || isRootSpan(span) || !isWorkflowNodeSpan(span)) {\n return;\n }\n const sender = extractEphemeralAgentSender(span.name);\n if (sender == null) {\n return;\n }\n span.name = sender;\n span.attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE] =\n ROOT_OBSERVATION_TYPE;\n}\n\nfunction hasTraceTag(span: MutableSpan, expectedTag: string): boolean {\n const tags = parseAttributeValue(\n span.attributes[LangfuseOtelSpanAttributes.TRACE_TAGS]\n );\n return (\n Array.isArray(tags) &&\n tags.some((tag) => typeof tag === 'string' && tag === expectedTag)\n );\n}\n\nfunction shapeRootObservationType(span: MutableSpan): void {\n if (isGenerationSpan(span)) {\n return;\n }\n if (\n hasTraceTag(span, TITLE_TRACE_TAG) ||\n (span.name === ACTIVITY_PHASE_ROOT_NAME &&\n hasTraceTag(span, ACTIVITY_PHASE_TRACE_TAG))\n ) {\n span.attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE] =\n CHAIN_OBSERVATION_TYPE;\n return;\n }\n if (hasTraceTag(span, AGENT_TRACE_TAG)) {\n span.attributes[LangfuseOtelSpanAttributes.OBSERVATION_TYPE] =\n ROOT_OBSERVATION_TYPE;\n }\n}\n\n/**\n * Reshapes spans per Langfuse-team feedback before export:\n * - `agent=<id>` / `tools=<id>` node names carry the ephemeral agent id\n * (`provider__model`) — strip it so switching models doesn't break\n * name-based logic (item 1). The outer workflow node is named with the\n * bare agent id; ephemeral ids reduce to their stable sender name.\n * - LLM generation spans keep the provider client class name (`ChatOpenAI`,\n * `AzureChatOpenAI`, …); rename them to a provider-agnostic `llm` so the\n * name reflects the operation, not the model (the model stays on the\n * generation's model attribute).\n * - Agent nodes become `agent` observations, while tool-dispatch nodes become\n * stable `chain` observations whose input is scoped to the pending calls.\n * Individual child calls remain `tool` observations (items 3 & 4).\n * - Agent trace roots become `agent` observations, while title and activity\n * summary roots become `chain` observations. Root and trace input/output are\n * reduced to the user question and assistant response when chat messages are\n * available (item 2).\n */\nexport function shapeLangfuseSpan(span: ReadableSpan): void {\n const mutable = span as MutableSpan;\n if (mutable.name.startsWith(LANGGRAPH_AGENT_NODE_PREFIX)) {\n shapeAgentNodeSpan(mutable);\n } else if (mutable.name.startsWith(LANGGRAPH_TOOL_NODE_PREFIX)) {\n shapeToolNodeSpan(mutable);\n } else if (isGenerationSpan(mutable)) {\n mutable.name = GENERATION_SPAN_NAME;\n } else {\n shapeEphemeralAgentNodeSpan(mutable);\n }\n if (!isRootSpan(span)) {\n return;\n }\n shapeRootObservationType(mutable);\n shapeRootSpan(mutable);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"langfuseTraceShaping.cjs","names":["LangfuseOtelSpanAttributes"],"sources":["../../src/langfuseTraceShaping.ts"],"mappings":"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"}
@@ -182,9 +182,6 @@ var CustomAnthropic = class extends _langchain_anthropic.ChatAnthropicMessages {
182
182
  static lc_name() {
183
183
  return "LibreChatAnthropic";
184
184
  }
185
- /**
186
- * Get the parameters used to invoke the model
187
- */
188
185
  invocationParams(options) {
189
186
  const tool_choice = require_tools.handleToolChoice(options?.tool_choice);
190
187
  const callOptions = options;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["isSignalAborted","AIMessageChunk","ChatAnthropicMessages","resolveStreamDelay","handleToolChoice","ChatGenerationChunk","stripUnsupportedAssistantPrefill","_convertMessagesToAnthropicPayload","convertAnthropicStream","smoothStream","_makeMessageChunkFromAnthropicEvent"],"sources":["../../../../src/llm/anthropic/index.ts"],"sourcesContent":["import { AIMessageChunk } from '@langchain/core/messages';\nimport { ChatAnthropicMessages } from '@langchain/anthropic';\nimport { ChatGenerationChunk } from '@langchain/core/outputs';\nimport type { BaseChatModelParams } from '@langchain/core/language_models/chat_models';\nimport type {\n BaseMessage,\n MessageContentComplex,\n} from '@langchain/core/messages';\nimport type { ChatModelStreamEvent } from '@langchain/core/language_models/event';\nimport type { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';\nimport type { AnthropicInput } from '@langchain/anthropic';\nimport type { Anthropic } from '@anthropic-ai/sdk';\nimport type {\n AnthropicMessageCreateParams,\n AnthropicStreamingMessageCreateParams,\n AnthropicOutputConfig,\n AnthropicBeta,\n ChatAnthropicToolType,\n AnthropicMCPServerURLDefinition,\n AnthropicContextManagementConfigParam,\n AnthropicRequestOptions,\n AnthropicMessageStreamEvent,\n} from '@/llm/anthropic/types';\nimport type { SmoothItem } from '@/llm/stream/smoother';\nimport type { AnthropicUsageData } from './utils/message_outputs';\nimport {\n _convertMessagesToAnthropicPayload,\n stripUnsupportedAssistantPrefill,\n} from './utils/message_inputs';\nimport { _makeMessageChunkFromAnthropicEvent } from './utils/message_outputs';\nimport { smoothStream, resolveStreamDelay, isSignalAborted } from '@/llm/stream/smoother';\nimport { convertAnthropicStream } from './utils/stream_events';\nimport { handleToolChoice } from './utils/tools';\n\ntype StreamTokenType = 'string' | 'input' | 'content';\n\ninterface AnthropicStreamUsage {\n inputTokens: number;\n cacheCreationInputTokens: number;\n cacheReadInputTokens: number;\n outputTokens: number;\n}\n\ninterface CumulativeUsageValue {\n cumulative: number;\n increment: number;\n}\n\ninterface AnthropicEventStream\n extends AsyncIterable<AnthropicMessageStreamEvent> {\n controller?: { abort: () => void };\n}\n\nconst ANTHROPIC_TOOL_BETAS: Partial<Record<string, AnthropicBeta>> = {\n tool_search_tool_regex_20251119: 'advanced-tool-use-2025-11-20',\n tool_search_tool_bm25_20251119: 'advanced-tool-use-2025-11-20',\n memory_20250818: 'context-management-2025-06-27',\n web_fetch_20250910: 'web-fetch-2025-09-10',\n code_execution_20250825: 'code-execution-2025-08-25',\n computer_20251124: 'computer-use-2025-11-24',\n computer_20250124: 'computer-use-2025-01-24',\n mcp_toolset: 'mcp-client-2025-11-20',\n};\n\nfunction _toolsInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n return !!(params.tools && params.tools.length > 0);\n}\nexport function _documentsInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n for (const message of params.messages) {\n if (typeof message.content === 'string') {\n continue;\n }\n for (const block of message.content) {\n const maybeBlock: unknown = block;\n if (\n typeof maybeBlock === 'object' &&\n maybeBlock !== null &&\n 'type' in maybeBlock &&\n maybeBlock.type === 'document' &&\n 'citations' in maybeBlock &&\n maybeBlock.citations != null &&\n typeof maybeBlock.citations === 'object' &&\n 'enabled' in maybeBlock.citations &&\n maybeBlock.citations.enabled === true\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction _thinkingInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n return !!(\n params.thinking &&\n (params.thinking.type === 'enabled' || params.thinking.type === 'adaptive')\n );\n}\n\nfunction _compactionInParams(\n params: (\n | AnthropicMessageCreateParams\n | AnthropicStreamingMessageCreateParams\n ) & {\n context_management?: AnthropicContextManagementConfigParam;\n }\n): boolean {\n return (\n params.context_management?.edits?.some(\n (edit) => edit.type === 'compact_20260112'\n ) === true\n );\n}\n\nfunction isThinkingEnabled(thinking: Anthropic.ThinkingConfigParam): boolean {\n return thinking.type === 'enabled' || thinking.type === 'adaptive';\n}\n\nfunction isOpus47Model(model?: string): boolean {\n return /^claude-opus-4-7(?:-|$)/.test(model ?? '');\n}\n\nfunction combineBetas(\n ...betaGroups: (AnthropicBeta[] | undefined)[]\n): AnthropicBeta[] {\n const betas = new Set<AnthropicBeta>();\n for (const betaGroup of betaGroups) {\n for (const beta of betaGroup ?? []) {\n betas.add(beta);\n }\n }\n return [...betas];\n}\n\nfunction getToolBetas(tools?: ChatAnthropicToolType[]): AnthropicBeta[] {\n const betas = new Set<AnthropicBeta>();\n for (const tool of tools ?? []) {\n if (typeof tool !== 'object' || !('type' in tool)) {\n continue;\n }\n const beta = ANTHROPIC_TOOL_BETAS[String(tool.type)];\n if (beta != null) {\n betas.add(beta);\n }\n }\n return [...betas];\n}\n\nfunction getCompactionBetas(\n contextManagement?: AnthropicContextManagementConfigParam\n): AnthropicBeta[] {\n return contextManagement?.edits?.some(\n (edit) => edit.type === 'compact_20260112'\n ) === true\n ? ['compact-2026-01-12']\n : [];\n}\n\nfunction getTaskBudgetBetas(\n model: string,\n outputConfig?: AnthropicOutputConfig\n): AnthropicBeta[] {\n return isOpus47Model(model) &&\n outputConfig != null &&\n 'task_budget' in outputConfig &&\n outputConfig.task_budget != null\n ? ['task-budgets-2026-03-13']\n : [];\n}\n\nfunction isSetSamplingValue(value?: number | null): value is number {\n return value != null && value !== -1;\n}\n\nfunction isNonDefaultTemperature(value?: number): boolean {\n return isSetSamplingValue(value) && value !== 1;\n}\n\nfunction validateInvocationParamCompatibility({\n model,\n thinking,\n topK,\n topP,\n temperature,\n}: {\n model: string;\n thinking: Anthropic.ThinkingConfigParam;\n topK?: number;\n topP?: number | null;\n temperature?: number;\n}): void {\n const opus47 = isOpus47Model(model);\n if (opus47 && thinking.type === 'enabled') {\n throw new Error(\n 'thinking.type=\"enabled\" is not supported for claude-opus-4-7; use thinking.type=\"adaptive\" instead'\n );\n }\n if (opus47 && 'budget_tokens' in thinking) {\n throw new Error(\n 'thinking.budget_tokens is not supported for claude-opus-4-7; use outputConfig.effort instead'\n );\n }\n if (opus47) {\n if (isSetSamplingValue(topK)) {\n throw new Error(\n 'topK is not supported for claude-opus-4-7; omit topK/topP/temperature or use model prompting instead'\n );\n }\n if (isSetSamplingValue(topP) && topP !== 1) {\n throw new Error(\n 'topP is not supported for claude-opus-4-7 when set to non-default values'\n );\n }\n if (isNonDefaultTemperature(temperature)) {\n throw new Error(\n 'temperature is not supported for claude-opus-4-7 when set to non-default values'\n );\n }\n }\n if (!isThinkingEnabled(thinking)) {\n return;\n }\n if (isSetSamplingValue(topK)) {\n throw new Error('topK is not supported when thinking is enabled');\n }\n if (isSetSamplingValue(topP)) {\n throw new Error('topP is not supported when thinking is enabled');\n }\n if (isNonDefaultTemperature(temperature)) {\n throw new Error('temperature is not supported when thinking is enabled');\n }\n}\n\nfunction getSamplingParams({\n model,\n thinking,\n topK,\n topP,\n temperature,\n}: {\n model: string;\n thinking: Anthropic.ThinkingConfigParam;\n topK?: number;\n topP?: number | null;\n temperature?: number;\n}): {\n temperature?: number;\n top_k?: number;\n top_p?: number;\n} {\n if (isThinkingEnabled(thinking) || isOpus47Model(model)) {\n return {};\n }\n return {\n ...(isSetSamplingValue(temperature) ? { temperature } : {}),\n ...(isSetSamplingValue(topK) ? { top_k: topK } : {}),\n ...(isSetSamplingValue(topP) ? { top_p: topP } : {}),\n };\n}\n\nasync function* abortableAnthropicStream(\n source: AnthropicEventStream,\n signal?: AbortSignal\n): AsyncGenerator<AnthropicMessageStreamEvent> {\n for await (const data of source) {\n if (isSignalAborted(signal)) {\n source.controller?.abort();\n return;\n }\n yield data;\n }\n}\n\nfunction extractToken(\n chunk: AIMessageChunk\n): [string, StreamTokenType] | [undefined] {\n if (typeof chunk.content === 'string') {\n return [chunk.content, 'string'];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'input' in chunk.content[0]\n ) {\n return typeof chunk.content[0].input === 'string'\n ? [chunk.content[0].input, 'input']\n : [JSON.stringify(chunk.content[0].input), 'input'];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'text' in chunk.content[0]\n ) {\n const text = chunk.content[0].text;\n return typeof text === 'string' ? [text, 'content'] : [undefined];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'thinking' in chunk.content[0]\n ) {\n const thinking = chunk.content[0].thinking;\n return typeof thinking === 'string' ? [thinking, 'content'] : [undefined];\n }\n return [undefined];\n}\n\nfunction cloneChunk(\n text: string,\n tokenType: StreamTokenType,\n chunk: AIMessageChunk\n): AIMessageChunk {\n if (tokenType === 'string') {\n return new AIMessageChunk(Object.assign({}, chunk, { content: text }));\n } else if (tokenType === 'input') {\n return chunk;\n }\n const content = chunk.content[0] as MessageContentComplex;\n if (content.type === 'text') {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { text })],\n })\n );\n } else if (content.type === 'text_delta') {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { text })],\n })\n );\n } else if (\n typeof content.type === 'string' &&\n content.type.startsWith('thinking')\n ) {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { thinking: text })],\n })\n );\n }\n\n return chunk;\n}\n\nfunction resolveCumulativeUsageValue(\n current: number | null | undefined,\n previous: number\n): CumulativeUsageValue {\n if (current == null) {\n return { cumulative: previous, increment: 0 };\n }\n const cumulative = Math.max(previous, current);\n return { cumulative, increment: cumulative - previous };\n}\n\nfunction withIncrementalMessageDeltaUsage(\n chunk: AIMessageChunk,\n previousUsage: AnthropicStreamUsage,\n cumulativeUsage: AnthropicUsageData\n): { chunk: AIMessageChunk; usage: AnthropicStreamUsage } {\n const usage = chunk.usage_metadata;\n if (usage == null) {\n return { chunk, usage: previousUsage };\n }\n\n const inputTokens = resolveCumulativeUsageValue(\n cumulativeUsage.input_tokens,\n previousUsage.inputTokens\n );\n const cacheCreationInputTokens = resolveCumulativeUsageValue(\n cumulativeUsage.cache_creation_input_tokens,\n previousUsage.cacheCreationInputTokens\n );\n const cacheReadInputTokens = resolveCumulativeUsageValue(\n cumulativeUsage.cache_read_input_tokens,\n previousUsage.cacheReadInputTokens\n );\n const outputTokens = resolveCumulativeUsageValue(\n cumulativeUsage.output_tokens,\n previousUsage.outputTokens\n );\n const incrementalInputTokens =\n inputTokens.increment +\n cacheCreationInputTokens.increment +\n cacheReadInputTokens.increment;\n const hasCacheUsage =\n cumulativeUsage.cache_creation_input_tokens != null ||\n cumulativeUsage.cache_read_input_tokens != null;\n const inputTokenDetails = {\n ...(cumulativeUsage.cache_creation_input_tokens != null && {\n cache_creation: cacheCreationInputTokens.increment,\n }),\n ...(cumulativeUsage.cache_read_input_tokens != null && {\n cache_read: cacheReadInputTokens.increment,\n }),\n };\n\n return {\n chunk: new AIMessageChunk(\n Object.assign({}, chunk, {\n usage_metadata: {\n ...usage,\n input_tokens: incrementalInputTokens,\n output_tokens: outputTokens.increment,\n total_tokens: incrementalInputTokens + outputTokens.increment,\n input_token_details: hasCacheUsage ? inputTokenDetails : undefined,\n },\n })\n ),\n usage: {\n inputTokens: inputTokens.cumulative,\n cacheCreationInputTokens: cacheCreationInputTokens.cumulative,\n cacheReadInputTokens: cacheReadInputTokens.cumulative,\n outputTokens: outputTokens.cumulative,\n },\n };\n}\n\nexport type CustomAnthropicInput = AnthropicInput & {\n _lc_stream_delay?: number;\n outputConfig?: AnthropicOutputConfig;\n inferenceGeo?: string;\n contextManagement?: AnthropicContextManagementConfigParam;\n} & BaseChatModelParams;\n\nexport type CustomAnthropicCallOptions = {\n outputConfig?: AnthropicOutputConfig;\n outputFormat?: Anthropic.Messages.JSONOutputFormat;\n inferenceGeo?: string;\n betas?: AnthropicBeta[];\n container?: string;\n mcp_servers?: AnthropicMCPServerURLDefinition[];\n};\n\ntype CustomAnthropicInvocationParams = {\n betas?: AnthropicBeta[];\n container?: string;\n context_management?: AnthropicContextManagementConfigParam;\n inference_geo?: string;\n mcp_servers?: AnthropicMCPServerURLDefinition[];\n output_config?: AnthropicOutputConfig;\n};\n\ntype AnthropicEmittedChunk = {\n chunk: ChatGenerationChunk;\n token: string;\n};\n\nexport class CustomAnthropic extends ChatAnthropicMessages {\n _lc_stream_delay: number;\n private tools_in_params?: boolean;\n top_k: number | undefined;\n outputConfig?: AnthropicOutputConfig;\n inferenceGeo?: string;\n contextManagement?: AnthropicContextManagementConfigParam;\n constructor(fields?: CustomAnthropicInput) {\n super(fields);\n this.resetTokenEvents();\n this.setDirectFields(fields);\n this._lc_stream_delay = resolveStreamDelay(fields?._lc_stream_delay);\n this.outputConfig = fields?.outputConfig;\n this.inferenceGeo = fields?.inferenceGeo;\n this.contextManagement = fields?.contextManagement;\n }\n\n static lc_name(): 'LibreChatAnthropic' {\n return 'LibreChatAnthropic';\n }\n\n /**\n * Get the parameters used to invoke the model\n */\n override invocationParams(\n options?: this['ParsedCallOptions'] & CustomAnthropicCallOptions\n ): Omit<\n AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams,\n 'messages'\n > &\n CustomAnthropicInvocationParams {\n const tool_choice:\n | Anthropic.Messages.ToolChoiceAuto\n | Anthropic.Messages.ToolChoiceAny\n | Anthropic.Messages.ToolChoiceTool\n | Anthropic.Messages.ToolChoiceNone\n | undefined = handleToolChoice(options?.tool_choice);\n\n const callOptions = options as CustomAnthropicCallOptions | undefined;\n const mergedOutputConfig: AnthropicOutputConfig | undefined = (():\n | AnthropicOutputConfig\n | undefined => {\n const base = {\n ...this.outputConfig,\n ...callOptions?.outputConfig,\n };\n if (callOptions?.outputFormat && !base.format) {\n base.format = callOptions.outputFormat;\n }\n return Object.keys(base).length > 0 ? base : undefined;\n })();\n\n const inferenceGeo = callOptions?.inferenceGeo ?? this.inferenceGeo;\n\n const contextManagement = this.contextManagement;\n const toolBetas = getToolBetas(options?.tools);\n const compactionBetas = getCompactionBetas(contextManagement);\n const taskBudgetBetas = getTaskBudgetBetas(this.model, mergedOutputConfig);\n const formattedTools = this.formatStructuredToolToAnthropic(\n options?.tools,\n {\n strict: options?.strict,\n }\n );\n\n const sharedParams = {\n tools: formattedTools,\n tool_choice,\n // Match upstream: omit `thinking` unless the user set it, so we don't send\n // `{ type: 'disabled' }` (an unsupported param on some models) by default.\n thinking: this.thinkingExplicitlySet ? this.thinking : undefined,\n context_management: contextManagement,\n ...this.invocationKwargs,\n container: callOptions?.container,\n betas: combineBetas(\n this.betas,\n callOptions?.betas,\n toolBetas,\n compactionBetas,\n taskBudgetBetas\n ),\n output_config: mergedOutputConfig,\n inference_geo: inferenceGeo,\n mcp_servers: callOptions?.mcp_servers,\n // Top-level request cache_control (1.5.x): API auto-advances the cache\n // breakpoint across turns. Additive — independent of our block-level cache.\n cache_control: options?.cache_control,\n };\n validateInvocationParamCompatibility({\n model: this.model,\n thinking: this.thinking,\n topK: this.top_k,\n topP: this.topP,\n temperature: this.temperature,\n });\n\n return {\n model: this.model,\n stop_sequences: options?.stop ?? this.stopSequences,\n stream: this.streaming,\n max_tokens: this.maxTokens,\n ...getSamplingParams({\n model: this.model,\n thinking: this.thinking,\n topK: this.top_k,\n topP: this.topP,\n temperature: this.temperature,\n }),\n ...sharedParams,\n };\n }\n\n resetTokenEvents(): void {\n this.tools_in_params = undefined;\n }\n\n setDirectFields(fields?: CustomAnthropicInput): void {\n this.temperature = fields?.temperature ?? undefined;\n this.topP = fields?.topP ?? undefined;\n this.top_k = fields?.topK;\n if (this.temperature === -1 || this.temperature === 1) {\n this.temperature = undefined;\n }\n if (this.topP === -1) {\n this.topP = undefined;\n }\n if (this.top_k === -1) {\n this.top_k = undefined;\n }\n }\n\n private createGenerationChunk({\n token,\n chunk,\n shouldStreamUsage,\n }: {\n token?: string;\n chunk: AIMessageChunk;\n shouldStreamUsage: boolean;\n }): ChatGenerationChunk {\n const usage_metadata = shouldStreamUsage ? chunk.usage_metadata : undefined;\n return new ChatGenerationChunk({\n message: new AIMessageChunk({\n // Just yield chunk as it is and tool_use will be concat by BaseChatModel._generateUncached().\n content: chunk.content,\n additional_kwargs: chunk.additional_kwargs,\n tool_call_chunks: chunk.tool_call_chunks,\n response_metadata: chunk.response_metadata,\n usage_metadata,\n id: chunk.id,\n }),\n text: token ?? '',\n });\n }\n\n protected override async createStreamWithRetry(\n request: AnthropicStreamingMessageCreateParams,\n options?: AnthropicRequestOptions\n ): ReturnType<ChatAnthropicMessages['createStreamWithRetry']> {\n return super.createStreamWithRetry(\n stripUnsupportedAssistantPrefill(request),\n options\n );\n }\n\n protected override async completionWithRetry(\n request: AnthropicMessageCreateParams,\n options: AnthropicRequestOptions\n ): ReturnType<ChatAnthropicMessages['completionWithRetry']> {\n return super.completionWithRetry(\n stripUnsupportedAssistantPrefill(request),\n options\n );\n }\n\n async *_streamChatModelEvents(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n _runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatModelStreamEvent> {\n const params = this.invocationParams(options);\n const formattedMessages = _convertMessagesToAnthropicPayload(messages);\n const payload = stripUnsupportedAssistantPrefill({\n ...params,\n ...formattedMessages,\n stream: true,\n } as const);\n const stream = await this.createStreamWithRetry(payload, {\n headers: options.headers,\n signal: options.signal,\n });\n const shouldStreamUsage = options.streamUsage ?? this.streamUsage;\n yield* convertAnthropicStream(\n abortableAnthropicStream(stream, options.signal),\n { streamUsage: shouldStreamUsage }\n );\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n this.resetTokenEvents();\n const params = this.invocationParams(options);\n const formattedMessages = _convertMessagesToAnthropicPayload(messages);\n const payload = stripUnsupportedAssistantPrefill({\n ...params,\n ...formattedMessages,\n stream: true,\n } as const);\n const coerceContentToString =\n !_toolsInParams(payload) &&\n !_documentsInParams(payload) &&\n !_thinkingInParams(payload) &&\n !_compactionInParams(payload);\n\n const stream = await this.createStreamWithRetry(payload, {\n headers: options.headers,\n signal: options.signal,\n });\n\n const shouldStreamUsage = options.streamUsage ?? this.streamUsage;\n let streamUsage: AnthropicStreamUsage = {\n inputTokens: 0,\n cacheCreationInputTokens: 0,\n cacheReadInputTokens: 0,\n outputTokens: 0,\n };\n const toEmittedChunk = (\n token: string,\n chunk: AIMessageChunk\n ): AnthropicEmittedChunk => ({\n token,\n chunk: this.createGenerationChunk({ token, chunk, shouldStreamUsage }),\n });\n\n const source = (async function* (): AsyncGenerator<\n SmoothItem<AnthropicEmittedChunk>\n > {\n for await (const data of stream) {\n const result = _makeMessageChunkFromAnthropicEvent(\n data as Anthropic.Beta.Messages.BetaRawMessageStreamEvent,\n {\n streamUsage: shouldStreamUsage,\n coerceContentToString,\n }\n );\n if (!result) {\n continue;\n }\n\n let { chunk } = result;\n if (data.type === 'message_start') {\n streamUsage = {\n ...streamUsage,\n inputTokens: data.message.usage.input_tokens,\n outputTokens: data.message.usage.output_tokens,\n cacheCreationInputTokens:\n data.message.usage.cache_creation_input_tokens ?? 0,\n cacheReadInputTokens:\n data.message.usage.cache_read_input_tokens ?? 0,\n };\n }\n if (data.type === 'message_delta') {\n const incremental = withIncrementalMessageDeltaUsage(\n chunk,\n streamUsage,\n data.usage\n );\n chunk = incremental.chunk;\n streamUsage = incremental.usage;\n }\n\n const [token = '', tokenType] = extractToken(chunk);\n if (\n !tokenType ||\n tokenType === 'input' ||\n (token === '' && (chunk.usage_metadata != null || chunk.id != null))\n ) {\n yield {\n text: '',\n smooth: false,\n emit: (): AnthropicEmittedChunk => toEmittedChunk(token, chunk),\n };\n continue;\n }\n\n if (token === '') {\n continue;\n }\n\n yield {\n text: token,\n smooth: true,\n emit: (piece): AnthropicEmittedChunk => {\n if (piece.isFirst && piece.isLast) {\n return toEmittedChunk(token, chunk);\n }\n const cloned = cloneChunk(piece.text, tokenType, chunk);\n const chunkForPiece =\n !piece.isFirst && cloned.usage_metadata != null\n ? new AIMessageChunk(\n Object.assign({}, cloned, { usage_metadata: undefined })\n )\n : cloned;\n return toEmittedChunk(piece.text, chunkForPiece);\n },\n };\n }\n })();\n\n const smoothed = smoothStream({\n source,\n delayMs: this._lc_stream_delay,\n signal: options.signal,\n abortUpstream: () => stream.controller.abort(),\n });\n\n try {\n for await (const emitted of smoothed) {\n yield emitted.chunk;\n await runManager?.handleLLMNewToken(\n emitted.token,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: emitted.chunk }\n );\n }\n } finally {\n this.resetTokenEvents();\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["isSignalAborted","AIMessageChunk","ChatAnthropicMessages","resolveStreamDelay","handleToolChoice","ChatGenerationChunk","stripUnsupportedAssistantPrefill","_convertMessagesToAnthropicPayload","convertAnthropicStream","smoothStream","_makeMessageChunkFromAnthropicEvent"],"sources":["../../../../src/llm/anthropic/index.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","names":[],"sources":["../../../../src/llm/anthropic/types.ts"],"sourcesContent":["import Anthropic from '@anthropic-ai/sdk';\n\nimport type { BindToolsInput } from '@langchain/core/language_models/chat_models';\nimport type { AnthropicBeta } from '@anthropic-ai/sdk/resources';\n\nexport type { AnthropicBeta };\n\nexport type AnthropicStreamUsage = Anthropic.Usage;\nexport type AnthropicMessageDeltaEvent = Anthropic.MessageDeltaEvent;\nexport type AnthropicMessageStartEvent = Anthropic.MessageStartEvent;\n\nexport type AnthropicToolResponse = {\n type: 'tool_use' | 'server_tool_use';\n id: string;\n name: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: Record<string, any>;\n};\n\nexport type AnthropicMessageParam = Anthropic.MessageParam;\nexport type AnthropicMessageResponse =\n | Anthropic.ContentBlock\n | AnthropicToolResponse;\nexport type AnthropicMessageCreateParams =\n Anthropic.MessageCreateParamsNonStreaming;\nexport type AnthropicStreamingMessageCreateParams =\n Anthropic.MessageCreateParamsStreaming;\nexport type AnthropicThinkingConfigParam = Anthropic.ThinkingConfigParam;\nexport type AnthropicContextManagementConfigParam =\n Anthropic.Beta.BetaContextManagementConfig;\nexport type AnthropicMessageStreamEvent = Anthropic.MessageStreamEvent;\nexport type AnthropicRequestOptions = Anthropic.RequestOptions;\nexport type AnthropicMCPServerURLDefinition =\n Anthropic.Beta.Messages.BetaRequestMCPServerURLDefinition;\nexport type AnthropicToolChoice =\n | {\n type: 'tool';\n name: string;\n }\n | 'any'\n | 'auto'\n | 'none'\n | string;\nexport type ChatAnthropicToolType = Anthropic.Messages.Tool | BindToolsInput;\nexport type AnthropicTextBlockParam = Anthropic.Messages.TextBlockParam;\nexport type AnthropicImageBlockParam = Anthropic.Messages.ImageBlockParam;\nexport type AnthropicToolUseBlockParam = Anthropic.Messages.ToolUseBlockParam;\nexport type AnthropicToolResultBlockParam =\n Anthropic.Messages.ToolResultBlockParam;\nexport type AnthropicDocumentBlockParam = Anthropic.Messages.DocumentBlockParam;\nexport type AnthropicThinkingBlockParam = Anthropic.Messages.ThinkingBlockParam;\nexport type AnthropicRedactedThinkingBlockParam =\n Anthropic.Messages.RedactedThinkingBlockParam;\nexport type AnthropicServerToolUseBlockParam =\n Anthropic.Messages.ServerToolUseBlockParam;\nexport type AnthropicWebSearchToolResultBlockParam =\n Anthropic.Messages.WebSearchToolResultBlockParam;\nexport type AnthropicWebSearchResultBlockParam =\n Anthropic.Messages.WebSearchResultBlockParam;\nexport type AnthropicSearchResultBlockParam =\n Anthropic.Beta.BetaSearchResultBlockParam;\nexport type AnthropicCompactionBlockParam =\n Anthropic.Beta.BetaCompactionBlockParam;\nexport type AnthropicCompactionBlock = Anthropic.Beta.BetaCompactionBlock;\nexport type AnthropicCompactionContentBlockDelta =\n Anthropic.Beta.BetaCompactionContentBlockDelta;\nexport type AnthropicOutputConfig = Anthropic.Messages.OutputConfig;\nexport type ChatAnthropicOutputFormat = Anthropic.Messages.JSONOutputFormat;\n\n// Union of all possible content block types including server tool use\nexport type AnthropicContentBlock =\n | AnthropicTextBlockParam\n | AnthropicImageBlockParam\n | AnthropicToolUseBlockParam\n | AnthropicToolResultBlockParam\n | AnthropicDocumentBlockParam\n | AnthropicThinkingBlockParam\n | AnthropicRedactedThinkingBlockParam\n | AnthropicServerToolUseBlockParam\n | AnthropicWebSearchToolResultBlockParam\n | AnthropicWebSearchResultBlockParam\n | AnthropicCompactionBlockParam;\n\n// Union of all possible content block types including server tool use\nexport type ChatAnthropicContentBlock =\n | AnthropicTextBlockParam\n | AnthropicImageBlockParam\n | AnthropicToolUseBlockParam\n | AnthropicToolResultBlockParam\n | AnthropicDocumentBlockParam\n | AnthropicThinkingBlockParam\n | AnthropicRedactedThinkingBlockParam\n | AnthropicServerToolUseBlockParam\n | AnthropicWebSearchToolResultBlockParam\n | AnthropicWebSearchResultBlockParam\n | AnthropicSearchResultBlockParam\n | AnthropicCompactionBlockParam;\n\nexport function isAnthropicImageBlockParam(\n block: unknown\n): block is AnthropicImageBlockParam {\n if (block == null) {\n return false;\n }\n if (typeof block !== 'object') {\n return false;\n }\n if (!('type' in block) || block.type !== 'image') {\n return false;\n }\n\n if (!('source' in block) || typeof block.source !== 'object') {\n return false;\n }\n\n if (block.source == null) {\n return false;\n }\n\n if (!('type' in block.source)) {\n return false;\n }\n\n if (block.source.type === 'base64') {\n if (!('media_type' in block.source)) {\n return false;\n }\n\n if (typeof block.source.media_type !== 'string') {\n return false;\n }\n\n if (!('data' in block.source)) {\n return false;\n }\n\n if (typeof block.source.data !== 'string') {\n return false;\n }\n\n return true;\n }\n\n if (block.source.type === 'url') {\n if (!('url' in block.source)) {\n return false;\n }\n\n if (typeof block.source.url !== 'string') {\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n"],"mappings":";AAkGA,SAAgB,2BACd,OACmC;CACnC,IAAI,SAAS,MACX,OAAO;CAET,IAAI,OAAO,UAAU,UACnB,OAAO;CAET,IAAI,EAAE,UAAU,UAAU,MAAM,SAAS,SACvC,OAAO;CAGT,IAAI,EAAE,YAAY,UAAU,OAAO,MAAM,WAAW,UAClD,OAAO;CAGT,IAAI,MAAM,UAAU,MAClB,OAAO;CAGT,IAAI,EAAE,UAAU,MAAM,SACpB,OAAO;CAGT,IAAI,MAAM,OAAO,SAAS,UAAU;EAClC,IAAI,EAAE,gBAAgB,MAAM,SAC1B,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,eAAe,UACrC,OAAO;EAGT,IAAI,EAAE,UAAU,MAAM,SACpB,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,SAAS,UAC/B,OAAO;EAGT,OAAO;CACT;CAEA,IAAI,MAAM,OAAO,SAAS,OAAO;EAC/B,IAAI,EAAE,SAAS,MAAM,SACnB,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,QAAQ,UAC9B,OAAO;EAGT,OAAO;CACT;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"types.cjs","names":[],"sources":["../../../../src/llm/anthropic/types.ts"],"mappings":";AAkGA,SAAgB,2BACd,OACmC;CACnC,IAAI,SAAS,MACX,OAAO;CAET,IAAI,OAAO,UAAU,UACnB,OAAO;CAET,IAAI,EAAE,UAAU,UAAU,MAAM,SAAS,SACvC,OAAO;CAGT,IAAI,EAAE,YAAY,UAAU,OAAO,MAAM,WAAW,UAClD,OAAO;CAGT,IAAI,MAAM,UAAU,MAClB,OAAO;CAGT,IAAI,EAAE,UAAU,MAAM,SACpB,OAAO;CAGT,IAAI,MAAM,OAAO,SAAS,UAAU;EAClC,IAAI,EAAE,gBAAgB,MAAM,SAC1B,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,eAAe,UACrC,OAAO;EAGT,IAAI,EAAE,UAAU,MAAM,SACpB,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,SAAS,UAC/B,OAAO;EAGT,OAAO;CACT;CAEA,IAAI,MAAM,OAAO,SAAS,OAAO;EAC/B,IAAI,EAAE,SAAS,MAAM,SACnB,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,QAAQ,UAC9B,OAAO;EAGT,OAAO;CACT;CAEA,OAAO;AACT"}