@librechat/agents 3.2.31 → 3.2.33

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 (582) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/dist/cjs/agents/AgentContext.cjs +844 -1046
  3. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  4. package/dist/cjs/common/constants.cjs +13 -13
  5. package/dist/cjs/common/constants.cjs.map +1 -1
  6. package/dist/cjs/common/enum.cjs +233 -240
  7. package/dist/cjs/common/enum.cjs.map +1 -1
  8. package/dist/cjs/common/index.cjs +2 -0
  9. package/dist/cjs/events.cjs +121 -169
  10. package/dist/cjs/events.cjs.map +1 -1
  11. package/dist/cjs/graphs/Graph.cjs +1389 -1807
  12. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  13. package/dist/cjs/graphs/MultiAgentGraph.cjs +713 -945
  14. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  15. package/dist/cjs/graphs/index.cjs +2 -0
  16. package/dist/cjs/hitl/askUserQuestion.cjs +60 -62
  17. package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
  18. package/dist/cjs/hitl/index.cjs +1 -0
  19. package/dist/cjs/hooks/HookRegistry.cjs +176 -202
  20. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  21. package/dist/cjs/hooks/createToolPolicyHook.cjs +71 -101
  22. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  23. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +170 -273
  24. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  25. package/dist/cjs/hooks/executeHooks.cjs +227 -282
  26. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  27. package/dist/cjs/hooks/index.cjs +6 -0
  28. package/dist/cjs/hooks/matchers.cjs +196 -230
  29. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  30. package/dist/cjs/hooks/types.cjs +24 -24
  31. package/dist/cjs/hooks/types.cjs.map +1 -1
  32. package/dist/cjs/instrumentation.cjs +110 -137
  33. package/dist/cjs/instrumentation.cjs.map +1 -1
  34. package/dist/cjs/langchain/google-common.cjs +0 -3
  35. package/dist/cjs/langchain/index.cjs +80 -43
  36. package/dist/cjs/langchain/language_models/chat_models.cjs +0 -3
  37. package/dist/cjs/langchain/messages/tool.cjs +0 -3
  38. package/dist/cjs/langchain/messages.cjs +35 -18
  39. package/dist/cjs/langchain/openai.cjs +0 -3
  40. package/dist/cjs/langchain/prompts.cjs +5 -8
  41. package/dist/cjs/langchain/runnables.cjs +11 -10
  42. package/dist/cjs/langchain/tools.cjs +14 -11
  43. package/dist/cjs/langchain/utils/env.cjs +5 -8
  44. package/dist/cjs/langfuse.cjs +60 -79
  45. package/dist/cjs/langfuse.cjs.map +1 -1
  46. package/dist/cjs/langfuseToolOutputTracing.cjs +267 -399
  47. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  48. package/dist/cjs/llm/anthropic/index.cjs +432 -562
  49. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  50. package/dist/cjs/llm/anthropic/types.cjs +23 -47
  51. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  52. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +441 -696
  53. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  54. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +171 -252
  55. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  56. package/dist/cjs/llm/anthropic/utils/output_parsers.cjs +2 -0
  57. package/dist/cjs/llm/anthropic/utils/tools.cjs +12 -26
  58. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  59. package/dist/cjs/llm/bedrock/index.cjs +195 -240
  60. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  61. package/dist/cjs/llm/bedrock/toolCache.cjs +84 -106
  62. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  63. package/dist/cjs/llm/bedrock/utils/index.cjs +2 -0
  64. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +357 -620
  65. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  66. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +105 -149
  67. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
  68. package/dist/cjs/llm/fake.cjs +86 -96
  69. package/dist/cjs/llm/fake.cjs.map +1 -1
  70. package/dist/cjs/llm/google/index.cjs +183 -237
  71. package/dist/cjs/llm/google/index.cjs.map +1 -1
  72. package/dist/cjs/llm/google/utils/common.cjs +398 -674
  73. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  74. package/dist/cjs/llm/google/utils/zod_to_genai_parameters.cjs +2 -0
  75. package/dist/cjs/llm/init.cjs +44 -53
  76. package/dist/cjs/llm/init.cjs.map +1 -1
  77. package/dist/cjs/llm/invoke.cjs +142 -182
  78. package/dist/cjs/llm/invoke.cjs.map +1 -1
  79. package/dist/cjs/llm/openai/index.cjs +991 -1276
  80. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  81. package/dist/cjs/llm/openai/utils/index.cjs +189 -316
  82. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  83. package/dist/cjs/llm/openrouter/index.cjs +102 -153
  84. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  85. package/dist/cjs/llm/openrouter/toolCache.cjs +35 -44
  86. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  87. package/dist/cjs/llm/providers.cjs +29 -37
  88. package/dist/cjs/llm/providers.cjs.map +1 -1
  89. package/dist/cjs/llm/request.cjs +20 -33
  90. package/dist/cjs/llm/request.cjs.map +1 -1
  91. package/dist/cjs/llm/vertexai/index.cjs +427 -453
  92. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  93. package/dist/cjs/main.cjs +547 -528
  94. package/dist/cjs/messages/anthropicToolCache.cjs +68 -119
  95. package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
  96. package/dist/cjs/messages/cache.cjs +308 -401
  97. package/dist/cjs/messages/cache.cjs.map +1 -1
  98. package/dist/cjs/messages/content.cjs +36 -49
  99. package/dist/cjs/messages/content.cjs.map +1 -1
  100. package/dist/cjs/messages/contextPruning.cjs +112 -145
  101. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  102. package/dist/cjs/messages/contextPruningSettings.cjs +36 -46
  103. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
  104. package/dist/cjs/messages/core.cjs +256 -397
  105. package/dist/cjs/messages/core.cjs.map +1 -1
  106. package/dist/cjs/messages/format.cjs +904 -1382
  107. package/dist/cjs/messages/format.cjs.map +1 -1
  108. package/dist/cjs/messages/ids.cjs +16 -20
  109. package/dist/cjs/messages/ids.cjs.map +1 -1
  110. package/dist/cjs/messages/index.cjs +12 -0
  111. package/dist/cjs/messages/langchain.cjs +18 -18
  112. package/dist/cjs/messages/langchain.cjs.map +1 -1
  113. package/dist/cjs/messages/prune.cjs +1054 -1517
  114. package/dist/cjs/messages/prune.cjs.map +1 -1
  115. package/dist/cjs/messages/recency.cjs +77 -95
  116. package/dist/cjs/messages/recency.cjs.map +1 -1
  117. package/dist/cjs/messages/reducer.cjs +63 -78
  118. package/dist/cjs/messages/reducer.cjs.map +1 -1
  119. package/dist/cjs/messages/tools.cjs +51 -79
  120. package/dist/cjs/messages/tools.cjs.map +1 -1
  121. package/dist/cjs/openai/index.cjs +171 -217
  122. package/dist/cjs/openai/index.cjs.map +1 -1
  123. package/dist/cjs/responses/index.cjs +302 -391
  124. package/dist/cjs/responses/index.cjs.map +1 -1
  125. package/dist/cjs/run.cjs +903 -1113
  126. package/dist/cjs/run.cjs.map +1 -1
  127. package/dist/cjs/session/AgentSession.cjs +805 -986
  128. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  129. package/dist/cjs/session/JsonlSessionStore.cjs +327 -410
  130. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  131. package/dist/cjs/session/handlers.cjs +192 -208
  132. package/dist/cjs/session/handlers.cjs.map +1 -1
  133. package/dist/cjs/session/ids.cjs +9 -10
  134. package/dist/cjs/session/ids.cjs.map +1 -1
  135. package/dist/cjs/session/index.cjs +4 -0
  136. package/dist/cjs/session/messageSerialization.cjs +94 -156
  137. package/dist/cjs/session/messageSerialization.cjs.map +1 -1
  138. package/dist/cjs/splitStream.cjs +147 -206
  139. package/dist/cjs/splitStream.cjs.map +1 -1
  140. package/dist/cjs/stream.cjs +856 -1344
  141. package/dist/cjs/stream.cjs.map +1 -1
  142. package/dist/cjs/summarization/index.cjs +57 -101
  143. package/dist/cjs/summarization/index.cjs.map +1 -1
  144. package/dist/cjs/summarization/node.cjs +643 -796
  145. package/dist/cjs/summarization/node.cjs.map +1 -1
  146. package/dist/cjs/tools/BashExecutor.cjs +110 -136
  147. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  148. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +165 -245
  149. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  150. package/dist/cjs/tools/Calculator.cjs +36 -57
  151. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  152. package/dist/cjs/tools/CodeExecutor.cjs +126 -168
  153. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  154. package/dist/cjs/tools/CodeSessionFileSummary.cjs +36 -46
  155. package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
  156. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +459 -649
  157. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  158. package/dist/cjs/tools/ReadFile.cjs +17 -20
  159. package/dist/cjs/tools/ReadFile.cjs.map +1 -1
  160. package/dist/cjs/tools/SkillTool.cjs +26 -27
  161. package/dist/cjs/tools/SkillTool.cjs.map +1 -1
  162. package/dist/cjs/tools/SubagentTool.cjs +59 -61
  163. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  164. package/dist/cjs/tools/ToolNode.cjs +2109 -2686
  165. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  166. package/dist/cjs/tools/ToolSearch.cjs +663 -825
  167. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  168. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs +248 -340
  169. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
  170. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs +170 -197
  171. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
  172. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +425 -520
  173. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  174. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs +91 -124
  175. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  176. package/dist/cjs/tools/cloudflare/index.cjs +4 -0
  177. package/dist/cjs/tools/eagerEventExecution.cjs +75 -99
  178. package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
  179. package/dist/cjs/tools/handlers.cjs +200 -262
  180. package/dist/cjs/tools/handlers.cjs.map +1 -1
  181. package/dist/cjs/tools/local/CompileCheckTool.cjs +150 -212
  182. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  183. package/dist/cjs/tools/local/FileCheckpointer.cjs +77 -85
  184. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  185. package/dist/cjs/tools/local/LocalCodingTools.cjs +763 -1022
  186. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  187. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +666 -941
  188. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  189. package/dist/cjs/tools/local/LocalExecutionTools.cjs +49 -92
  190. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  191. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +286 -354
  192. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  193. package/dist/cjs/tools/local/attachments.cjs +108 -165
  194. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  195. package/dist/cjs/tools/local/bashAst.cjs +99 -113
  196. package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
  197. package/dist/cjs/tools/local/editStrategies.cjs +126 -169
  198. package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
  199. package/dist/cjs/tools/local/index.cjs +12 -0
  200. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +136 -218
  201. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  202. package/dist/cjs/tools/local/syntaxCheck.cjs +142 -161
  203. package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
  204. package/dist/cjs/tools/local/textEncoding.cjs +25 -23
  205. package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
  206. package/dist/cjs/tools/local/workspaceFS.cjs +38 -46
  207. package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
  208. package/dist/cjs/tools/ptcTimeout.cjs +27 -47
  209. package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
  210. package/dist/cjs/tools/schema.cjs +24 -23
  211. package/dist/cjs/tools/schema.cjs.map +1 -1
  212. package/dist/cjs/tools/search/anthropic.cjs +24 -33
  213. package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
  214. package/dist/cjs/tools/search/content.cjs +95 -137
  215. package/dist/cjs/tools/search/content.cjs.map +1 -1
  216. package/dist/cjs/tools/search/firecrawl.cjs +141 -172
  217. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  218. package/dist/cjs/tools/search/format.cjs +128 -196
  219. package/dist/cjs/tools/search/format.cjs.map +1 -1
  220. package/dist/cjs/tools/search/highlights.cjs +165 -232
  221. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  222. package/dist/cjs/tools/search/index.cjs +2 -0
  223. package/dist/cjs/tools/search/rerankers.cjs +151 -174
  224. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  225. package/dist/cjs/tools/search/schema.cjs +40 -39
  226. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  227. package/dist/cjs/tools/search/search.cjs +428 -530
  228. package/dist/cjs/tools/search/search.cjs.map +1 -1
  229. package/dist/cjs/tools/search/serper-scraper.cjs +106 -127
  230. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  231. package/dist/cjs/tools/search/tavily-scraper.cjs +129 -181
  232. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
  233. package/dist/cjs/tools/search/tavily-search.cjs +295 -359
  234. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  235. package/dist/cjs/tools/search/tool.cjs +260 -299
  236. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  237. package/dist/cjs/tools/search/utils.cjs +74 -117
  238. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  239. package/dist/cjs/tools/skillCatalog.cjs +54 -72
  240. package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
  241. package/dist/cjs/tools/streamedToolCallSeals.cjs +19 -36
  242. package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
  243. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +612 -771
  244. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  245. package/dist/cjs/tools/subagent/index.cjs +1 -0
  246. package/dist/cjs/tools/toolOutputReferences.cjs +523 -630
  247. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
  248. package/dist/cjs/utils/callbacks.cjs +11 -21
  249. package/dist/cjs/utils/callbacks.cjs.map +1 -1
  250. package/dist/cjs/utils/errors.cjs +70 -95
  251. package/dist/cjs/utils/errors.cjs.map +1 -1
  252. package/dist/cjs/utils/events.cjs +32 -42
  253. package/dist/cjs/utils/events.cjs.map +1 -1
  254. package/dist/cjs/utils/graph.cjs +8 -12
  255. package/dist/cjs/utils/graph.cjs.map +1 -1
  256. package/dist/cjs/utils/handlers.cjs +60 -82
  257. package/dist/cjs/utils/handlers.cjs.map +1 -1
  258. package/dist/cjs/utils/index.cjs +9 -0
  259. package/dist/cjs/utils/llm.cjs +19 -27
  260. package/dist/cjs/utils/llm.cjs.map +1 -1
  261. package/dist/cjs/utils/misc.cjs +30 -46
  262. package/dist/cjs/utils/misc.cjs.map +1 -1
  263. package/dist/cjs/utils/run.cjs +50 -66
  264. package/dist/cjs/utils/run.cjs.map +1 -1
  265. package/dist/cjs/utils/schema.cjs +11 -19
  266. package/dist/cjs/utils/schema.cjs.map +1 -1
  267. package/dist/cjs/utils/title.cjs +71 -106
  268. package/dist/cjs/utils/title.cjs.map +1 -1
  269. package/dist/cjs/utils/tokens.cjs +186 -283
  270. package/dist/cjs/utils/tokens.cjs.map +1 -1
  271. package/dist/cjs/utils/truncation.cjs +95 -114
  272. package/dist/cjs/utils/truncation.cjs.map +1 -1
  273. package/dist/esm/agents/AgentContext.mjs +844 -1044
  274. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  275. package/dist/esm/common/constants.mjs +13 -11
  276. package/dist/esm/common/constants.mjs.map +1 -1
  277. package/dist/esm/common/enum.mjs +221 -238
  278. package/dist/esm/common/enum.mjs.map +1 -1
  279. package/dist/esm/common/index.mjs +3 -0
  280. package/dist/esm/events.mjs +121 -167
  281. package/dist/esm/events.mjs.map +1 -1
  282. package/dist/esm/graphs/Graph.mjs +1388 -1804
  283. package/dist/esm/graphs/Graph.mjs.map +1 -1
  284. package/dist/esm/graphs/MultiAgentGraph.mjs +713 -943
  285. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  286. package/dist/esm/graphs/index.mjs +3 -0
  287. package/dist/esm/hitl/askUserQuestion.mjs +60 -60
  288. package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
  289. package/dist/esm/hitl/index.mjs +2 -0
  290. package/dist/esm/hooks/HookRegistry.mjs +176 -200
  291. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  292. package/dist/esm/hooks/createToolPolicyHook.mjs +71 -99
  293. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  294. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +170 -271
  295. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  296. package/dist/esm/hooks/executeHooks.mjs +227 -280
  297. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  298. package/dist/esm/hooks/index.mjs +7 -0
  299. package/dist/esm/hooks/matchers.mjs +196 -228
  300. package/dist/esm/hooks/matchers.mjs.map +1 -1
  301. package/dist/esm/hooks/types.mjs +24 -22
  302. package/dist/esm/hooks/types.mjs.map +1 -1
  303. package/dist/esm/instrumentation.mjs +109 -132
  304. package/dist/esm/instrumentation.mjs.map +1 -1
  305. package/dist/esm/langchain/google-common.mjs +1 -2
  306. package/dist/esm/langchain/index.mjs +5 -5
  307. package/dist/esm/langchain/language_models/chat_models.mjs +1 -2
  308. package/dist/esm/langchain/messages/tool.mjs +1 -2
  309. package/dist/esm/langchain/messages.mjs +2 -2
  310. package/dist/esm/langchain/openai.mjs +1 -2
  311. package/dist/esm/langchain/prompts.mjs +2 -2
  312. package/dist/esm/langchain/runnables.mjs +2 -2
  313. package/dist/esm/langchain/tools.mjs +2 -2
  314. package/dist/esm/langchain/utils/env.mjs +2 -2
  315. package/dist/esm/langfuse.mjs +60 -76
  316. package/dist/esm/langfuse.mjs.map +1 -1
  317. package/dist/esm/langfuseToolOutputTracing.mjs +267 -395
  318. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  319. package/dist/esm/llm/anthropic/index.mjs +432 -559
  320. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  321. package/dist/esm/llm/anthropic/types.mjs +23 -45
  322. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  323. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +439 -690
  324. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  325. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +171 -249
  326. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  327. package/dist/esm/llm/anthropic/utils/output_parsers.mjs +3 -0
  328. package/dist/esm/llm/anthropic/utils/tools.mjs +12 -24
  329. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  330. package/dist/esm/llm/bedrock/index.mjs +195 -238
  331. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  332. package/dist/esm/llm/bedrock/toolCache.mjs +84 -104
  333. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  334. package/dist/esm/llm/bedrock/utils/index.mjs +3 -0
  335. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +357 -618
  336. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  337. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +105 -147
  338. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
  339. package/dist/esm/llm/fake.mjs +86 -94
  340. package/dist/esm/llm/fake.mjs.map +1 -1
  341. package/dist/esm/llm/google/index.mjs +183 -235
  342. package/dist/esm/llm/google/index.mjs.map +1 -1
  343. package/dist/esm/llm/google/utils/common.mjs +397 -666
  344. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  345. package/dist/esm/llm/google/utils/zod_to_genai_parameters.mjs +3 -0
  346. package/dist/esm/llm/init.mjs +44 -51
  347. package/dist/esm/llm/init.mjs.map +1 -1
  348. package/dist/esm/llm/invoke.mjs +142 -180
  349. package/dist/esm/llm/invoke.mjs.map +1 -1
  350. package/dist/esm/llm/openai/index.mjs +991 -1271
  351. package/dist/esm/llm/openai/index.mjs.map +1 -1
  352. package/dist/esm/llm/openai/utils/index.mjs +188 -312
  353. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  354. package/dist/esm/llm/openrouter/index.mjs +102 -151
  355. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  356. package/dist/esm/llm/openrouter/toolCache.mjs +35 -42
  357. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  358. package/dist/esm/llm/providers.mjs +29 -34
  359. package/dist/esm/llm/providers.mjs.map +1 -1
  360. package/dist/esm/llm/request.mjs +20 -31
  361. package/dist/esm/llm/request.mjs.map +1 -1
  362. package/dist/esm/llm/vertexai/index.mjs +427 -449
  363. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  364. package/dist/esm/main.mjs +99 -87
  365. package/dist/esm/messages/anthropicToolCache.mjs +68 -117
  366. package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
  367. package/dist/esm/messages/cache.mjs +308 -399
  368. package/dist/esm/messages/cache.mjs.map +1 -1
  369. package/dist/esm/messages/content.mjs +36 -47
  370. package/dist/esm/messages/content.mjs.map +1 -1
  371. package/dist/esm/messages/contextPruning.mjs +112 -143
  372. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  373. package/dist/esm/messages/contextPruningSettings.mjs +36 -44
  374. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
  375. package/dist/esm/messages/core.mjs +254 -393
  376. package/dist/esm/messages/core.mjs.map +1 -1
  377. package/dist/esm/messages/format.mjs +902 -1378
  378. package/dist/esm/messages/format.mjs.map +1 -1
  379. package/dist/esm/messages/ids.mjs +16 -18
  380. package/dist/esm/messages/ids.mjs.map +1 -1
  381. package/dist/esm/messages/index.mjs +13 -0
  382. package/dist/esm/messages/langchain.mjs +18 -16
  383. package/dist/esm/messages/langchain.mjs.map +1 -1
  384. package/dist/esm/messages/prune.mjs +1053 -1514
  385. package/dist/esm/messages/prune.mjs.map +1 -1
  386. package/dist/esm/messages/recency.mjs +77 -93
  387. package/dist/esm/messages/recency.mjs.map +1 -1
  388. package/dist/esm/messages/reducer.mjs +63 -76
  389. package/dist/esm/messages/reducer.mjs.map +1 -1
  390. package/dist/esm/messages/tools.mjs +49 -75
  391. package/dist/esm/messages/tools.mjs.map +1 -1
  392. package/dist/esm/openai/index.mjs +170 -215
  393. package/dist/esm/openai/index.mjs.map +1 -1
  394. package/dist/esm/responses/index.mjs +301 -389
  395. package/dist/esm/responses/index.mjs.map +1 -1
  396. package/dist/esm/run.mjs +903 -1111
  397. package/dist/esm/run.mjs.map +1 -1
  398. package/dist/esm/session/AgentSession.mjs +806 -985
  399. package/dist/esm/session/AgentSession.mjs.map +1 -1
  400. package/dist/esm/session/JsonlSessionStore.mjs +326 -407
  401. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  402. package/dist/esm/session/handlers.mjs +192 -206
  403. package/dist/esm/session/handlers.mjs.map +1 -1
  404. package/dist/esm/session/ids.mjs +9 -8
  405. package/dist/esm/session/ids.mjs.map +1 -1
  406. package/dist/esm/session/index.mjs +5 -0
  407. package/dist/esm/session/messageSerialization.mjs +94 -154
  408. package/dist/esm/session/messageSerialization.mjs.map +1 -1
  409. package/dist/esm/splitStream.mjs +147 -204
  410. package/dist/esm/splitStream.mjs.map +1 -1
  411. package/dist/esm/stream.mjs +854 -1341
  412. package/dist/esm/stream.mjs.map +1 -1
  413. package/dist/esm/summarization/index.mjs +57 -99
  414. package/dist/esm/summarization/index.mjs.map +1 -1
  415. package/dist/esm/summarization/node.mjs +640 -790
  416. package/dist/esm/summarization/node.mjs.map +1 -1
  417. package/dist/esm/tools/BashExecutor.mjs +103 -129
  418. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  419. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +162 -239
  420. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  421. package/dist/esm/tools/Calculator.mjs +34 -36
  422. package/dist/esm/tools/Calculator.mjs.map +1 -1
  423. package/dist/esm/tools/CodeExecutor.mjs +123 -164
  424. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  425. package/dist/esm/tools/CodeSessionFileSummary.mjs +36 -44
  426. package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
  427. package/dist/esm/tools/ProgrammaticToolCalling.mjs +454 -644
  428. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  429. package/dist/esm/tools/ReadFile.mjs +17 -18
  430. package/dist/esm/tools/ReadFile.mjs.map +1 -1
  431. package/dist/esm/tools/SkillTool.mjs +26 -25
  432. package/dist/esm/tools/SkillTool.mjs.map +1 -1
  433. package/dist/esm/tools/SubagentTool.mjs +59 -59
  434. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  435. package/dist/esm/tools/ToolNode.mjs +2107 -2684
  436. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  437. package/dist/esm/tools/ToolSearch.mjs +659 -804
  438. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  439. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs +248 -338
  440. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
  441. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs +170 -195
  442. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
  443. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +424 -517
  444. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  445. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs +91 -122
  446. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  447. package/dist/esm/tools/cloudflare/index.mjs +5 -0
  448. package/dist/esm/tools/eagerEventExecution.mjs +75 -96
  449. package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
  450. package/dist/esm/tools/handlers.mjs +200 -260
  451. package/dist/esm/tools/handlers.mjs.map +1 -1
  452. package/dist/esm/tools/local/CompileCheckTool.mjs +150 -210
  453. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  454. package/dist/esm/tools/local/FileCheckpointer.mjs +77 -83
  455. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  456. package/dist/esm/tools/local/LocalCodingTools.mjs +760 -1017
  457. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  458. package/dist/esm/tools/local/LocalExecutionEngine.mjs +663 -936
  459. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  460. package/dist/esm/tools/local/LocalExecutionTools.mjs +49 -90
  461. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  462. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +283 -349
  463. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  464. package/dist/esm/tools/local/attachments.mjs +108 -163
  465. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  466. package/dist/esm/tools/local/bashAst.mjs +99 -111
  467. package/dist/esm/tools/local/bashAst.mjs.map +1 -1
  468. package/dist/esm/tools/local/editStrategies.mjs +126 -167
  469. package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
  470. package/dist/esm/tools/local/index.mjs +13 -0
  471. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +136 -216
  472. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  473. package/dist/esm/tools/local/syntaxCheck.mjs +138 -155
  474. package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
  475. package/dist/esm/tools/local/textEncoding.mjs +25 -21
  476. package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
  477. package/dist/esm/tools/local/workspaceFS.mjs +38 -44
  478. package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
  479. package/dist/esm/tools/ptcTimeout.mjs +27 -42
  480. package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
  481. package/dist/esm/tools/schema.mjs +24 -21
  482. package/dist/esm/tools/schema.mjs.map +1 -1
  483. package/dist/esm/tools/search/anthropic.mjs +24 -31
  484. package/dist/esm/tools/search/anthropic.mjs.map +1 -1
  485. package/dist/esm/tools/search/content.mjs +93 -116
  486. package/dist/esm/tools/search/content.mjs.map +1 -1
  487. package/dist/esm/tools/search/firecrawl.mjs +139 -169
  488. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  489. package/dist/esm/tools/search/format.mjs +128 -194
  490. package/dist/esm/tools/search/format.mjs.map +1 -1
  491. package/dist/esm/tools/search/highlights.mjs +165 -230
  492. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  493. package/dist/esm/tools/search/index.mjs +3 -0
  494. package/dist/esm/tools/search/rerankers.mjs +149 -168
  495. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  496. package/dist/esm/tools/search/schema.mjs +39 -37
  497. package/dist/esm/tools/search/schema.mjs.map +1 -1
  498. package/dist/esm/tools/search/search.mjs +426 -528
  499. package/dist/esm/tools/search/search.mjs.map +1 -1
  500. package/dist/esm/tools/search/serper-scraper.mjs +104 -124
  501. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  502. package/dist/esm/tools/search/tavily-scraper.mjs +127 -178
  503. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
  504. package/dist/esm/tools/search/tavily-search.mjs +293 -357
  505. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  506. package/dist/esm/tools/search/tool.mjs +259 -297
  507. package/dist/esm/tools/search/tool.mjs.map +1 -1
  508. package/dist/esm/tools/search/utils.mjs +74 -115
  509. package/dist/esm/tools/search/utils.mjs.map +1 -1
  510. package/dist/esm/tools/skillCatalog.mjs +54 -70
  511. package/dist/esm/tools/skillCatalog.mjs.map +1 -1
  512. package/dist/esm/tools/streamedToolCallSeals.mjs +19 -31
  513. package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
  514. package/dist/esm/tools/subagent/SubagentExecutor.mjs +612 -768
  515. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  516. package/dist/esm/tools/subagent/index.mjs +2 -0
  517. package/dist/esm/tools/toolOutputReferences.mjs +523 -624
  518. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
  519. package/dist/esm/utils/callbacks.mjs +11 -19
  520. package/dist/esm/utils/callbacks.mjs.map +1 -1
  521. package/dist/esm/utils/errors.mjs +70 -93
  522. package/dist/esm/utils/errors.mjs.map +1 -1
  523. package/dist/esm/utils/events.mjs +32 -40
  524. package/dist/esm/utils/events.mjs.map +1 -1
  525. package/dist/esm/utils/graph.mjs +8 -10
  526. package/dist/esm/utils/graph.mjs.map +1 -1
  527. package/dist/esm/utils/handlers.mjs +60 -80
  528. package/dist/esm/utils/handlers.mjs.map +1 -1
  529. package/dist/esm/utils/index.mjs +10 -0
  530. package/dist/esm/utils/llm.mjs +19 -25
  531. package/dist/esm/utils/llm.mjs.map +1 -1
  532. package/dist/esm/utils/misc.mjs +30 -44
  533. package/dist/esm/utils/misc.mjs.map +1 -1
  534. package/dist/esm/utils/run.mjs +50 -64
  535. package/dist/esm/utils/run.mjs.map +1 -1
  536. package/dist/esm/utils/schema.mjs +11 -17
  537. package/dist/esm/utils/schema.mjs.map +1 -1
  538. package/dist/esm/utils/title.mjs +71 -104
  539. package/dist/esm/utils/title.mjs.map +1 -1
  540. package/dist/esm/utils/tokens.mjs +186 -281
  541. package/dist/esm/utils/tokens.mjs.map +1 -1
  542. package/dist/esm/utils/truncation.mjs +95 -112
  543. package/dist/esm/utils/truncation.mjs.map +1 -1
  544. package/dist/types/messages/format.d.ts +5 -0
  545. package/dist/types/tools/search/tool.d.ts +17 -0
  546. package/dist/types/tools/search/types.d.ts +4 -0
  547. package/package.json +11 -17
  548. package/src/llm/anthropic/llm.spec.ts +36 -0
  549. package/src/llm/anthropic/utils/message_inputs.ts +45 -3
  550. package/src/llm/anthropic/utils/message_outputs.ts +6 -2
  551. package/src/llm/anthropic/utils/streaming-tool-input.test.ts +186 -0
  552. package/src/messages/cache.test.ts +122 -0
  553. package/src/messages/cache.ts +25 -1
  554. package/src/messages/format.ts +9 -0
  555. package/src/messages/formatAgentMessages.skills.test.ts +100 -0
  556. package/src/tools/search/highlights.ts +9 -1
  557. package/src/tools/search/search.ts +41 -3
  558. package/src/tools/search/source-processing.test.ts +373 -0
  559. package/src/tools/search/tool.ts +22 -2
  560. package/src/tools/search/types.ts +4 -0
  561. package/dist/cjs/langchain/google-common.cjs.map +0 -1
  562. package/dist/cjs/langchain/index.cjs.map +0 -1
  563. package/dist/cjs/langchain/language_models/chat_models.cjs.map +0 -1
  564. package/dist/cjs/langchain/messages/tool.cjs.map +0 -1
  565. package/dist/cjs/langchain/messages.cjs.map +0 -1
  566. package/dist/cjs/langchain/openai.cjs.map +0 -1
  567. package/dist/cjs/langchain/prompts.cjs.map +0 -1
  568. package/dist/cjs/langchain/runnables.cjs.map +0 -1
  569. package/dist/cjs/langchain/tools.cjs.map +0 -1
  570. package/dist/cjs/langchain/utils/env.cjs.map +0 -1
  571. package/dist/cjs/main.cjs.map +0 -1
  572. package/dist/esm/langchain/google-common.mjs.map +0 -1
  573. package/dist/esm/langchain/index.mjs.map +0 -1
  574. package/dist/esm/langchain/language_models/chat_models.mjs.map +0 -1
  575. package/dist/esm/langchain/messages/tool.mjs.map +0 -1
  576. package/dist/esm/langchain/messages.mjs.map +0 -1
  577. package/dist/esm/langchain/openai.mjs.map +0 -1
  578. package/dist/esm/langchain/prompts.mjs.map +0 -1
  579. package/dist/esm/langchain/runnables.mjs.map +0 -1
  580. package/dist/esm/langchain/tools.mjs.map +0 -1
  581. package/dist/esm/langchain/utils/env.mjs.map +0 -1
  582. package/dist/esm/main.mjs.map +0 -1
@@ -1,476 +1,344 @@
1
- 'use strict';
2
-
3
- var node_async_hooks = require('node:async_hooks');
4
- var otel = require('@langfuse/otel');
5
- var api = require('@opentelemetry/api');
6
- var tracing = require('@langfuse/tracing');
7
-
8
- const LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT = '[tool output redacted]';
9
- const langfuseToolOutputTracingConfigKey = api.createContextKey('librechat.langfuse.tool-output-tracing');
10
- const langfuseConfigKey = api.createContextKey('librechat.langfuse.config');
1
+ let _langfuse_tracing = require("@langfuse/tracing");
2
+ let node_async_hooks = require("node:async_hooks");
3
+ let _langfuse_otel = require("@langfuse/otel");
4
+ let _opentelemetry_api = require("@opentelemetry/api");
5
+ const langfuseToolOutputTracingConfigKey = (0, _opentelemetry_api.createContextKey)("librechat.langfuse.tool-output-tracing");
6
+ const langfuseConfigKey = (0, _opentelemetry_api.createContextKey)("librechat.langfuse.config");
11
7
  const toolOutputTracingStorage = new node_async_hooks.AsyncLocalStorage();
12
8
  const langfuseConfigStorage = new node_async_hooks.AsyncLocalStorage();
13
- const LANGGRAPH_TOOL_NODE_PREFIX = 'tools=';
9
+ const LANGGRAPH_TOOL_NODE_PREFIX = "tools=";
14
10
  const CHAT_ROLES = new Set([
15
- 'assistant',
16
- 'developer',
17
- 'human',
18
- 'system',
19
- 'user',
11
+ "assistant",
12
+ "developer",
13
+ "human",
14
+ "system",
15
+ "user"
20
16
  ]);
21
- const TOOL_OUTPUT_FIELD_KEYS = ['content', 'artifact'];
17
+ const TOOL_OUTPUT_FIELD_KEYS = ["content", "artifact"];
22
18
  function isRecord(value) {
23
- return value != null && typeof value === 'object' && !Array.isArray(value);
19
+ return value != null && typeof value === "object" && !Array.isArray(value);
24
20
  }
25
21
  function isPresent(value) {
26
- return typeof value === 'string' && value.trim() !== '';
22
+ return typeof value === "string" && value.trim() !== "";
27
23
  }
28
24
  function parseBoolean(value) {
29
- if (value == null) {
30
- return undefined;
31
- }
32
- const normalized = value.trim().toLowerCase();
33
- if (['1', 'true', 'yes', 'on'].includes(normalized)) {
34
- return true;
35
- }
36
- if (['0', 'false', 'no', 'off'].includes(normalized)) {
37
- return false;
38
- }
39
- return undefined;
25
+ if (value == null) return;
26
+ const normalized = value.trim().toLowerCase();
27
+ if ([
28
+ "1",
29
+ "true",
30
+ "yes",
31
+ "on"
32
+ ].includes(normalized)) return true;
33
+ if ([
34
+ "0",
35
+ "false",
36
+ "no",
37
+ "off"
38
+ ].includes(normalized)) return false;
40
39
  }
41
40
  function normalizeToolName(name) {
42
- return name.trim().toLowerCase();
41
+ return name.trim().toLowerCase();
43
42
  }
44
43
  function normalizeToolNames(names) {
45
- const normalized = new Set();
46
- for (const name of names ?? []) {
47
- if (isPresent(name)) {
48
- normalized.add(normalizeToolName(name));
49
- }
50
- }
51
- return normalized;
44
+ const normalized = /* @__PURE__ */ new Set();
45
+ for (const name of names ?? []) if (isPresent(name)) normalized.add(normalizeToolName(name));
46
+ return normalized;
52
47
  }
53
48
  function parseToolNames(value) {
54
- if (!isPresent(value)) {
55
- return undefined;
56
- }
57
- return value
58
- .split(',')
59
- .map((name) => name.trim())
60
- .filter((name) => name !== '');
49
+ if (!isPresent(value)) return;
50
+ return value.split(",").map((name) => name.trim()).filter((name) => name !== "");
61
51
  }
62
52
  function getEnvToolOutputTracingEnabled() {
63
- const traceToolOutputs = parseBoolean(process.env.LANGFUSE_TRACE_TOOL_OUTPUTS);
64
- if (traceToolOutputs != null) {
65
- return traceToolOutputs;
66
- }
67
- const redactToolOutputs = parseBoolean(process.env.LANGFUSE_REDACT_TOOL_OUTPUTS);
68
- if (redactToolOutputs != null) {
69
- return !redactToolOutputs;
70
- }
71
- return parseBoolean(process.env.LANGFUSE_TOOL_OUTPUT_TRACING_ENABLED);
53
+ const traceToolOutputs = parseBoolean(process.env.LANGFUSE_TRACE_TOOL_OUTPUTS);
54
+ if (traceToolOutputs != null) return traceToolOutputs;
55
+ const redactToolOutputs = parseBoolean(process.env.LANGFUSE_REDACT_TOOL_OUTPUTS);
56
+ if (redactToolOutputs != null) return !redactToolOutputs;
57
+ return parseBoolean(process.env.LANGFUSE_TOOL_OUTPUT_TRACING_ENABLED);
72
58
  }
73
59
  function getEnvRedactedToolNames() {
74
- return (parseToolNames(process.env.LANGFUSE_REDACT_TOOL_OUTPUT_NAMES) ??
75
- parseToolNames(process.env.LANGFUSE_REDACT_TOOL_NAMES));
60
+ return parseToolNames(process.env.LANGFUSE_REDACT_TOOL_OUTPUT_NAMES) ?? parseToolNames(process.env.LANGFUSE_REDACT_TOOL_NAMES);
76
61
  }
77
62
  function getEnvRedactionText() {
78
- return isPresent(process.env.LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT)
79
- ? process.env.LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT
80
- : undefined;
63
+ return isPresent(process.env.LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT) ? process.env.LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT : void 0;
81
64
  }
82
65
  function getEnvToolNameMatchMode() {
83
- const mode = (process.env.LANGFUSE_REDACT_TOOL_OUTPUT_NAME_MATCH_MODE ??
84
- process.env.LANGFUSE_REDACT_TOOL_NAME_MATCH_MODE)
85
- ?.trim()
86
- .toLowerCase();
87
- if (mode === 'exact' || mode === 'partial') {
88
- return mode;
89
- }
90
- return undefined;
66
+ const mode = (process.env.LANGFUSE_REDACT_TOOL_OUTPUT_NAME_MATCH_MODE ?? process.env.LANGFUSE_REDACT_TOOL_NAME_MATCH_MODE)?.trim().toLowerCase();
67
+ if (mode === "exact" || mode === "partial") return mode;
91
68
  }
92
69
  function resolveToolOutputTracingConfig(runLangfuse, agentLangfuse) {
93
- const runConfig = runLangfuse?.toolOutputTracing;
94
- const agentConfig = agentLangfuse?.toolOutputTracing;
95
- return {
96
- enabled: agentConfig?.enabled ??
97
- runConfig?.enabled ??
98
- getEnvToolOutputTracingEnabled() ??
99
- true,
100
- redactedToolNames: normalizeToolNames(agentConfig?.redactedToolNames ??
101
- runConfig?.redactedToolNames ??
102
- getEnvRedactedToolNames()),
103
- redactedToolNameMatchMode: agentConfig?.redactedToolNameMatchMode ??
104
- runConfig?.redactedToolNameMatchMode ??
105
- getEnvToolNameMatchMode() ??
106
- 'exact',
107
- redactionText: agentConfig?.redactionText ??
108
- runConfig?.redactionText ??
109
- getEnvRedactionText() ??
110
- LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT,
111
- };
70
+ const runConfig = runLangfuse?.toolOutputTracing;
71
+ const agentConfig = agentLangfuse?.toolOutputTracing;
72
+ return {
73
+ enabled: agentConfig?.enabled ?? runConfig?.enabled ?? getEnvToolOutputTracingEnabled() ?? true,
74
+ redactedToolNames: normalizeToolNames(agentConfig?.redactedToolNames ?? runConfig?.redactedToolNames ?? getEnvRedactedToolNames()),
75
+ redactedToolNameMatchMode: agentConfig?.redactedToolNameMatchMode ?? runConfig?.redactedToolNameMatchMode ?? getEnvToolNameMatchMode() ?? "exact",
76
+ redactionText: agentConfig?.redactionText ?? runConfig?.redactionText ?? getEnvRedactionText() ?? "[tool output redacted]"
77
+ };
112
78
  }
113
79
  function shouldApplyToolOutputRedaction(config) {
114
- return config.enabled === false || config.redactedToolNames.size > 0;
80
+ return config.enabled === false || config.redactedToolNames.size > 0;
115
81
  }
116
82
  function toolNameMatches(toolName, config) {
117
- if (!isPresent(toolName)) {
118
- return false;
119
- }
120
- const normalizedToolName = normalizeToolName(toolName);
121
- if (config.redactedToolNameMatchMode === 'partial') {
122
- for (const redactedToolName of config.redactedToolNames) {
123
- if (normalizedToolName.includes(redactedToolName)) {
124
- return true;
125
- }
126
- }
127
- return false;
128
- }
129
- return config.redactedToolNames.has(normalizedToolName);
83
+ if (!isPresent(toolName)) return false;
84
+ const normalizedToolName = normalizeToolName(toolName);
85
+ if (config.redactedToolNameMatchMode === "partial") {
86
+ for (const redactedToolName of config.redactedToolNames) if (normalizedToolName.includes(redactedToolName)) return true;
87
+ return false;
88
+ }
89
+ return config.redactedToolNames.has(normalizedToolName);
130
90
  }
131
91
  function shouldRedactTool(toolName, config) {
132
- return config.enabled === false || toolNameMatches(toolName, config);
92
+ return config.enabled === false || toolNameMatches(toolName, config);
133
93
  }
134
94
  function getStringField(value, key) {
135
- const field = value[key];
136
- return typeof field === 'string' ? field : undefined;
95
+ const field = value[key];
96
+ return typeof field === "string" ? field : void 0;
137
97
  }
138
98
  function getNestedStringField(value, objectKey, fieldKey) {
139
- const nested = value[objectKey];
140
- if (!isRecord(nested)) {
141
- return undefined;
142
- }
143
- return getStringField(nested, fieldKey);
99
+ const nested = value[objectKey];
100
+ if (!isRecord(nested)) return;
101
+ return getStringField(nested, fieldKey);
144
102
  }
145
103
  function getSerializedToolCallId(value) {
146
- return (getStringField(value, 'tool_call_id') ??
147
- getNestedStringField(value, 'kwargs', 'tool_call_id') ??
148
- getNestedStringField(value, 'additional_kwargs', 'tool_call_id') ??
149
- getNestedStringField(value, 'data', 'tool_call_id') ??
150
- (typeof value.id === 'string' ? value.id : undefined));
104
+ return getStringField(value, "tool_call_id") ?? getNestedStringField(value, "kwargs", "tool_call_id") ?? getNestedStringField(value, "additional_kwargs", "tool_call_id") ?? getNestedStringField(value, "data", "tool_call_id") ?? (typeof value.id === "string" ? value.id : void 0);
151
105
  }
152
106
  function getSerializedToolName(value, redactionContext) {
153
- const role = getStringField(value, 'role');
154
- const explicitName = getStringField(value, 'name') ??
155
- getStringField(value, 'tool_name') ??
156
- getNestedStringField(value, 'function', 'name') ??
157
- getNestedStringField(value, 'kwargs', 'name') ??
158
- getNestedStringField(value, 'additional_kwargs', 'name') ??
159
- getNestedStringField(value, 'data', 'name') ??
160
- (role != null && role.toLowerCase() !== 'tool' ? role : undefined);
161
- if (explicitName != null) {
162
- return explicitName;
163
- }
164
- const toolCallId = getSerializedToolCallId(value);
165
- return toolCallId != null
166
- ? redactionContext?.toolNamesByCallId.get(toolCallId)
167
- : undefined;
107
+ const role = getStringField(value, "role");
108
+ const explicitName = getStringField(value, "name") ?? getStringField(value, "tool_name") ?? getNestedStringField(value, "function", "name") ?? getNestedStringField(value, "kwargs", "name") ?? getNestedStringField(value, "additional_kwargs", "name") ?? getNestedStringField(value, "data", "name") ?? (role != null && role.toLowerCase() !== "tool" ? role : void 0);
109
+ if (explicitName != null) return explicitName;
110
+ const toolCallId = getSerializedToolCallId(value);
111
+ return toolCallId != null ? redactionContext?.toolNamesByCallId.get(toolCallId) : void 0;
168
112
  }
169
113
  function hasToolMessageIdentity(value) {
170
- const type = getStringField(value, 'type') ?? getStringField(value, '_type');
171
- if (type === 'tool' || type === 'tool_message') {
172
- return true;
173
- }
174
- const id = value.id;
175
- if (Array.isArray(id) &&
176
- id.some((part) => typeof part === 'string' && part.includes('ToolMessage'))) {
177
- return true;
178
- }
179
- if ('tool_call_id' in value ||
180
- getNestedStringField(value, 'kwargs', 'tool_call_id') != null ||
181
- getNestedStringField(value, 'additional_kwargs', 'tool_call_id') != null) {
182
- return true;
183
- }
184
- const role = getStringField(value, 'role');
185
- return (role != null &&
186
- !CHAT_ROLES.has(role.toLowerCase()) &&
187
- ('content' in value || isRecord(value.kwargs) || isRecord(value.data)));
114
+ const type = getStringField(value, "type") ?? getStringField(value, "_type");
115
+ if (type === "tool" || type === "tool_message") return true;
116
+ const id = value.id;
117
+ if (Array.isArray(id) && id.some((part) => typeof part === "string" && part.includes("ToolMessage"))) return true;
118
+ if ("tool_call_id" in value || getNestedStringField(value, "kwargs", "tool_call_id") != null || getNestedStringField(value, "additional_kwargs", "tool_call_id") != null) return true;
119
+ const role = getStringField(value, "role");
120
+ return role != null && !CHAT_ROLES.has(role.toLowerCase()) && ("content" in value || isRecord(value.kwargs) || isRecord(value.data));
188
121
  }
189
122
  function redactToolContentFields(value, config) {
190
- const next = { ...value };
191
- for (const outputKey of TOOL_OUTPUT_FIELD_KEYS) {
192
- if (outputKey in next) {
193
- next[outputKey] = config.redactionText;
194
- }
195
- }
196
- for (const nestedKey of ['kwargs', 'data', 'additional_kwargs']) {
197
- const nested = next[nestedKey];
198
- if (!isRecord(nested)) {
199
- continue;
200
- }
201
- const nextNested = { ...nested };
202
- let changed = false;
203
- for (const outputKey of TOOL_OUTPUT_FIELD_KEYS) {
204
- if (outputKey in nextNested) {
205
- nextNested[outputKey] = config.redactionText;
206
- changed = true;
207
- }
208
- }
209
- if (changed) {
210
- next[nestedKey] = nextNested;
211
- }
212
- }
213
- return next;
123
+ const next = { ...value };
124
+ for (const outputKey of TOOL_OUTPUT_FIELD_KEYS) if (outputKey in next) next[outputKey] = config.redactionText;
125
+ for (const nestedKey of [
126
+ "kwargs",
127
+ "data",
128
+ "additional_kwargs"
129
+ ]) {
130
+ const nested = next[nestedKey];
131
+ if (!isRecord(nested)) continue;
132
+ const nextNested = { ...nested };
133
+ let changed = false;
134
+ for (const outputKey of TOOL_OUTPUT_FIELD_KEYS) if (outputKey in nextNested) {
135
+ nextNested[outputKey] = config.redactionText;
136
+ changed = true;
137
+ }
138
+ if (changed) next[nestedKey] = nextNested;
139
+ }
140
+ return next;
214
141
  }
215
142
  function collectToolCallNames(value, redactionContext) {
216
- if (Array.isArray(value)) {
217
- for (const item of value) {
218
- collectToolCallNames(item, redactionContext);
219
- }
220
- return;
221
- }
222
- if (!isRecord(value)) {
223
- return;
224
- }
225
- const toolCallId = getSerializedToolCallId(value);
226
- const toolName = getSerializedToolName(value);
227
- if (toolCallId != null && toolName != null) {
228
- redactionContext.toolNamesByCallId.set(toolCallId, toolName);
229
- }
230
- for (const child of Object.values(value)) {
231
- collectToolCallNames(child, redactionContext);
232
- }
143
+ if (Array.isArray(value)) {
144
+ for (const item of value) collectToolCallNames(item, redactionContext);
145
+ return;
146
+ }
147
+ if (!isRecord(value)) return;
148
+ const toolCallId = getSerializedToolCallId(value);
149
+ const toolName = getSerializedToolName(value);
150
+ if (toolCallId != null && toolName != null) redactionContext.toolNamesByCallId.set(toolCallId, toolName);
151
+ for (const child of Object.values(value)) collectToolCallNames(child, redactionContext);
233
152
  }
234
153
  function redactValue(value, config, redactionContext) {
235
- if (Array.isArray(value)) {
236
- let changed = false;
237
- const next = [];
238
- for (const item of value) {
239
- const result = redactValue(item, config, redactionContext);
240
- if (result.changed) {
241
- changed = true;
242
- }
243
- next.push(result.value);
244
- }
245
- return changed ? { value: next, changed } : { value, changed };
246
- }
247
- if (!isRecord(value)) {
248
- return { value, changed: false };
249
- }
250
- const toolName = getSerializedToolName(value, redactionContext);
251
- if (hasToolMessageIdentity(value) && shouldRedactTool(toolName, config)) {
252
- return {
253
- value: redactToolContentFields(value, config),
254
- changed: true,
255
- };
256
- }
257
- let changed = false;
258
- const next = {};
259
- for (const [key, child] of Object.entries(value)) {
260
- const result = redactValue(child, config, redactionContext);
261
- if (result.changed) {
262
- changed = true;
263
- }
264
- next[key] = result.value;
265
- }
266
- return changed ? { value: next, changed } : { value, changed };
154
+ if (Array.isArray(value)) {
155
+ let changed = false;
156
+ const next = [];
157
+ for (const item of value) {
158
+ const result = redactValue(item, config, redactionContext);
159
+ if (result.changed) changed = true;
160
+ next.push(result.value);
161
+ }
162
+ return changed ? {
163
+ value: next,
164
+ changed
165
+ } : {
166
+ value,
167
+ changed
168
+ };
169
+ }
170
+ if (!isRecord(value)) return {
171
+ value,
172
+ changed: false
173
+ };
174
+ const toolName = getSerializedToolName(value, redactionContext);
175
+ if (hasToolMessageIdentity(value) && shouldRedactTool(toolName, config)) return {
176
+ value: redactToolContentFields(value, config),
177
+ changed: true
178
+ };
179
+ let changed = false;
180
+ const next = {};
181
+ for (const [key, child] of Object.entries(value)) {
182
+ const result = redactValue(child, config, redactionContext);
183
+ if (result.changed) changed = true;
184
+ next[key] = result.value;
185
+ }
186
+ return changed ? {
187
+ value: next,
188
+ changed
189
+ } : {
190
+ value,
191
+ changed
192
+ };
267
193
  }
268
194
  function redactSerializedValue(value, config) {
269
- const redactionContext = {
270
- toolNamesByCallId: new Map(),
271
- };
272
- if (typeof value !== 'string') {
273
- collectToolCallNames(value, redactionContext);
274
- return redactValue(value, config, redactionContext);
275
- }
276
- const trimmed = value.trim();
277
- if (!trimmed.startsWith('{') && !trimmed.startsWith('[')) {
278
- return { value, changed: false };
279
- }
280
- try {
281
- const parsed = JSON.parse(value);
282
- collectToolCallNames(parsed, redactionContext);
283
- const result = redactValue(parsed, config, redactionContext);
284
- return result.changed
285
- ? { value: JSON.stringify(result.value), changed: true }
286
- : { value, changed: false };
287
- }
288
- catch {
289
- return { value, changed: false };
290
- }
195
+ const redactionContext = { toolNamesByCallId: /* @__PURE__ */ new Map() };
196
+ if (typeof value !== "string") {
197
+ collectToolCallNames(value, redactionContext);
198
+ return redactValue(value, config, redactionContext);
199
+ }
200
+ const trimmed = value.trim();
201
+ if (!trimmed.startsWith("{") && !trimmed.startsWith("[")) return {
202
+ value,
203
+ changed: false
204
+ };
205
+ try {
206
+ const parsed = JSON.parse(value);
207
+ collectToolCallNames(parsed, redactionContext);
208
+ const result = redactValue(parsed, config, redactionContext);
209
+ return result.changed ? {
210
+ value: JSON.stringify(result.value),
211
+ changed: true
212
+ } : {
213
+ value,
214
+ changed: false
215
+ };
216
+ } catch {
217
+ return {
218
+ value,
219
+ changed: false
220
+ };
221
+ }
291
222
  }
292
223
  function redactAttribute(attributes, key, config) {
293
- if (!(key in attributes)) {
294
- return;
295
- }
296
- const result = redactSerializedValue(attributes[key], config);
297
- if (result.changed) {
298
- attributes[key] = result.value;
299
- }
224
+ if (!(key in attributes)) return;
225
+ const result = redactSerializedValue(attributes[key], config);
226
+ if (result.changed) attributes[key] = result.value;
300
227
  }
301
228
  function isToolObservation(attributes) {
302
- const type = attributes[tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE];
303
- return typeof type === 'string' && type.toLowerCase() === 'tool';
229
+ const type = attributes[_langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE];
230
+ return typeof type === "string" && type.toLowerCase() === "tool";
304
231
  }
305
232
  function classifyLangGraphToolNodeSpan(attributes) {
306
- const type = attributes[tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE];
307
- if (typeof type !== 'string' || type.toLowerCase() !== 'span') {
308
- return;
309
- }
310
- const langGraphNode = attributes[`${tracing.LangfuseOtelSpanAttributes.OBSERVATION_METADATA}.langgraph_node`];
311
- if (typeof langGraphNode === 'string' &&
312
- langGraphNode.startsWith(LANGGRAPH_TOOL_NODE_PREFIX)) {
313
- attributes[tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE] = 'tool';
314
- }
233
+ const type = attributes[_langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE];
234
+ if (typeof type !== "string" || type.toLowerCase() !== "span") return;
235
+ const langGraphNode = attributes[`${_langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_METADATA}.langgraph_node`];
236
+ if (typeof langGraphNode === "string" && langGraphNode.startsWith(LANGGRAPH_TOOL_NODE_PREFIX)) attributes[_langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_TYPE] = "tool";
315
237
  }
316
238
  function redactToolObservationOutput(span, attributes, config) {
317
- if (!(isToolObservation(attributes) &&
318
- shouldRedactTool(span.name, config) &&
319
- tracing.LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT in attributes)) {
320
- return;
321
- }
322
- attributes[tracing.LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT] =
323
- config.redactionText;
239
+ if (!(isToolObservation(attributes) && shouldRedactTool(span.name, config) && _langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT in attributes)) return;
240
+ attributes[_langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT] = config.redactionText;
324
241
  }
325
242
  function redactLangfuseSpanToolOutputs(span, config) {
326
- const attributes = span.attributes;
327
- classifyLangGraphToolNodeSpan(attributes);
328
- if (!shouldApplyToolOutputRedaction(config)) {
329
- return;
330
- }
331
- redactToolObservationOutput(span, attributes, config);
332
- for (const key of [
333
- tracing.LangfuseOtelSpanAttributes.OBSERVATION_INPUT,
334
- tracing.LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT,
335
- tracing.LangfuseOtelSpanAttributes.TRACE_INPUT,
336
- tracing.LangfuseOtelSpanAttributes.TRACE_OUTPUT,
337
- ]) {
338
- redactAttribute(attributes, key, config);
339
- }
243
+ const attributes = span.attributes;
244
+ classifyLangGraphToolNodeSpan(attributes);
245
+ if (!shouldApplyToolOutputRedaction(config)) return;
246
+ redactToolObservationOutput(span, attributes, config);
247
+ for (const key of [
248
+ _langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_INPUT,
249
+ _langfuse_tracing.LangfuseOtelSpanAttributes.OBSERVATION_OUTPUT,
250
+ _langfuse_tracing.LangfuseOtelSpanAttributes.TRACE_INPUT,
251
+ _langfuse_tracing.LangfuseOtelSpanAttributes.TRACE_OUTPUT
252
+ ]) redactAttribute(attributes, key, config);
340
253
  }
341
254
  function getContextToolOutputTracingConfig(activeContext) {
342
- const asyncConfig = toolOutputTracingStorage.getStore();
343
- if (asyncConfig != null) {
344
- return asyncConfig;
345
- }
346
- const value = activeContext.getValue(langfuseToolOutputTracingConfigKey);
347
- return isRecord(value)
348
- ? value
349
- : undefined;
255
+ const asyncConfig = toolOutputTracingStorage.getStore();
256
+ if (asyncConfig != null) return asyncConfig;
257
+ const value = activeContext.getValue(langfuseToolOutputTracingConfigKey);
258
+ return isRecord(value) ? value : void 0;
350
259
  }
351
260
  function getContextLangfuseConfig(activeContext) {
352
- const asyncConfig = langfuseConfigStorage.getStore();
353
- if (asyncConfig != null) {
354
- return asyncConfig;
355
- }
356
- const value = activeContext.getValue(langfuseConfigKey);
357
- return isRecord(value) ? value : undefined;
358
- }
359
- class ToolOutputRedactingLangfuseSpanProcessor {
360
- processor;
361
- fallbackConfig;
362
- spanConfigs = new WeakMap();
363
- constructor(params, fallbackConfig) {
364
- this.processor = new otel.LangfuseSpanProcessor(params);
365
- this.fallbackConfig = fallbackConfig;
366
- }
367
- onStart(span, parentContext) {
368
- const config = getContextToolOutputTracingConfig(parentContext) ?? this.fallbackConfig;
369
- if (config != null) {
370
- this.spanConfigs.set(span, config);
371
- }
372
- this.processor.onStart(span, parentContext);
373
- }
374
- onEnd(span) {
375
- const config = this.spanConfigs.get(span) ??
376
- toolOutputTracingStorage.getStore() ??
377
- this.fallbackConfig ??
378
- resolveToolOutputTracingConfig();
379
- redactLangfuseSpanToolOutputs(span, config);
380
- this.processor.onEnd(span);
381
- }
382
- forceFlush() {
383
- return this.processor.forceFlush();
384
- }
385
- shutdown() {
386
- return this.processor.shutdown();
387
- }
388
- }
261
+ const asyncConfig = langfuseConfigStorage.getStore();
262
+ if (asyncConfig != null) return asyncConfig;
263
+ const value = activeContext.getValue(langfuseConfigKey);
264
+ return isRecord(value) ? value : void 0;
265
+ }
266
+ var ToolOutputRedactingLangfuseSpanProcessor = class {
267
+ processor;
268
+ fallbackConfig;
269
+ spanConfigs = /* @__PURE__ */ new WeakMap();
270
+ constructor(params, fallbackConfig) {
271
+ this.processor = new _langfuse_otel.LangfuseSpanProcessor(params);
272
+ this.fallbackConfig = fallbackConfig;
273
+ }
274
+ onStart(span, parentContext) {
275
+ const config = getContextToolOutputTracingConfig(parentContext) ?? this.fallbackConfig;
276
+ if (config != null) this.spanConfigs.set(span, config);
277
+ this.processor.onStart(span, parentContext);
278
+ }
279
+ onEnd(span) {
280
+ redactLangfuseSpanToolOutputs(span, this.spanConfigs.get(span) ?? toolOutputTracingStorage.getStore() ?? this.fallbackConfig ?? resolveToolOutputTracingConfig());
281
+ this.processor.onEnd(span);
282
+ }
283
+ forceFlush() {
284
+ return this.processor.forceFlush();
285
+ }
286
+ shutdown() {
287
+ return this.processor.shutdown();
288
+ }
289
+ };
389
290
  function createLangfuseSpanProcessor(params, runLangfuse, agentLangfuse) {
390
- const fallbackConfig = runLangfuse != null || agentLangfuse != null
391
- ? resolveToolOutputTracingConfig(runLangfuse, agentLangfuse)
392
- : undefined;
393
- return new ToolOutputRedactingLangfuseSpanProcessor(params, fallbackConfig);
291
+ return new ToolOutputRedactingLangfuseSpanProcessor(params, runLangfuse != null || agentLangfuse != null ? resolveToolOutputTracingConfig(runLangfuse, agentLangfuse) : void 0);
394
292
  }
395
293
  function withLangfuseToolOutputTracingConfig(runLangfuse, action, agentLangfuse) {
396
- const langfuse = resolveLangfuseConfig(runLangfuse, agentLangfuse);
397
- const hasNoToolOutputConfig = runLangfuse?.toolOutputTracing == null &&
398
- agentLangfuse?.toolOutputTracing == null;
399
- if (langfuse == null && hasNoToolOutputConfig) {
400
- return action();
401
- }
402
- const config = hasNoToolOutputConfig
403
- ? undefined
404
- : resolveToolOutputTracingConfig(runLangfuse, agentLangfuse);
405
- let activeContext = api.context.active();
406
- if (langfuse != null) {
407
- activeContext = activeContext.setValue(langfuseConfigKey, langfuse);
408
- }
409
- if (config != null) {
410
- activeContext = activeContext.setValue(langfuseToolOutputTracingConfigKey, config);
411
- }
412
- const runWithContext = () => api.context.with(activeContext, action);
413
- const runWithToolOutputConfig = () => config != null
414
- ? toolOutputTracingStorage.run(config, runWithContext)
415
- : runWithContext();
416
- return langfuse != null
417
- ? langfuseConfigStorage.run(langfuse, runWithToolOutputConfig)
418
- : runWithToolOutputConfig();
294
+ const langfuse = resolveLangfuseConfig(runLangfuse, agentLangfuse);
295
+ const hasNoToolOutputConfig = runLangfuse?.toolOutputTracing == null && agentLangfuse?.toolOutputTracing == null;
296
+ if (langfuse == null && hasNoToolOutputConfig) return action();
297
+ const config = hasNoToolOutputConfig ? void 0 : resolveToolOutputTracingConfig(runLangfuse, agentLangfuse);
298
+ let activeContext = _opentelemetry_api.context.active();
299
+ if (langfuse != null) activeContext = activeContext.setValue(langfuseConfigKey, langfuse);
300
+ if (config != null) activeContext = activeContext.setValue(langfuseToolOutputTracingConfigKey, config);
301
+ const runWithContext = () => _opentelemetry_api.context.with(activeContext, action);
302
+ const runWithToolOutputConfig = () => config != null ? toolOutputTracingStorage.run(config, runWithContext) : runWithContext();
303
+ return langfuse != null ? langfuseConfigStorage.run(langfuse, runWithToolOutputConfig) : runWithToolOutputConfig();
419
304
  }
420
305
  function hasLangfuseEnvKeys() {
421
- return (isPresent(process.env.LANGFUSE_SECRET_KEY) &&
422
- isPresent(process.env.LANGFUSE_PUBLIC_KEY));
306
+ return isPresent(process.env.LANGFUSE_SECRET_KEY) && isPresent(process.env.LANGFUSE_PUBLIC_KEY);
423
307
  }
424
308
  function hasLangfuseConfigKeys(langfuse) {
425
- if (langfuse == null) {
426
- return false;
427
- }
428
- return isPresent(langfuse.secretKey) && isPresent(langfuse.publicKey);
429
- }
430
- function shouldTraceToolNodeForLangfuse({ runLangfuse, agentLangfuse, }) {
431
- const langfuse = resolveLangfuseConfig(runLangfuse, agentLangfuse);
432
- if (langfuse?.enabled === false) {
433
- return false;
434
- }
435
- const explicit = langfuse?.toolNodeTracing?.enabled;
436
- if (explicit != null) {
437
- return (explicit && (hasLangfuseConfigKeys(langfuse) || hasLangfuseEnvKeys()));
438
- }
439
- return hasLangfuseConfigKeys(langfuse) || hasLangfuseEnvKeys();
309
+ if (langfuse == null) return false;
310
+ return isPresent(langfuse.secretKey) && isPresent(langfuse.publicKey);
440
311
  }
441
- function resolveLangfuseConfig(runLangfuse, agentLangfuse) {
442
- if (runLangfuse == null) {
443
- return agentLangfuse;
444
- }
445
- if (agentLangfuse == null) {
446
- return runLangfuse;
447
- }
448
- const toolNodeTracing = runLangfuse.toolNodeTracing != null || agentLangfuse.toolNodeTracing != null
449
- ? {
450
- ...runLangfuse.toolNodeTracing,
451
- ...agentLangfuse.toolNodeTracing,
452
- }
453
- : undefined;
454
- const toolOutputTracing = runLangfuse.toolOutputTracing != null ||
455
- agentLangfuse.toolOutputTracing != null
456
- ? {
457
- ...runLangfuse.toolOutputTracing,
458
- ...agentLangfuse.toolOutputTracing,
459
- }
460
- : undefined;
461
- return {
462
- ...runLangfuse,
463
- ...agentLangfuse,
464
- ...(toolNodeTracing != null ? { toolNodeTracing } : {}),
465
- ...(toolOutputTracing != null ? { toolOutputTracing } : {}),
466
- };
312
+ function shouldTraceToolNodeForLangfuse({ runLangfuse, agentLangfuse }) {
313
+ const langfuse = resolveLangfuseConfig(runLangfuse, agentLangfuse);
314
+ if (langfuse?.enabled === false) return false;
315
+ const explicit = langfuse?.toolNodeTracing?.enabled;
316
+ if (explicit != null) return explicit && (hasLangfuseConfigKeys(langfuse) || hasLangfuseEnvKeys());
317
+ return hasLangfuseConfigKeys(langfuse) || hasLangfuseEnvKeys();
467
318
  }
468
-
469
- exports.LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT = LANGFUSE_TOOL_OUTPUT_REDACTION_TEXT;
319
+ function resolveLangfuseConfig(runLangfuse, agentLangfuse) {
320
+ if (runLangfuse == null) return agentLangfuse;
321
+ if (agentLangfuse == null) return runLangfuse;
322
+ const toolNodeTracing = runLangfuse.toolNodeTracing != null || agentLangfuse.toolNodeTracing != null ? {
323
+ ...runLangfuse.toolNodeTracing,
324
+ ...agentLangfuse.toolNodeTracing
325
+ } : void 0;
326
+ const toolOutputTracing = runLangfuse.toolOutputTracing != null || agentLangfuse.toolOutputTracing != null ? {
327
+ ...runLangfuse.toolOutputTracing,
328
+ ...agentLangfuse.toolOutputTracing
329
+ } : void 0;
330
+ return {
331
+ ...runLangfuse,
332
+ ...agentLangfuse,
333
+ ...toolNodeTracing != null ? { toolNodeTracing } : {},
334
+ ...toolOutputTracing != null ? { toolOutputTracing } : {}
335
+ };
336
+ }
337
+ //#endregion
470
338
  exports.createLangfuseSpanProcessor = createLangfuseSpanProcessor;
471
339
  exports.getContextLangfuseConfig = getContextLangfuseConfig;
472
- exports.redactLangfuseSpanToolOutputs = redactLangfuseSpanToolOutputs;
473
340
  exports.resolveLangfuseConfig = resolveLangfuseConfig;
474
341
  exports.shouldTraceToolNodeForLangfuse = shouldTraceToolNodeForLangfuse;
475
342
  exports.withLangfuseToolOutputTracingConfig = withLangfuseToolOutputTracingConfig;
476
- //# sourceMappingURL=langfuseToolOutputTracing.cjs.map
343
+
344
+ //# sourceMappingURL=langfuseToolOutputTracing.cjs.map