@librechat/agents 3.7.8 → 3.7.9

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 (132) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +3 -2
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/common/constants.cjs +2 -0
  4. package/dist/cjs/common/constants.cjs.map +1 -1
  5. package/dist/cjs/graphs/Graph.cjs +40 -6
  6. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  7. package/dist/cjs/graphs/MultiAgentGraph.cjs +1 -1
  8. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  9. package/dist/cjs/hooks/executeHooks.cjs +8 -0
  10. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  11. package/dist/cjs/hooks/index.cjs +2 -0
  12. package/dist/cjs/hooks/index.cjs.map +1 -1
  13. package/dist/cjs/hooks/types.cjs +1 -0
  14. package/dist/cjs/hooks/types.cjs.map +1 -1
  15. package/dist/cjs/langfuse.cjs +43 -3
  16. package/dist/cjs/langfuse.cjs.map +1 -1
  17. package/dist/cjs/llm/invoke.cjs +2 -6
  18. package/dist/cjs/llm/invoke.cjs.map +1 -1
  19. package/dist/cjs/llm/request.cjs +6 -0
  20. package/dist/cjs/llm/request.cjs.map +1 -1
  21. package/dist/cjs/main.cjs +19 -11
  22. package/dist/cjs/messages/format.cjs +95 -18
  23. package/dist/cjs/messages/format.cjs.map +1 -1
  24. package/dist/cjs/messages/index.cjs +1 -1
  25. package/dist/cjs/run.cjs +201 -46
  26. package/dist/cjs/run.cjs.map +1 -1
  27. package/dist/cjs/session/AgentSession.cjs +1 -1
  28. package/dist/cjs/session/JsonlSessionStore.cjs +1 -1
  29. package/dist/cjs/summarization/index.cjs +1 -0
  30. package/dist/cjs/summarization/index.cjs.map +1 -1
  31. package/dist/cjs/summarization/node.cjs +24 -85
  32. package/dist/cjs/summarization/node.cjs.map +1 -1
  33. package/dist/cjs/summarization/semanticIndex.cjs +7 -3
  34. package/dist/cjs/summarization/semanticIndex.cjs.map +1 -1
  35. package/dist/cjs/summarization/shared.cjs +83 -0
  36. package/dist/cjs/summarization/shared.cjs.map +1 -0
  37. package/dist/cjs/tools/ToolNode.cjs +5 -5
  38. package/dist/cjs/tools/local/CompileCheckTool.cjs +1 -1
  39. package/dist/cjs/tools/local/LocalCodingTools.cjs +1 -1
  40. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +1 -1
  41. package/dist/cjs/tools/runStepResume.cjs +1 -1
  42. package/dist/cjs/tools/runStepResume.cjs.map +1 -1
  43. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +8 -12
  44. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  45. package/dist/cjs/utils/tokens.cjs +8 -1
  46. package/dist/cjs/utils/tokens.cjs.map +1 -1
  47. package/dist/esm/agents/AgentContext.mjs +3 -2
  48. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  49. package/dist/esm/common/constants.mjs +2 -1
  50. package/dist/esm/common/constants.mjs.map +1 -1
  51. package/dist/esm/graphs/Graph.mjs +40 -6
  52. package/dist/esm/graphs/Graph.mjs.map +1 -1
  53. package/dist/esm/graphs/MultiAgentGraph.mjs +1 -1
  54. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  55. package/dist/esm/hooks/executeHooks.mjs +8 -1
  56. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  57. package/dist/esm/hooks/index.mjs +2 -1
  58. package/dist/esm/hooks/index.mjs.map +1 -1
  59. package/dist/esm/hooks/types.mjs +1 -0
  60. package/dist/esm/hooks/types.mjs.map +1 -1
  61. package/dist/esm/langfuse.mjs +43 -3
  62. package/dist/esm/langfuse.mjs.map +1 -1
  63. package/dist/esm/llm/invoke.mjs +2 -6
  64. package/dist/esm/llm/invoke.mjs.map +1 -1
  65. package/dist/esm/llm/request.mjs +6 -1
  66. package/dist/esm/llm/request.mjs.map +1 -1
  67. package/dist/esm/main.mjs +13 -12
  68. package/dist/esm/messages/format.mjs +96 -19
  69. package/dist/esm/messages/format.mjs.map +1 -1
  70. package/dist/esm/messages/index.mjs +1 -1
  71. package/dist/esm/run.mjs +201 -46
  72. package/dist/esm/run.mjs.map +1 -1
  73. package/dist/esm/session/AgentSession.mjs +1 -1
  74. package/dist/esm/session/JsonlSessionStore.mjs +1 -1
  75. package/dist/esm/summarization/index.mjs +1 -0
  76. package/dist/esm/summarization/index.mjs.map +1 -1
  77. package/dist/esm/summarization/node.mjs +21 -82
  78. package/dist/esm/summarization/node.mjs.map +1 -1
  79. package/dist/esm/summarization/semanticIndex.mjs +7 -4
  80. package/dist/esm/summarization/semanticIndex.mjs.map +1 -1
  81. package/dist/esm/summarization/shared.mjs +79 -0
  82. package/dist/esm/summarization/shared.mjs.map +1 -0
  83. package/dist/esm/tools/ToolNode.mjs +5 -5
  84. package/dist/esm/tools/local/CompileCheckTool.mjs +1 -1
  85. package/dist/esm/tools/local/LocalCodingTools.mjs +1 -1
  86. package/dist/esm/tools/local/LocalExecutionEngine.mjs +1 -1
  87. package/dist/esm/tools/runStepResume.mjs +1 -1
  88. package/dist/esm/tools/runStepResume.mjs.map +1 -1
  89. package/dist/esm/tools/subagent/SubagentExecutor.mjs +8 -12
  90. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  91. package/dist/esm/utils/tokens.mjs +8 -2
  92. package/dist/esm/utils/tokens.mjs.map +1 -1
  93. package/dist/types/common/constants.d.ts +7 -0
  94. package/dist/types/graphs/Graph.d.ts +9 -0
  95. package/dist/types/hooks/executeHooks.d.ts +5 -2
  96. package/dist/types/hooks/index.d.ts +7 -2
  97. package/dist/types/hooks/types.d.ts +45 -7
  98. package/dist/types/langfuse.d.ts +3 -1
  99. package/dist/types/llm/request.d.ts +10 -0
  100. package/dist/types/messages/format.d.ts +8 -2
  101. package/dist/types/run.d.ts +2 -1
  102. package/dist/types/summarization/index.d.ts +6 -0
  103. package/dist/types/summarization/node.d.ts +0 -4
  104. package/dist/types/summarization/semanticIndex.d.ts +2 -0
  105. package/dist/types/summarization/shared.d.ts +25 -0
  106. package/dist/types/types/run.d.ts +8 -0
  107. package/dist/types/types/stream.d.ts +6 -0
  108. package/dist/types/types/summarize.d.ts +6 -0
  109. package/dist/types/utils/tokens.d.ts +9 -0
  110. package/package.json +1 -1
  111. package/src/agents/AgentContext.ts +2 -5
  112. package/src/common/constants.ts +8 -0
  113. package/src/graphs/Graph.ts +45 -0
  114. package/src/hooks/HookRegistry.ts +3 -1
  115. package/src/hooks/executeHooks.ts +20 -2
  116. package/src/hooks/index.ts +12 -1
  117. package/src/hooks/types.ts +47 -4
  118. package/src/langfuse.ts +70 -0
  119. package/src/llm/invoke.ts +13 -29
  120. package/src/llm/request.ts +24 -0
  121. package/src/messages/format.ts +213 -27
  122. package/src/run.ts +366 -186
  123. package/src/summarization/index.ts +11 -0
  124. package/src/summarization/node.ts +117 -130
  125. package/src/summarization/semanticIndex.ts +16 -7
  126. package/src/summarization/shared.ts +130 -0
  127. package/src/tools/runStepResume.ts +9 -0
  128. package/src/tools/subagent/SubagentExecutor.ts +4 -27
  129. package/src/types/run.ts +8 -0
  130. package/src/types/stream.ts +6 -0
  131. package/src/types/summarize.ts +7 -0
  132. package/src/utils/tokens.ts +31 -8
@@ -6,8 +6,8 @@ import {
6
6
  isAtomicToolContentBlock,
7
7
  serializeStructuredValueBounded,
8
8
  } from './toolContent';
9
- import { ContentTypes } from '@/common/enum';
10
9
  import { markTokenCounterCacheCompatible } from '@/llm/tokenCounterCacheCompatibility';
10
+ import { ContentTypes } from '@/common/enum';
11
11
 
12
12
  export type EncodingName = 'o200k_base' | 'claude';
13
13
 
@@ -1257,6 +1257,25 @@ export function apportionTokenCounts(
1257
1257
  */
1258
1258
  const CLAUDE_TOKEN_CORRECTION = 1.1;
1259
1259
 
1260
+ const tokenCounterEncodings = new WeakMap<
1261
+ (message: BaseMessage) => number,
1262
+ EncodingName
1263
+ >();
1264
+
1265
+ /**
1266
+ * Encoding a counter measures in, for counters built here.
1267
+ *
1268
+ * `undefined` for a counter the host supplied itself: unknown, not wrong. A
1269
+ * caller that needs a count in a specific encoding can therefore tell "counts
1270
+ * in the encoding I need" from "counts in a different one" without treating
1271
+ * every foreign counter as suspect.
1272
+ */
1273
+ export function encodingOfTokenCounter(
1274
+ tokenCounter: (message: BaseMessage) => number
1275
+ ): EncodingName | undefined {
1276
+ return tokenCounterEncodings.get(tokenCounter);
1277
+ }
1278
+
1260
1279
  /**
1261
1280
  * Creates a token counter function using the specified encoding.
1262
1281
  * Lazily loads the encoding data on first use via dynamic import.
@@ -1267,13 +1286,17 @@ export const createTokenCounter = async (
1267
1286
  const tok = await getTokenizer(encoding);
1268
1287
  const countTokens = (text: string): number => tok.count(text);
1269
1288
  const isClaude = encoding === 'claude';
1270
- return markTokenCounterCacheCompatible((message: BaseMessage): number => {
1271
- const count = getTokenCountForMessage(message, countTokens, encoding);
1272
- const correctedCount = isClaude
1273
- ? Math.ceil(count * CLAUDE_TOKEN_CORRECTION)
1274
- : count;
1275
- return ensureSafeTokenMeasurement(correctedCount, 'message');
1276
- });
1289
+ const counter = markTokenCounterCacheCompatible(
1290
+ (message: BaseMessage): number => {
1291
+ const count = getTokenCountForMessage(message, countTokens, encoding);
1292
+ const correctedCount = isClaude
1293
+ ? Math.ceil(count * CLAUDE_TOKEN_CORRECTION)
1294
+ : count;
1295
+ return ensureSafeTokenMeasurement(correctedCount, 'message');
1296
+ }
1297
+ );
1298
+ tokenCounterEncodings.set(counter, encoding);
1299
+ return counter;
1277
1300
  };
1278
1301
 
1279
1302
  /** Utility to manage the token encoder lifecycle explicitly. */