@librechat/agents 3.6.8 → 3.6.10
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.
- package/dist/cjs/agents/AgentContext.cjs +46 -39
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/agents/projection.cjs +2 -2
- package/dist/cjs/agents/projection.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +28 -18
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/graphs/MultiAgentGraph.cjs +87 -16
- package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +10 -0
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +14 -0
- package/dist/cjs/messages/alternation.cjs +125 -20
- package/dist/cjs/messages/alternation.cjs.map +1 -1
- package/dist/cjs/messages/core.cjs +195 -18
- package/dist/cjs/messages/core.cjs.map +1 -1
- package/dist/cjs/messages/format.cjs +488 -118
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/messages/handoffCue.cjs +3 -2
- package/dist/cjs/messages/handoffCue.cjs.map +1 -1
- package/dist/cjs/messages/index.cjs +1 -0
- package/dist/cjs/messages/injected.cjs +5 -2
- package/dist/cjs/messages/injected.cjs.map +1 -1
- package/dist/cjs/messages/provenance.cjs +411 -0
- package/dist/cjs/messages/provenance.cjs.map +1 -0
- package/dist/cjs/messages/prune.cjs +18 -13
- package/dist/cjs/messages/prune.cjs.map +1 -1
- package/dist/cjs/messages/toolResultTypes.cjs +663 -0
- package/dist/cjs/messages/toolResultTypes.cjs.map +1 -0
- package/dist/cjs/run.cjs +7 -4
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +21 -4
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/CallerCapabilities.cjs +48 -0
- package/dist/cjs/tools/CallerCapabilities.cjs.map +1 -0
- package/dist/cjs/tools/ProgrammaticCallerPolicy.cjs +34 -0
- package/dist/cjs/tools/ProgrammaticCallerPolicy.cjs.map +1 -0
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +21 -4
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +25 -24
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs +12 -4
- package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +13 -4
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +47 -11
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
- package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
- package/dist/cjs/tools/search/search.cjs +19 -9
- package/dist/cjs/tools/search/search.cjs.map +1 -1
- package/dist/cjs/tools/search/tool.cjs +2 -1
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +1 -1
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
- package/dist/cjs/utils/toolContent.cjs +2 -2
- package/dist/cjs/utils/toolContent.cjs.map +1 -1
- package/dist/esm/agents/AgentContext.mjs +46 -39
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/agents/projection.mjs +2 -2
- package/dist/esm/agents/projection.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +30 -20
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/graphs/MultiAgentGraph.mjs +87 -16
- package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +10 -0
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/main.mjs +4 -3
- package/dist/esm/messages/alternation.mjs +125 -20
- package/dist/esm/messages/alternation.mjs.map +1 -1
- package/dist/esm/messages/core.mjs +196 -19
- package/dist/esm/messages/core.mjs.map +1 -1
- package/dist/esm/messages/format.mjs +488 -119
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/messages/handoffCue.mjs +3 -2
- package/dist/esm/messages/handoffCue.mjs.map +1 -1
- package/dist/esm/messages/index.mjs +1 -0
- package/dist/esm/messages/injected.mjs +5 -2
- package/dist/esm/messages/injected.mjs.map +1 -1
- package/dist/esm/messages/provenance.mjs +401 -0
- package/dist/esm/messages/provenance.mjs.map +1 -0
- package/dist/esm/messages/prune.mjs +18 -13
- package/dist/esm/messages/prune.mjs.map +1 -1
- package/dist/esm/messages/toolResultTypes.mjs +657 -0
- package/dist/esm/messages/toolResultTypes.mjs.map +1 -0
- package/dist/esm/run.mjs +7 -4
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs +21 -4
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/CallerCapabilities.mjs +45 -0
- package/dist/esm/tools/CallerCapabilities.mjs.map +1 -0
- package/dist/esm/tools/ProgrammaticCallerPolicy.mjs +32 -0
- package/dist/esm/tools/ProgrammaticCallerPolicy.mjs.map +1 -0
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +21 -4
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +25 -24
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs +14 -6
- package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +15 -6
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +47 -12
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
- package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
- package/dist/esm/tools/search/search.mjs +19 -9
- package/dist/esm/tools/search/search.mjs.map +1 -1
- package/dist/esm/tools/search/tool.mjs +2 -1
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +1 -1
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
- package/dist/esm/utils/toolContent.mjs +2 -2
- package/dist/esm/utils/toolContent.mjs.map +1 -1
- package/dist/types/agents/AgentContext.d.ts +8 -13
- package/dist/types/agents/projection.d.ts +3 -1
- package/dist/types/graphs/Graph.d.ts +1 -1
- package/dist/types/llm/openai/index.d.ts +20 -0
- package/dist/types/messages/format.d.ts +5 -0
- package/dist/types/messages/index.d.ts +1 -0
- package/dist/types/messages/provenance.d.ts +85 -0
- package/dist/types/messages/toolResultTypes.d.ts +33 -0
- package/dist/types/tools/CallerCapabilities.d.ts +12 -0
- package/dist/types/tools/ProgrammaticCallerPolicy.d.ts +20 -0
- package/dist/types/tools/ToolNode.d.ts +4 -7
- package/dist/types/tools/local/resolveLocalExecutionTools.d.ts +4 -0
- package/dist/types/tools/ptcTimeout.d.ts +8 -0
- package/dist/types/tools/search/types.d.ts +15 -0
- package/dist/types/types/graph.d.ts +3 -1
- package/dist/types/types/tools.d.ts +13 -2
- package/package.json +1 -1
- package/src/agents/AgentContext.ts +109 -67
- package/src/agents/projection.ts +9 -1
- package/src/graphs/Graph.ts +56 -23
- package/src/graphs/MultiAgentGraph.ts +175 -33
- package/src/llm/openai/index.ts +43 -0
- package/src/messages/alternation.ts +217 -34
- package/src/messages/core.ts +358 -38
- package/src/messages/format.ts +958 -137
- package/src/messages/handoffCue.ts +7 -4
- package/src/messages/index.ts +1 -0
- package/src/messages/injected.ts +9 -6
- package/src/messages/provenance.ts +897 -0
- package/src/messages/prune.ts +28 -10
- package/src/messages/toolResultTypes.ts +1174 -0
- package/src/run.ts +9 -4
- package/src/tools/BashProgrammaticToolCalling.ts +46 -12
- package/src/tools/CallerCapabilities.ts +78 -0
- package/src/tools/ProgrammaticCallerPolicy.ts +97 -0
- package/src/tools/ProgrammaticToolCalling.ts +41 -7
- package/src/tools/ToolNode.ts +70 -52
- package/src/tools/cloudflare/CloudflareProgrammaticToolCalling.ts +24 -26
- package/src/tools/local/LocalProgrammaticToolCalling.ts +28 -23
- package/src/tools/local/resolveLocalExecutionTools.ts +132 -13
- package/src/tools/ptcTimeout.ts +6 -0
- package/src/tools/search/search.ts +25 -8
- package/src/tools/search/tool.ts +2 -0
- package/src/tools/search/types.ts +16 -0
- package/src/tools/subagent/SubagentExecutor.ts +8 -4
- package/src/types/graph.ts +3 -0
- package/src/types/tools.ts +14 -3
- package/src/utils/toolContent.ts +2 -2
package/src/messages/prune.ts
CHANGED
|
@@ -43,6 +43,28 @@ function sumTokenCounts(
|
|
|
43
43
|
return total;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
function appendItems<T>(target: T[], source: readonly T[]): void {
|
|
47
|
+
for (const item of source) {
|
|
48
|
+
target.push(item);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Prepends in stable order without turning a large array into call arguments. */
|
|
53
|
+
function prependItems<T>(target: T[], prefix: readonly T[]): void {
|
|
54
|
+
const prefixLength = prefix.length;
|
|
55
|
+
if (prefixLength === 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const originalLength = target.length;
|
|
59
|
+
target.length = prefixLength + originalLength;
|
|
60
|
+
for (let index = originalLength - 1; index >= 0; index--) {
|
|
61
|
+
target[prefixLength + index] = target[index];
|
|
62
|
+
}
|
|
63
|
+
for (let index = 0; index < prefixLength; index++) {
|
|
64
|
+
target[index] = prefix[index];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
46
68
|
/** Default fraction of the token budget reserved as headroom (5 %). */
|
|
47
69
|
export const DEFAULT_RESERVE_RATIO = 0.05;
|
|
48
70
|
|
|
@@ -953,7 +975,7 @@ export function getMessagesWithinTokenLimit({
|
|
|
953
975
|
prunedMemory.reverse();
|
|
954
976
|
|
|
955
977
|
if (messages.length > 0) {
|
|
956
|
-
prunedMemory
|
|
978
|
+
prependItems(prunedMemory, messages);
|
|
957
979
|
}
|
|
958
980
|
|
|
959
981
|
remainingContextTokens -= currentTokenCount;
|
|
@@ -1070,7 +1092,6 @@ export function getMessagesWithinTokenLimit({
|
|
|
1070
1092
|
if (startType != null && startType.length > 0 && newContext.length > 0) {
|
|
1071
1093
|
let requiredTypeIndex = -1;
|
|
1072
1094
|
|
|
1073
|
-
let totalTokens = 0;
|
|
1074
1095
|
for (let i = newContext.length - 1; i >= 0; i--) {
|
|
1075
1096
|
const currentType = newContext[i]?.getType() ?? '';
|
|
1076
1097
|
if (
|
|
@@ -1081,12 +1102,9 @@ export function getMessagesWithinTokenLimit({
|
|
|
1081
1102
|
requiredTypeIndex = i + 1;
|
|
1082
1103
|
break;
|
|
1083
1104
|
}
|
|
1084
|
-
const originalIndex = originalLength - 1 - i;
|
|
1085
|
-
totalTokens += indexTokenCountMap[originalIndex] ?? 0;
|
|
1086
1105
|
}
|
|
1087
1106
|
|
|
1088
1107
|
if (requiredTypeIndex > 0) {
|
|
1089
|
-
currentTokenCount -= totalTokens;
|
|
1090
1108
|
newContext = newContext.slice(0, requiredTypeIndex);
|
|
1091
1109
|
}
|
|
1092
1110
|
}
|
|
@@ -2753,7 +2771,7 @@ export function createPruneMessages(factoryParams: PruneMessagesFactoryParams) {
|
|
|
2753
2771
|
// tool results (otherwise the summary says "in progress" for a tool
|
|
2754
2772
|
// call that already completed, causing the model to repeat it).
|
|
2755
2773
|
if (droppedMessages.length > 0) {
|
|
2756
|
-
messagesToRefine
|
|
2774
|
+
appendItems(messagesToRefine, droppedMessages);
|
|
2757
2775
|
}
|
|
2758
2776
|
|
|
2759
2777
|
// ---------------------------------------------------------------
|
|
@@ -2828,9 +2846,9 @@ export function createPruneMessages(factoryParams: PruneMessagesFactoryParams) {
|
|
|
2828
2846
|
if (fadingRepaired.context.length > 0) {
|
|
2829
2847
|
context = fadingRepaired.context;
|
|
2830
2848
|
reclaimedTokens = fadingRepaired.reclaimedTokens;
|
|
2831
|
-
messagesToRefine
|
|
2849
|
+
appendItems(messagesToRefine, fadingRetry.messagesToRefine);
|
|
2832
2850
|
if (fadingRepaired.droppedMessages.length > 0) {
|
|
2833
|
-
messagesToRefine
|
|
2851
|
+
appendItems(messagesToRefine, fadingRepaired.droppedMessages);
|
|
2834
2852
|
}
|
|
2835
2853
|
|
|
2836
2854
|
factoryParams.log?.('debug', 'Fallback fading recovered context', {
|
|
@@ -2964,9 +2982,9 @@ export function createPruneMessages(factoryParams: PruneMessagesFactoryParams) {
|
|
|
2964
2982
|
|
|
2965
2983
|
context = repaired.context;
|
|
2966
2984
|
reclaimedTokens = repaired.reclaimedTokens;
|
|
2967
|
-
messagesToRefine
|
|
2985
|
+
appendItems(messagesToRefine, retryResult.messagesToRefine);
|
|
2968
2986
|
if (repaired.droppedMessages.length > 0) {
|
|
2969
|
-
messagesToRefine
|
|
2987
|
+
appendItems(messagesToRefine, repaired.droppedMessages);
|
|
2970
2988
|
}
|
|
2971
2989
|
|
|
2972
2990
|
factoryParams.log?.('debug', 'Emergency truncation retry result', {
|