@librechat/agents 3.1.70 → 3.1.71-dev.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 (66) hide show
  1. package/dist/cjs/graphs/Graph.cjs +52 -0
  2. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  3. package/dist/cjs/llm/invoke.cjs +13 -2
  4. package/dist/cjs/llm/invoke.cjs.map +1 -1
  5. package/dist/cjs/main.cjs +4 -0
  6. package/dist/cjs/main.cjs.map +1 -1
  7. package/dist/cjs/messages/prune.cjs +9 -2
  8. package/dist/cjs/messages/prune.cjs.map +1 -1
  9. package/dist/cjs/run.cjs +4 -0
  10. package/dist/cjs/run.cjs.map +1 -1
  11. package/dist/cjs/tools/BashExecutor.cjs +43 -0
  12. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  13. package/dist/cjs/tools/ToolNode.cjs +482 -45
  14. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  15. package/dist/cjs/tools/toolOutputReferences.cjs +657 -0
  16. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -0
  17. package/dist/cjs/utils/truncation.cjs +28 -0
  18. package/dist/cjs/utils/truncation.cjs.map +1 -1
  19. package/dist/esm/graphs/Graph.mjs +52 -0
  20. package/dist/esm/graphs/Graph.mjs.map +1 -1
  21. package/dist/esm/llm/invoke.mjs +13 -2
  22. package/dist/esm/llm/invoke.mjs.map +1 -1
  23. package/dist/esm/main.mjs +2 -2
  24. package/dist/esm/messages/prune.mjs +9 -2
  25. package/dist/esm/messages/prune.mjs.map +1 -1
  26. package/dist/esm/run.mjs +4 -0
  27. package/dist/esm/run.mjs.map +1 -1
  28. package/dist/esm/tools/BashExecutor.mjs +42 -1
  29. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  30. package/dist/esm/tools/ToolNode.mjs +482 -45
  31. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  32. package/dist/esm/tools/toolOutputReferences.mjs +649 -0
  33. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -0
  34. package/dist/esm/utils/truncation.mjs +27 -1
  35. package/dist/esm/utils/truncation.mjs.map +1 -1
  36. package/dist/types/graphs/Graph.d.ts +28 -0
  37. package/dist/types/llm/invoke.d.ts +9 -0
  38. package/dist/types/run.d.ts +1 -0
  39. package/dist/types/tools/BashExecutor.d.ts +31 -0
  40. package/dist/types/tools/ToolNode.d.ts +84 -3
  41. package/dist/types/tools/toolOutputReferences.d.ts +236 -0
  42. package/dist/types/types/index.d.ts +1 -0
  43. package/dist/types/types/messages.d.ts +26 -0
  44. package/dist/types/types/run.d.ts +9 -1
  45. package/dist/types/types/tools.d.ts +70 -0
  46. package/dist/types/utils/truncation.d.ts +21 -0
  47. package/package.json +1 -1
  48. package/src/graphs/Graph.ts +55 -0
  49. package/src/llm/invoke.test.ts +442 -0
  50. package/src/llm/invoke.ts +23 -2
  51. package/src/messages/prune.ts +9 -2
  52. package/src/run.ts +4 -0
  53. package/src/specs/prune.test.ts +413 -0
  54. package/src/tools/BashExecutor.ts +45 -0
  55. package/src/tools/ToolNode.ts +631 -55
  56. package/src/tools/__tests__/BashExecutor.test.ts +36 -0
  57. package/src/tools/__tests__/ToolNode.outputReferences.test.ts +1438 -0
  58. package/src/tools/__tests__/annotateMessagesForLLM.test.ts +419 -0
  59. package/src/tools/__tests__/toolOutputReferences.test.ts +415 -0
  60. package/src/tools/toolOutputReferences.ts +813 -0
  61. package/src/types/index.ts +1 -0
  62. package/src/types/messages.ts +27 -0
  63. package/src/types/run.ts +9 -1
  64. package/src/types/tools.ts +71 -0
  65. package/src/utils/__tests__/truncation.test.ts +66 -0
  66. package/src/utils/truncation.ts +30 -0
package/dist/cjs/main.cjs CHANGED
@@ -131,6 +131,8 @@ exports.BashExecutionToolDefinition = BashExecutor.BashExecutionToolDefinition;
131
131
  exports.BashExecutionToolDescription = BashExecutor.BashExecutionToolDescription;
132
132
  exports.BashExecutionToolName = BashExecutor.BashExecutionToolName;
133
133
  exports.BashExecutionToolSchema = BashExecutor.BashExecutionToolSchema;
134
+ exports.BashToolOutputReferencesGuide = BashExecutor.BashToolOutputReferencesGuide;
135
+ exports.buildBashExecutionToolDescription = BashExecutor.buildBashExecutionToolDescription;
134
136
  exports.createBashExecutionTool = BashExecutor.createBashExecutionTool;
135
137
  exports.ProgrammaticToolCallingDefinition = ProgrammaticToolCalling.ProgrammaticToolCallingDefinition;
136
138
  exports.ProgrammaticToolCallingDescription = ProgrammaticToolCalling.ProgrammaticToolCallingDescription;
@@ -288,7 +290,9 @@ exports.getTokenCountForMessage = tokens.getTokenCountForMessage;
288
290
  exports.isZodSchema = schema$2.isZodSchema;
289
291
  exports.toJsonSchema = schema$2.toJsonSchema;
290
292
  exports.HARD_MAX_TOOL_RESULT_CHARS = truncation.HARD_MAX_TOOL_RESULT_CHARS;
293
+ exports.HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE = truncation.HARD_MAX_TOTAL_TOOL_OUTPUT_SIZE;
291
294
  exports.calculateMaxToolResultChars = truncation.calculateMaxToolResultChars;
295
+ exports.calculateMaxTotalToolOutputSize = truncation.calculateMaxTotalToolOutputSize;
292
296
  exports.truncateToolInput = truncation.truncateToolInput;
293
297
  exports.truncateToolResultContent = truncation.truncateToolResultContent;
294
298
  exports.extractErrorMessage = errors.extractErrorMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"main.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"main.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -435,9 +435,16 @@ function getMessagesWithinTokenLimit({ messages: _messages, maxContextTokens, in
435
435
  thinkingBlock = poppedMessage.content.find((content) => content.type === reasoningType);
436
436
  thinkingStartIndex = thinkingBlock != null ? currentIndex : -1;
437
437
  }
438
- /** False start, the latest message was not part of a multi-assistant/tool sequence of messages */
438
+ /**
439
+ * Exited the trailing assistant/tool sequence without finding a
440
+ * thinking block. Anthropic does not require Claude to emit a
441
+ * thinking block before every tool call, so the absence of one is
442
+ * a valid sequence — clear thinkingEndIndex so the pruner does not
443
+ * treat it as malformed.
444
+ */
439
445
  if (thinkingEndIndex > -1 &&
440
- currentIndex === thinkingEndIndex - 1 &&
446
+ thinkingStartIndex < 0 &&
447
+ !thinkingBlock &&
441
448
  messageType !== 'ai' &&
442
449
  messageType !== 'tool') {
443
450
  thinkingEndIndex = -1;