@librechat/agents 3.2.65 → 3.2.67

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 (78) hide show
  1. package/dist/cjs/graphs/Graph.cjs +15 -2
  2. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  3. package/dist/cjs/hooks/createToolPolicyHook.cjs +5 -5
  4. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  5. package/dist/cjs/instrumentation.cjs +15 -3
  6. package/dist/cjs/instrumentation.cjs.map +1 -1
  7. package/dist/cjs/langfuseToolOutputTracing.cjs +1 -2
  8. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  9. package/dist/cjs/langfuseTraceShaping.cjs +51 -24
  10. package/dist/cjs/langfuseTraceShaping.cjs.map +1 -1
  11. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +8 -0
  12. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  13. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +8 -0
  14. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  15. package/dist/cjs/tools/BashExecutor.cjs +9 -8
  16. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  17. package/dist/cjs/tools/CodeExecutor.cjs +9 -7
  18. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  19. package/dist/cjs/tools/ToolSearch.cjs +59 -14
  20. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  21. package/dist/cjs/tools/search/tool.cjs +5 -3
  22. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  23. package/dist/esm/graphs/Graph.mjs +15 -2
  24. package/dist/esm/graphs/Graph.mjs.map +1 -1
  25. package/dist/esm/hooks/createToolPolicyHook.mjs +5 -5
  26. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  27. package/dist/esm/instrumentation.mjs +15 -3
  28. package/dist/esm/instrumentation.mjs.map +1 -1
  29. package/dist/esm/langfuseToolOutputTracing.mjs +1 -2
  30. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  31. package/dist/esm/langfuseTraceShaping.mjs +51 -24
  32. package/dist/esm/langfuseTraceShaping.mjs.map +1 -1
  33. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +8 -0
  34. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  35. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +8 -0
  36. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  37. package/dist/esm/tools/BashExecutor.mjs +9 -8
  38. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  39. package/dist/esm/tools/CodeExecutor.mjs +9 -7
  40. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  41. package/dist/esm/tools/ToolSearch.mjs +59 -14
  42. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  43. package/dist/esm/tools/search/tool.mjs +5 -3
  44. package/dist/esm/tools/search/tool.mjs.map +1 -1
  45. package/dist/types/graphs/Graph.d.ts +2 -0
  46. package/dist/types/hooks/createToolPolicyHook.d.ts +12 -15
  47. package/dist/types/langfuseTraceShaping.d.ts +12 -6
  48. package/dist/types/tools/BashExecutor.d.ts +7 -6
  49. package/dist/types/tools/CodeExecutor.d.ts +7 -5
  50. package/dist/types/tools/search/types.d.ts +2 -0
  51. package/dist/types/types/graph.d.ts +10 -3
  52. package/package.json +1 -1
  53. package/src/graphs/Graph.ts +21 -3
  54. package/src/hooks/__tests__/createToolPolicyHook.test.ts +13 -4
  55. package/src/hooks/createToolPolicyHook.ts +16 -19
  56. package/src/instrumentation.ts +20 -0
  57. package/src/langfuseToolOutputTracing.ts +2 -4
  58. package/src/langfuseTraceShaping.ts +73 -20
  59. package/src/llm/anthropic/utils/cross-provider-server-tools.test.ts +110 -0
  60. package/src/llm/anthropic/utils/message_inputs.ts +15 -0
  61. package/src/llm/bedrock/utils/cross-provider-server-tools.test.ts +122 -0
  62. package/src/llm/bedrock/utils/message_inputs.ts +13 -0
  63. package/src/specs/langfuse-instrumentation.test.ts +64 -0
  64. package/src/specs/langfuse-routing.integration.test.ts +49 -4
  65. package/src/specs/langfuse-tool-output-tracing.test.ts +5 -4
  66. package/src/specs/langfuse-trace-shaping.test.ts +80 -9
  67. package/src/specs/subagent.test.ts +180 -0
  68. package/src/tools/BashExecutor.ts +9 -8
  69. package/src/tools/CodeExecutor.ts +9 -7
  70. package/src/tools/ToolSearch.ts +81 -23
  71. package/src/tools/__tests__/BashExecutor.test.ts +16 -5
  72. package/src/tools/__tests__/CodeExecutor.stateful.test.ts +17 -6
  73. package/src/tools/__tests__/ToolSearch.test.ts +151 -0
  74. package/src/tools/__tests__/hitl.test.ts +114 -1
  75. package/src/tools/search/source-processing.test.ts +57 -0
  76. package/src/tools/search/tool.ts +13 -1
  77. package/src/tools/search/types.ts +2 -0
  78. package/src/types/graph.ts +10 -3
@@ -23,6 +23,7 @@ const require_graph = require("../utils/graph.cjs");
23
23
  const require_llm = require("../utils/llm.cjs");
24
24
  const require_handlers = require("../tools/handlers.cjs");
25
25
  const require_toolOutputReferences = require("../tools/toolOutputReferences.cjs");
26
+ const require_events$1 = require("../events.cjs");
26
27
  const require_run = require("../utils/run.cjs");
27
28
  require("../utils/index.cjs");
28
29
  const require_toolCache = require("../llm/openrouter/toolCache.cjs");
@@ -52,6 +53,13 @@ let nanoid = require("nanoid");
52
53
  const { AGENT, TOOLS, SUMMARIZE } = require_enum.GraphNodeKeys;
53
54
  /** Minimum relative variance before calibrated toolSchemaTokens overrides current value. */
54
55
  const CALIBRATION_VARIANCE_THRESHOLD = .15;
56
+ function createToolHandlerRegistry(source) {
57
+ const toolHandler = source?.getHandler("on_tool_execute");
58
+ if (toolHandler == null) return;
59
+ const registry = new require_events$1.HandlerRegistry();
60
+ registry.register("on_tool_execute", toolHandler);
61
+ return registry;
62
+ }
55
63
  /**
56
64
  * Start index of the span post-prune formatters can mutate in place: the
57
65
  * trailing tool batch plus its owning AI message (artifact formatting touches
@@ -242,6 +250,8 @@ var Graph = class {
242
250
  /** Set of invoked tool call IDs from non-message run steps completed mid-run, if any */
243
251
  invokedToolIds;
244
252
  handlerRegistry;
253
+ /** Host registry retained only for forwarding tools from nested child graphs. */
254
+ parentToolHandlerRegistry;
245
255
  /**
246
256
  * True when event-driven tool execution can be routed through callbacks even
247
257
  * though this graph intentionally does not own the full handler registry.
@@ -324,6 +334,7 @@ var Graph = class {
324
334
  this.prelimMessageIdsByStepKey = /* @__PURE__ */ new Map();
325
335
  this.invokedToolIds = void 0;
326
336
  this.handlerRegistry = void 0;
337
+ this.parentToolHandlerRegistry = void 0;
327
338
  this.hookRegistry = void 0;
328
339
  this.humanInTheLoop = void 0;
329
340
  this.toolOutputReferences = void 0;
@@ -1243,7 +1254,7 @@ var StandardGraph = class StandardGraph extends Graph {
1243
1254
  if (agentContext.subagentConfigs != null && agentContext.subagentConfigs.length > 0 && effectiveSubagentDepth > 0) {
1244
1255
  const resolvedConfigs = require_SubagentExecutor.resolveSubagentConfigs(agentContext.subagentConfigs, agentContext);
1245
1256
  if (resolvedConfigs.length > 0) {
1246
- const getParentHandlerRegistry = () => this.handlerRegistry;
1257
+ const getParentHandlerRegistry = () => this.handlerRegistry ?? this.parentToolHandlerRegistry;
1247
1258
  const executor = new require_SubagentExecutor.SubagentExecutor({
1248
1259
  configs: new Map(resolvedConfigs.map((c) => [c.type, c])),
1249
1260
  parentSignal: this.signal,
@@ -1260,6 +1271,7 @@ var StandardGraph = class StandardGraph extends Graph {
1260
1271
  maxDepth: effectiveSubagentDepth,
1261
1272
  createChildGraph: (input) => {
1262
1273
  const childGraph = new StandardGraph(input);
1274
+ const toolHandlerRegistry = createToolHandlerRegistry(getParentHandlerRegistry());
1263
1275
  childGraph.hookRegistry = this.hookRegistry;
1264
1276
  /**
1265
1277
  * Do not propagate `humanInTheLoop` into the child graph yet:
@@ -1272,7 +1284,8 @@ var StandardGraph = class StandardGraph extends Graph {
1272
1284
  childGraph.codeSessionToolNames = this.codeSessionToolNames;
1273
1285
  childGraph.interruptingToolNames = this.interruptingToolNames;
1274
1286
  childGraph.toolExecution = this.toolExecution;
1275
- childGraph.eventToolExecutionAvailable = this.handlerRegistry?.getHandler("on_tool_execute") != null;
1287
+ childGraph.parentToolHandlerRegistry = toolHandlerRegistry;
1288
+ childGraph.eventToolExecutionAvailable = toolHandlerRegistry != null;
1276
1289
  return childGraph;
1277
1290
  }
1278
1291
  });