@librechat/agents 3.2.46 → 3.2.52

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 (57) hide show
  1. package/dist/cjs/graphs/MultiAgentGraph.cjs +6 -6
  2. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  3. package/dist/cjs/llm/anthropic/index.cjs +4 -3
  4. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  5. package/dist/cjs/llm/anthropic/utils/tools.cjs +2 -1
  6. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  7. package/dist/cjs/llm/bedrock/cachePoints.cjs +28 -0
  8. package/dist/cjs/llm/bedrock/cachePoints.cjs.map +1 -0
  9. package/dist/cjs/llm/bedrock/index.cjs +10 -1
  10. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  11. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  12. package/dist/cjs/run.cjs +21 -3
  13. package/dist/cjs/run.cjs.map +1 -1
  14. package/dist/cjs/tools/ToolNode.cjs +26 -5
  15. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  16. package/dist/esm/graphs/MultiAgentGraph.mjs +7 -7
  17. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  18. package/dist/esm/llm/anthropic/index.mjs +4 -3
  19. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  20. package/dist/esm/llm/anthropic/utils/tools.mjs +2 -1
  21. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  22. package/dist/esm/llm/bedrock/cachePoints.mjs +28 -0
  23. package/dist/esm/llm/bedrock/cachePoints.mjs.map +1 -0
  24. package/dist/esm/llm/bedrock/index.mjs +10 -1
  25. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  26. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  27. package/dist/esm/run.mjs +21 -3
  28. package/dist/esm/run.mjs.map +1 -1
  29. package/dist/esm/tools/ToolNode.mjs +26 -5
  30. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  31. package/dist/types/llm/anthropic/utils/tools.d.ts +1 -1
  32. package/dist/types/llm/bedrock/cachePoints.d.ts +9 -0
  33. package/dist/types/run.d.ts +15 -1
  34. package/dist/types/tools/ToolNode.d.ts +9 -2
  35. package/package.json +16 -21
  36. package/src/graphs/MultiAgentGraph.ts +7 -12
  37. package/src/llm/anthropic/index.ts +13 -2
  38. package/src/llm/anthropic/inherited-content-utils.spec.ts +244 -0
  39. package/src/llm/anthropic/inherited-stream-events.spec.ts +752 -0
  40. package/src/llm/anthropic/inherited-strict.spec.ts +302 -0
  41. package/src/llm/anthropic/llm.spec.ts +65 -0
  42. package/src/llm/anthropic/utils/tools.ts +7 -1
  43. package/src/llm/bedrock/cachePoints.ts +86 -0
  44. package/src/llm/bedrock/index.ts +9 -0
  45. package/src/llm/bedrock/inherited-cache.spec.ts +144 -0
  46. package/src/llm/bedrock/inherited.spec.ts +724 -0
  47. package/src/llm/google/inherited-stream-events.spec.ts +350 -0
  48. package/src/llm/openai/inherited-deepseek.spec.ts +347 -0
  49. package/src/llm/openai/inherited-xai.spec.ts +416 -0
  50. package/src/llm/openai/llm.spec.ts +1568 -0
  51. package/src/llm/openrouter/index.ts +1 -3
  52. package/src/llm/vertexai/inherited-stream-events.spec.ts +271 -0
  53. package/src/run.ts +31 -3
  54. package/src/scripts/handoff-test.ts +5 -6
  55. package/src/tools/ToolNode.ts +43 -5
  56. package/src/tools/__tests__/ToolNode.runtimeState.test.ts +120 -0
  57. package/src/tools/__tests__/hitl.test.ts +162 -0
@@ -470,7 +470,7 @@ var ToolNode = class extends require_run.RunnableCallable {
470
470
  * substitutions. Omit when no registration should occur.
471
471
  */
472
472
  async runTool(call, config, batchContext = {}) {
473
- const { batchIndex, turn, batchScopeId, resolvedArgsByCallId, preBatchSnapshot } = batchContext;
473
+ const { batchIndex, turn, batchScopeId, resolvedArgsByCallId, preBatchSnapshot, runInput } = batchContext;
474
474
  const tool = this.toolMap.get(call.name);
475
475
  const registry = this.toolOutputRegistry;
476
476
  let resolveFn;
@@ -578,7 +578,24 @@ var ToolNode = class extends require_run.RunnableCallable {
578
578
  if (codeSession?.files != null && codeSession.files.length > 0) invokeParams._injected_files = codeSession.files.map((file) => toInjectedFileRef(file, execSessionId));
579
579
  }
580
580
  }
581
- const output = await tool.invoke(invokeParams, config);
581
+ /**
582
+ * Forward the graph state as langgraph 1.4's `runtime.state` so
583
+ * tools can read it off their second argument instead of the
584
+ * deprecated `getCurrentTaskInput()` (which relies on
585
+ * `node:async_hooks` and is browser-incompatible). Shape mirrors
586
+ * langgraph's prebuilt ToolNode runtime exactly.
587
+ */
588
+ const lgConfig = config;
589
+ const runtime = {
590
+ ...config,
591
+ state: runInput,
592
+ toolCallId: call.id ?? "",
593
+ config,
594
+ context: lgConfig.context,
595
+ store: lgConfig.store ?? null,
596
+ writer: lgConfig.writer ?? config.configurable?.writer ?? null
597
+ };
598
+ const output = await tool.invoke(invokeParams, runtime);
582
599
  if ((0, _langchain_langgraph.isCommand)(output)) return output;
583
600
  if ((0, _langchain_core_messages.isBaseMessage)(output) && output._getType() === "tool") {
584
601
  const toolMsg = output;
@@ -1926,12 +1943,14 @@ var ToolNode = class extends require_run.RunnableCallable {
1926
1943
  batchScopeId
1927
1944
  });
1928
1945
  const directAdditionalContexts = [];
1946
+ const { lg_tool_call: _sendToolCall, ...sendState } = input;
1929
1947
  const sendOutput = await this.runDirectToolWithLifecycleHooks(input.lg_tool_call, config, {
1930
1948
  batchIndex: 0,
1931
1949
  turn,
1932
1950
  batchScopeId,
1933
1951
  resolvedArgsByCallId,
1934
- additionalContextsSink: directAdditionalContexts
1952
+ additionalContextsSink: directAdditionalContexts,
1953
+ runInput: sendState
1935
1954
  });
1936
1955
  outputs = directAdditionalContexts.length > 0 ? [sendOutput, new _langchain_core_messages.HumanMessage({
1937
1956
  content: directAdditionalContexts.join("\n\n"),
@@ -2032,7 +2051,8 @@ var ToolNode = class extends require_run.RunnableCallable {
2032
2051
  batchScopeId,
2033
2052
  resolvedArgsByCallId,
2034
2053
  preBatchSnapshot,
2035
- additionalContextsSink: directAdditionalContexts
2054
+ additionalContextsSink: directAdditionalContexts,
2055
+ runInput: input
2036
2056
  }))) : [];
2037
2057
  if (directCalls.length > 0 && directOutputs.length > 0) await this.handleRunToolCompletions(directCalls, directOutputs, config, resolvedArgsByCallId);
2038
2058
  const eventResult = eventCalls.length > 0 ? await this.dispatchToolEvents(eventCalls, config, {
@@ -2067,7 +2087,8 @@ var ToolNode = class extends require_run.RunnableCallable {
2067
2087
  batchScopeId,
2068
2088
  resolvedArgsByCallId,
2069
2089
  preBatchSnapshot,
2070
- additionalContextsSink: directAdditionalContexts
2090
+ additionalContextsSink: directAdditionalContexts,
2091
+ runInput: input
2071
2092
  })));
2072
2093
  await this.handleRunToolCompletions(filteredCalls, toolOutputs, config, resolvedArgsByCallId);
2073
2094
  outputs = directAdditionalContexts.length > 0 ? [...toolOutputs, new _langchain_core_messages.HumanMessage({