@librechat/agents 3.6.11 → 3.6.12

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 (33) hide show
  1. package/dist/cjs/graphs/Graph.cjs +44 -116
  2. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  3. package/dist/cjs/llm/contextPressureMeter.cjs +132 -0
  4. package/dist/cjs/llm/contextPressureMeter.cjs.map +1 -0
  5. package/dist/cjs/llm/invoke.cjs +46 -75
  6. package/dist/cjs/llm/invoke.cjs.map +1 -1
  7. package/dist/cjs/llm/prepareProviderRequest.cjs +108 -0
  8. package/dist/cjs/llm/prepareProviderRequest.cjs.map +1 -0
  9. package/dist/cjs/main.cjs +2 -0
  10. package/dist/cjs/messages/content.cjs +5 -4
  11. package/dist/cjs/messages/content.cjs.map +1 -1
  12. package/dist/esm/graphs/Graph.mjs +47 -119
  13. package/dist/esm/graphs/Graph.mjs.map +1 -1
  14. package/dist/esm/llm/contextPressureMeter.mjs +132 -0
  15. package/dist/esm/llm/contextPressureMeter.mjs.map +1 -0
  16. package/dist/esm/llm/invoke.mjs +48 -75
  17. package/dist/esm/llm/invoke.mjs.map +1 -1
  18. package/dist/esm/llm/prepareProviderRequest.mjs +105 -0
  19. package/dist/esm/llm/prepareProviderRequest.mjs.map +1 -0
  20. package/dist/esm/main.mjs +2 -1
  21. package/dist/esm/messages/content.mjs +5 -4
  22. package/dist/esm/messages/content.mjs.map +1 -1
  23. package/dist/types/index.d.ts +2 -0
  24. package/dist/types/llm/contextPressureMeter.d.ts +30 -0
  25. package/dist/types/llm/invoke.d.ts +31 -33
  26. package/dist/types/llm/prepareProviderRequest.d.ts +55 -0
  27. package/package.json +1 -1
  28. package/src/graphs/Graph.ts +69 -276
  29. package/src/index.ts +8 -0
  30. package/src/llm/contextPressureMeter.ts +284 -0
  31. package/src/llm/invoke.ts +136 -296
  32. package/src/llm/prepareProviderRequest.ts +357 -0
  33. package/src/messages/content.ts +3 -3
@@ -0,0 +1,132 @@
1
+ const require_tokens = require("../utils/tokens.cjs");
2
+ require("../messages/prune.cjs");
3
+ const require_format = require("../messages/format.cjs");
4
+ require("../messages/index.cjs");
5
+ require("../utils/index.cjs");
6
+ let _langchain_core_messages = require("@langchain/core/messages");
7
+ //#region src/llm/contextPressureMeter.ts
8
+ function getProviderMessageOriginKey(message) {
9
+ const type = message.getType();
10
+ if (message instanceof _langchain_core_messages.ToolMessage && typeof message.tool_call_id === "string" && message.tool_call_id.length > 0) return `tool:call:${message.tool_call_id}`;
11
+ if (typeof message.id === "string" && message.id.length > 0) return `${type}:id:${message.id}`;
12
+ }
13
+ function createContextPressureMeter({ tokenCounter, sourceMessages, retainedMessages, indexTokenCountMap, contextUsage, instructionTokens, calibrationRatio }) {
14
+ const tokenCounts = /* @__PURE__ */ new WeakMap();
15
+ const origins = /* @__PURE__ */ new WeakMap();
16
+ const baselineAttributions = /* @__PURE__ */ new Map();
17
+ let baseline;
18
+ let baselineWeights;
19
+ let totalBaselineWeight = 0;
20
+ const count = (message) => {
21
+ const cached = tokenCounts.get(message);
22
+ if (cached != null) return cached;
23
+ const tokens = tokenCounter?.(message) ?? 0;
24
+ tokenCounts.set(message, tokens);
25
+ return tokens;
26
+ };
27
+ if (contextUsage != null && tokenCounter != null) {
28
+ const sourceIndices = /* @__PURE__ */ new WeakMap();
29
+ for (let i = 0; i < sourceMessages.length; i++) sourceIndices.set(sourceMessages[i], i);
30
+ baseline = retainedMessages.map((message, index) => {
31
+ const rawTokens = count(message);
32
+ const sourceIndex = sourceIndices.get(message);
33
+ const indexedTokens = sourceIndex != null ? indexTokenCountMap[sourceIndex] : void 0;
34
+ const accountingWeight = indexedTokens != null && Number.isFinite(indexedTokens) && indexedTokens >= 0 ? indexedTokens : rawTokens;
35
+ if (!origins.has(message)) origins.set(message, index);
36
+ return {
37
+ rawTokens,
38
+ accountingWeight
39
+ };
40
+ });
41
+ baselineWeights = {};
42
+ for (let i = 0; i < baseline.length; i++) {
43
+ baselineWeights[i] = baseline[i].accountingWeight;
44
+ totalBaselineWeight += baseline[i].accountingWeight;
45
+ }
46
+ }
47
+ const trackClone = (source, clone) => {
48
+ const origin = origins.get(source);
49
+ if (origin != null && !origins.has(clone)) origins.set(clone, origin);
50
+ };
51
+ const trackProjection = (before, after) => {
52
+ if (baseline == null || before === after) return after;
53
+ if (before.length === after.length) {
54
+ for (let i = 0; i < after.length; i++) if (before[i].getType() === after[i].getType() && !require_format.isSyntheticProviderContextMessage(after[i])) trackClone(before[i], after[i]);
55
+ return after;
56
+ }
57
+ const keyedOrigins = /* @__PURE__ */ new Map();
58
+ for (const message of before) {
59
+ const origin = origins.get(message);
60
+ const key = getProviderMessageOriginKey(message);
61
+ if (origin == null || key == null) continue;
62
+ keyedOrigins.set(key, keyedOrigins.has(key) ? null : origin);
63
+ }
64
+ for (const message of after) {
65
+ if (origins.has(message) || require_format.isSyntheticProviderContextMessage(message)) continue;
66
+ const key = getProviderMessageOriginKey(message);
67
+ const origin = key != null ? keyedOrigins.get(key) : void 0;
68
+ if (origin != null) origins.set(message, origin);
69
+ }
70
+ return after;
71
+ };
72
+ const measure = (messages, options) => {
73
+ const contextBudget = options?.contextBudget ?? contextUsage?.contextBudget;
74
+ const forceRawRecount = options?.forceRawRecount === true;
75
+ const effectiveInstructionTokens = contextUsage?.effectiveInstructionTokens ?? (forceRawRecount ? instructionTokens : void 0);
76
+ if (tokenCounter == null || contextBudget == null || effectiveInstructionTokens == null) return { fits: true };
77
+ const availableMessageTokens = Math.max(0, contextBudget - effectiveInstructionTokens);
78
+ let usageRatio = calibrationRatio > 0 ? calibrationRatio : 1;
79
+ if (contextUsage?.calibrationRatio != null && contextUsage.calibrationRatio > 0) usageRatio = contextUsage.calibrationRatio;
80
+ if (forceRawRecount) usageRatio = Math.max(1, usageRatio);
81
+ const baselineRemaining = contextUsage?.remainingContextTokens;
82
+ const accountedMessageTokens = !forceRawRecount && baseline != null && baselineRemaining != null && Number.isFinite(baselineRemaining) ? availableMessageTokens - Math.min(availableMessageTokens, Math.max(0, baselineRemaining)) : void 0;
83
+ let projectedMessageTokens;
84
+ if (accountedMessageTokens != null && baseline != null && baselineWeights != null) {
85
+ let attribution = baselineAttributions.get(availableMessageTokens);
86
+ if (attribution == null) {
87
+ const replyPrimerTokens = Math.round(3 * usageRatio);
88
+ const attributableTokens = totalBaselineWeight > 0 ? Math.min(Math.max(0, accountedMessageTokens - replyPrimerTokens), Math.round(totalBaselineWeight * usageRatio)) : 0;
89
+ const apportionedTokens = totalBaselineWeight > 0 ? require_tokens.apportionTokenCounts(baselineWeights, attributableTokens / totalBaselineWeight, attributableTokens) : {};
90
+ attribution = {
91
+ attributedByOrigin: baseline.map((_, origin) => apportionedTokens[origin] || 0),
92
+ projectedBaseTokens: Math.max(replyPrimerTokens, accountedMessageTokens - attributableTokens)
93
+ };
94
+ baselineAttributions.set(availableMessageTokens, attribution);
95
+ }
96
+ projectedMessageTokens = attribution.projectedBaseTokens;
97
+ let newRawTokens = 0;
98
+ const usedOrigins = /* @__PURE__ */ new Set();
99
+ for (const message of messages) {
100
+ const rawTokens = count(message);
101
+ const origin = origins.get(message);
102
+ if (origin == null || usedOrigins.has(origin)) {
103
+ newRawTokens += rawTokens;
104
+ continue;
105
+ }
106
+ usedOrigins.add(origin);
107
+ projectedMessageTokens += Math.max(0, attribution.attributedByOrigin[origin] + Math.round((rawTokens - baseline[origin].rawTokens) * usageRatio));
108
+ }
109
+ projectedMessageTokens += Math.round(newRawTokens * usageRatio);
110
+ } else {
111
+ let rawTokens = 3;
112
+ for (const message of messages) rawTokens += count(message);
113
+ projectedMessageTokens = Math.round(rawTokens * usageRatio);
114
+ }
115
+ return {
116
+ fits: projectedMessageTokens <= availableMessageTokens,
117
+ projectedMessageTokens,
118
+ availableMessageTokens,
119
+ contextBudget,
120
+ effectiveInstructionTokens
121
+ };
122
+ };
123
+ return {
124
+ trackProjection,
125
+ trackClone,
126
+ measure
127
+ };
128
+ }
129
+ //#endregion
130
+ exports.createContextPressureMeter = createContextPressureMeter;
131
+
132
+ //# sourceMappingURL=contextPressureMeter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextPressureMeter.cjs","names":["ToolMessage","isSyntheticProviderContextMessage","apportionTokenCounts"],"sources":["../../../src/llm/contextPressureMeter.ts"],"mappings":"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"}
@@ -1,17 +1,13 @@
1
1
  require("../common/enum.cjs");
2
2
  require("../common/index.cjs");
3
3
  const require_callbacks = require("../utils/callbacks.cjs");
4
- const require_cache = require("../messages/cache.cjs");
5
4
  const require_core = require("../messages/core.cjs");
6
5
  const require_events = require("../utils/events.cjs");
7
- const require_alternation = require("../messages/alternation.cjs");
8
- const require_handoffCue = require("../messages/handoffCue.cjs");
9
6
  require("../messages/index.cjs");
10
- const require_llm = require("../utils/llm.cjs");
11
7
  const require_streamLimits = require("./streamLimits.cjs");
12
- const require_toolOutputReferences = require("../tools/toolOutputReferences.cjs");
13
8
  const require_stream = require("../stream.cjs");
14
9
  const require_errors = require("../utils/errors.cjs");
10
+ const require_prepareProviderRequest = require("./prepareProviderRequest.cjs");
15
11
  const require_truncation = require("./truncation.cjs");
16
12
  const require_providers = require("./providers.cjs");
17
13
  const require_preempt = require("./preempt.cjs");
@@ -22,47 +18,6 @@ let _langchain_core_callbacks_manager = require("@langchain/core/callbacks/manag
22
18
  let _langchain_core_utils_stream = require("@langchain/core/utils/stream");
23
19
  //#region src/llm/invoke.ts
24
20
  let streamLimitAttemptSeq = 0;
25
- function usesNativeOpenAIResponses(model, provider, callOptions) {
26
- if (!require_llm.isOpenAILike(provider)) return false;
27
- let candidate = model;
28
- let effectiveCallOptions = callOptions;
29
- const seen = /* @__PURE__ */ new Set();
30
- for (let depth = 0; depth < 20; depth++) {
31
- if (candidate == null || typeof candidate !== "object") return false;
32
- if (seen.has(candidate)) return false;
33
- seen.add(candidate);
34
- const runnable = candidate;
35
- try {
36
- if (runnable.defaultOptions != null && typeof runnable.defaultOptions === "object" && !Array.isArray(runnable.defaultOptions) && effectiveCallOptions != null && typeof effectiveCallOptions === "object" && !Array.isArray(effectiveCallOptions)) effectiveCallOptions = {
37
- ...runnable.defaultOptions,
38
- ...effectiveCallOptions
39
- };
40
- else if (effectiveCallOptions == null) effectiveCallOptions = runnable.defaultOptions;
41
- if (runnable._useResponsesApi?.(effectiveCallOptions) === true || runnable._useResponsesApi?.(void 0) === true) return true;
42
- } catch {}
43
- if (typeof runnable.constructor?.name === "string" && runnable.constructor.name.includes("Responses")) return true;
44
- if (runnable.last != null && typeof runnable.last === "object") {
45
- candidate = runnable.last;
46
- continue;
47
- }
48
- if (runnable.bound != null && typeof runnable.bound === "object") {
49
- candidate = runnable.bound;
50
- continue;
51
- }
52
- return false;
53
- }
54
- return false;
55
- }
56
- function projectMessagesForProvider({ model, messages, provider, maxToolResultChars, callOptions }) {
57
- const nativeOpenAIResponses = usesNativeOpenAIResponses(model, provider, callOptions);
58
- const providerInputMessages = require_core.projectToolStreamContentForProvider(messages, nativeOpenAIResponses ? "native" : "fallback", maxToolResultChars);
59
- if (nativeOpenAIResponses) return require_core.projectOpenAIResponsesToolMessageContent(require_cache.stripAnthropicCacheControl(require_cache.stripBedrockCacheControl(providerInputMessages)), maxToolResultChars);
60
- if (provider === "openrouter") return require_core.projectComputerCallOutputsToText(require_core.projectOpenRouterToolMessageContent(require_cache.stripBedrockCacheControl(providerInputMessages), maxToolResultChars));
61
- if (require_llm.isOpenAILike(provider)) return require_core.projectComputerCallOutputsToText(require_core.projectOpenAIChatToolMessageContent(require_cache.stripAnthropicCacheControl(require_cache.stripBedrockCacheControl(providerInputMessages)), maxToolResultChars));
62
- if (provider === "anthropic") return require_core.projectComputerCallOutputsToText(require_core.projectSingleTextToolOutputsToText(require_cache.stripBedrockCacheControl(providerInputMessages), maxToolResultChars));
63
- if (provider === "bedrock") return require_cache.stripAnthropicCacheControl(require_core.projectComputerCallOutputsToText(require_core.projectCacheControlledToolOutputsToText(providerInputMessages, maxToolResultChars)));
64
- return require_core.projectComputerCallOutputsToText(require_core.projectStructuredToolOutputsToText(require_core.projectSingleTextToolOutputsToText(require_cache.stripAnthropicCacheControl(require_cache.stripBedrockCacheControl(providerInputMessages)), maxToolResultChars), maxToolResultChars));
65
- }
66
21
  function getRegisteredDefaultChatStreamHandler(context) {
67
22
  const handler = context?.handlerRegistry?.getHandler("on_chat_model_stream");
68
23
  return require_stream.dispatchesChatModelStream(handler) ? handler : void 0;
@@ -161,16 +116,6 @@ function collectModelCallbackSources(model) {
161
116
  }
162
117
  return sources;
163
118
  }
164
- function resolveServingModelId(model) {
165
- const seen = /* @__PURE__ */ new Set();
166
- let current = model;
167
- while (current != null && typeof current === "object" && !seen.has(current)) {
168
- seen.add(current);
169
- const wrapper = current;
170
- if (typeof wrapper.model === "string" && wrapper.model !== "") return wrapper.model;
171
- current = wrapper.bound ?? wrapper.last ?? (Array.isArray(wrapper.steps) ? wrapper.steps[wrapper.steps.length - 1] : void 0);
172
- }
173
- }
174
119
  async function endSealedModelRun(context, chunk, prompt, llmRunId, config, model) {
175
120
  const metadata = config?.metadata;
176
121
  synthesizeSealedUsage(context, chunk, prompt, metadata);
@@ -202,12 +147,30 @@ function appendStreamChunk({ current, next, provider }) {
202
147
  provider
203
148
  }));
204
149
  }
150
+ function resolveAttemptProvider(params) {
151
+ if (params.request != null) return params.request.provider;
152
+ return params.provider;
153
+ }
154
+ function resolveAttemptRequest(params, config) {
155
+ if (params.request != null) {
156
+ require_prepareProviderRequest.assertPreparedProviderRequestFor(params.request, params.request.model, params.request.provider, config);
157
+ return params.request;
158
+ }
159
+ return require_prepareProviderRequest.prepareProviderRequest({
160
+ model: params.model,
161
+ messages: params.messages,
162
+ provider: params.provider,
163
+ context: params.context,
164
+ config
165
+ });
166
+ }
205
167
  async function attemptInvoke(params, config) {
168
+ const provider = resolveAttemptProvider(params);
206
169
  const stampedConfig = {
207
170
  ...config,
208
171
  metadata: {
209
172
  ...config?.metadata ?? {},
210
- ["__invoked_provider"]: params.provider,
173
+ ["__invoked_provider"]: provider,
211
174
  [require_streamLimits.STREAM_LIMIT_ATTEMPT_KEY]: ++streamLimitAttemptSeq
212
175
  }
213
176
  };
@@ -216,24 +179,17 @@ async function attemptInvoke(params, config) {
216
179
  const generationKey = leaseTarget != null ? require_streamLimits.resolveGenerationKey(stampedConfig.metadata) : void 0;
217
180
  if (leaseTarget != null && generationKey != null) require_streamLimits.registerActiveStreamLimitGeneration(leaseTarget, generationKey);
218
181
  try {
219
- return await attemptInvokeBody(params, stampedConfig);
182
+ return await attemptInvokeBody({
183
+ request: resolveAttemptRequest(params, stampedConfig),
184
+ context: params.context,
185
+ onChunk: params.onChunk
186
+ }, stampedConfig);
220
187
  } finally {
221
188
  if (leaseTarget != null && generationKey != null) require_streamLimits.releaseStreamLimitGeneration(leaseTarget, generationKey);
222
189
  }
223
190
  }
224
- async function attemptInvokeBody({ model, messages, provider, context, onChunk }, config) {
225
- const invocationMessages = projectMessagesForProvider({
226
- model,
227
- messages,
228
- provider,
229
- callOptions: config
230
- });
231
- const registry = context?.getOrCreateToolOutputRegistry();
232
- const runId = config.configurable?.run_id;
233
- const annotated = require_toolOutputReferences.annotateMessagesForLLM(invocationMessages, registry, runId);
234
- const isRunProduced = context?.isRunProducedMessage;
235
- const cued = require_llm.isAnthropicLike(provider, { model: resolveServingModelId(model) }) ? require_handoffCue.appendPredecessorHandoffCue(annotated, isRunProduced == null ? void 0 : (message) => isRunProduced.call(context, message)) : require_handoffCue.removePredecessorHandoffCue(annotated);
236
- const messagesForProvider = require_alternation.strictAlternationProviders.has(provider) ? require_alternation.coalesceAdjacentUserTurns(cued) : cued;
191
+ async function attemptInvokeBody({ request, context, onChunk }, config) {
192
+ const { model, messages: messagesForProvider, provider } = request;
237
193
  if (model.stream) {
238
194
  let sealedRunId;
239
195
  const streamConfig = context?.preemption == null ? config : {
@@ -360,7 +316,7 @@ function extractClientOptionsModel(clientOptions) {
360
316
  if (typeof options?.model === "string" && options.model !== "") return options.model;
361
317
  if (typeof options?.modelName === "string" && options.modelName !== "") return options.modelName;
362
318
  }
363
- async function tryFallbackProviders({ fallbacks, tools, messages, config, primaryError, context, onChunk, streamLimitState, overflowContext, prepareProviderMessages }) {
319
+ async function tryFallbackProviders({ fallbacks, tools, messages, config, primaryError, context, onChunk, streamLimitState, overflowContext, prepareProviderRequest: prepareFallbackRequest, prepareProviderMessages }) {
364
320
  const isOverflow = (error, contextOverride = overflowContext) => require_errors.getContextOverflowInfo(error, contextOverride) != null;
365
321
  let lastError = primaryError;
366
322
  const overflowCandidates = [];
@@ -379,7 +335,18 @@ async function tryFallbackProviders({ fallbacks, tools, messages, config, primar
379
335
  ["__invoked_model"]: fbModelName
380
336
  }
381
337
  };
382
- const fallbackMessages = await prepareProviderMessages?.({
338
+ const preparationInput = {
339
+ model: fbModel,
340
+ messages,
341
+ provider: fb.provider,
342
+ clientOptions: fb.clientOptions,
343
+ maxContextTokens: fb.maxContextTokens,
344
+ config: fbConfig
345
+ };
346
+ const preparedRequest = await prepareFallbackRequest?.(preparationInput);
347
+ if (preparedRequest != null) require_prepareProviderRequest.assertPreparedProviderRequestFor(preparedRequest, fbModel, fb.provider, fbConfig);
348
+ let fallbackMessages = messages;
349
+ if (preparedRequest == null) fallbackMessages = await prepareProviderMessages?.({
383
350
  model: fbModel,
384
351
  messages,
385
352
  provider: fb.provider,
@@ -388,6 +355,12 @@ async function tryFallbackProviders({ fallbacks, tools, messages, config, primar
388
355
  config: fbConfig
389
356
  }) ?? messages;
390
357
  if (config?.signal?.aborted === true && config.signal.reason instanceof require_streamLimits.StreamLimitExceededError) throw config.signal.reason;
358
+ if (preparedRequest != null) return await attemptInvoke({
359
+ request: preparedRequest,
360
+ context,
361
+ onChunk,
362
+ streamLimitState
363
+ }, fbConfig);
391
364
  return await attemptInvoke({
392
365
  model: fbModel,
393
366
  messages: fallbackMessages,
@@ -426,8 +399,6 @@ async function tryFallbackProviders({ fallbacks, tools, messages, config, primar
426
399
  exports.attemptInvoke = attemptInvoke;
427
400
  exports.getFallbackErrorContext = getFallbackErrorContext;
428
401
  exports.getFallbackOverflowCandidates = getFallbackOverflowCandidates;
429
- exports.projectMessagesForProvider = projectMessagesForProvider;
430
- exports.resolveServingModelId = resolveServingModelId;
431
402
  exports.tryFallbackProviders = tryFallbackProviders;
432
403
 
433
404
  //# sourceMappingURL=invoke.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.cjs","names":["isOpenAILike","projectToolStreamContentForProvider","projectOpenAIResponsesToolMessageContent","stripAnthropicCacheControl","stripBedrockCacheControl","projectComputerCallOutputsToText","projectOpenRouterToolMessageContent","projectOpenAIChatToolMessageContent","projectSingleTextToolOutputsToText","projectCacheControlledToolOutputsToText","projectStructuredToolOutputsToText","dispatchesChatModelStream","AIMessageChunk","CallbackManager","CallbackManagerForLLMRun","safeDispatchCustomEvent","STREAM_LIMIT_ATTEMPT_KEY","streamLimitAccountingEnabled","resolveGenerationKey","annotateMessagesForLLM","isAnthropicLike","appendPredecessorHandoffCue","removePredecessorHandoffCue","strictAlternationProviders","coalesceAdjacentUserTurns","appendCallbacks","StreamLimitExceededError","ChatModelStreamHandler","canSealPreempt","STREAM_LIMIT_REDISPATCH_KEY","manualToolStreamProviders","modifyDeltaProperties","getContextOverflowInfo","initializeModel"],"sources":["../../../src/llm/invoke.ts"],"mappings":"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"}
1
+ {"version":3,"file":"invoke.cjs","names":["dispatchesChatModelStream","AIMessageChunk","CallbackManager","CallbackManagerForLLMRun","safeDispatchCustomEvent","prepareProviderRequest","STREAM_LIMIT_ATTEMPT_KEY","streamLimitAccountingEnabled","resolveGenerationKey","appendCallbacks","StreamLimitExceededError","ChatModelStreamHandler","canSealPreempt","STREAM_LIMIT_REDISPATCH_KEY","manualToolStreamProviders","modifyDeltaProperties","getContextOverflowInfo","initializeModel"],"sources":["../../../src/llm/invoke.ts"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ require("../common/enum.cjs");
2
+ require("../common/index.cjs");
3
+ const require_cache = require("../messages/cache.cjs");
4
+ const require_core = require("../messages/core.cjs");
5
+ const require_alternation = require("../messages/alternation.cjs");
6
+ const require_handoffCue = require("../messages/handoffCue.cjs");
7
+ require("../messages/index.cjs");
8
+ const require_llm = require("../utils/llm.cjs");
9
+ const require_toolOutputReferences = require("../tools/toolOutputReferences.cjs");
10
+ //#region src/llm/prepareProviderRequest.ts
11
+ const preparedProviderRequestBrand = Symbol("PreparedProviderRequest");
12
+ function usesNativeOpenAIResponses(model, provider, callOptions) {
13
+ if (!require_llm.isOpenAILike(provider)) return false;
14
+ let candidate = model;
15
+ let effectiveCallOptions = callOptions;
16
+ const seen = /* @__PURE__ */ new Set();
17
+ for (let depth = 0; depth < 20; depth++) {
18
+ if (candidate == null || typeof candidate !== "object") return false;
19
+ if (seen.has(candidate)) return false;
20
+ seen.add(candidate);
21
+ const runnable = candidate;
22
+ try {
23
+ if (runnable.defaultOptions != null && typeof runnable.defaultOptions === "object" && !Array.isArray(runnable.defaultOptions) && effectiveCallOptions != null && typeof effectiveCallOptions === "object" && !Array.isArray(effectiveCallOptions)) effectiveCallOptions = {
24
+ ...runnable.defaultOptions,
25
+ ...effectiveCallOptions
26
+ };
27
+ else if (effectiveCallOptions == null) effectiveCallOptions = runnable.defaultOptions;
28
+ if (runnable._useResponsesApi?.(effectiveCallOptions) === true || runnable._useResponsesApi?.(void 0) === true) return true;
29
+ } catch {}
30
+ if (typeof runnable.constructor?.name === "string" && runnable.constructor.name.includes("Responses")) return true;
31
+ if (runnable.last != null && typeof runnable.last === "object") {
32
+ candidate = runnable.last;
33
+ continue;
34
+ }
35
+ if (runnable.bound != null && typeof runnable.bound === "object") {
36
+ candidate = runnable.bound;
37
+ continue;
38
+ }
39
+ return false;
40
+ }
41
+ return false;
42
+ }
43
+ function resolveProviderMessageProjectionMode(model, provider, callOptions) {
44
+ return usesNativeOpenAIResponses(model, provider, callOptions) ? "openai-responses" : "chat-messages";
45
+ }
46
+ function projectMessagesForProviderMode({ messages, provider, maxToolResultChars }, projectionMode) {
47
+ const nativeOpenAIResponses = projectionMode === "openai-responses";
48
+ const providerInputMessages = require_core.projectToolStreamContentForProvider(messages, nativeOpenAIResponses ? "native" : "fallback", maxToolResultChars);
49
+ if (nativeOpenAIResponses) return require_core.projectOpenAIResponsesToolMessageContent(require_cache.stripAnthropicCacheControl(require_cache.stripBedrockCacheControl(providerInputMessages)), maxToolResultChars);
50
+ if (provider === "openrouter") return require_core.projectComputerCallOutputsToText(require_core.projectOpenRouterToolMessageContent(require_cache.stripBedrockCacheControl(providerInputMessages), maxToolResultChars));
51
+ if (require_llm.isOpenAILike(provider)) return require_core.projectComputerCallOutputsToText(require_core.projectOpenAIChatToolMessageContent(require_cache.stripAnthropicCacheControl(require_cache.stripBedrockCacheControl(providerInputMessages)), maxToolResultChars));
52
+ if (provider === "anthropic") return require_core.projectComputerCallOutputsToText(require_core.projectSingleTextToolOutputsToText(require_cache.stripBedrockCacheControl(providerInputMessages), maxToolResultChars));
53
+ if (provider === "bedrock") return require_cache.stripAnthropicCacheControl(require_core.projectComputerCallOutputsToText(require_core.projectCacheControlledToolOutputsToText(providerInputMessages, maxToolResultChars)));
54
+ return require_core.projectComputerCallOutputsToText(require_core.projectStructuredToolOutputsToText(require_core.projectSingleTextToolOutputsToText(require_cache.stripAnthropicCacheControl(require_cache.stripBedrockCacheControl(providerInputMessages)), maxToolResultChars), maxToolResultChars));
55
+ }
56
+ function resolveServingModelId(model) {
57
+ const seen = /* @__PURE__ */ new Set();
58
+ let current = model;
59
+ while (current != null && typeof current === "object" && !seen.has(current)) {
60
+ seen.add(current);
61
+ const wrapper = current;
62
+ if (typeof wrapper.model === "string" && wrapper.model !== "") return wrapper.model;
63
+ current = wrapper.bound ?? wrapper.last ?? (Array.isArray(wrapper.steps) ? wrapper.steps[wrapper.steps.length - 1] : void 0);
64
+ }
65
+ }
66
+ function prepareProviderRequest({ model, messages, provider, context, config, maxToolResultChars, measure }) {
67
+ const projectionMode = resolveProviderMessageProjectionMode(model, provider, config);
68
+ const projected = projectMessagesForProviderMode({
69
+ model,
70
+ messages,
71
+ provider,
72
+ maxToolResultChars,
73
+ callOptions: config
74
+ }, projectionMode);
75
+ const registry = context?.getOrCreateToolOutputRegistry?.();
76
+ const runId = config?.configurable?.run_id;
77
+ const annotated = require_toolOutputReferences.annotateMessagesForLLM(projected, registry, runId);
78
+ const isRunProduced = context?.isRunProducedMessage;
79
+ const modelId = resolveServingModelId(model);
80
+ const cued = require_llm.isAnthropicLike(provider, { model: modelId }) ? require_handoffCue.appendPredecessorHandoffCue(annotated, isRunProduced == null ? void 0 : (message) => isRunProduced.call(context, message)) : require_handoffCue.removePredecessorHandoffCue(annotated);
81
+ const preparedMessages = require_alternation.strictAlternationProviders.has(provider) ? require_alternation.coalesceAdjacentUserTurns(cued) : cued;
82
+ const request = {
83
+ model,
84
+ modelId,
85
+ provider,
86
+ projectionMode,
87
+ messages: preparedMessages,
88
+ measurement: measure?.(preparedMessages)
89
+ };
90
+ Object.defineProperty(request, preparedProviderRequestBrand, {
91
+ value: true,
92
+ enumerable: false
93
+ });
94
+ return Object.freeze(request);
95
+ }
96
+ function assertPreparedProviderRequestFor(request, model, provider, config) {
97
+ if (!Object.prototype.hasOwnProperty.call(request, preparedProviderRequestBrand)) throw new Error("Invalid prepared provider request");
98
+ if (request.model !== model) throw new Error("Prepared provider request does not match serving model");
99
+ if (request.provider !== provider) throw new Error("Prepared provider request does not match serving provider");
100
+ if (request.projectionMode !== resolveProviderMessageProjectionMode(model, provider, config)) throw new Error("Prepared provider request does not match invocation options");
101
+ }
102
+ //#endregion
103
+ exports.assertPreparedProviderRequestFor = assertPreparedProviderRequestFor;
104
+ exports.prepareProviderRequest = prepareProviderRequest;
105
+ exports.resolveServingModelId = resolveServingModelId;
106
+ exports.usesNativeOpenAIResponses = usesNativeOpenAIResponses;
107
+
108
+ //# sourceMappingURL=prepareProviderRequest.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareProviderRequest.cjs","names":["isOpenAILike","projectToolStreamContentForProvider","projectOpenAIResponsesToolMessageContent","stripAnthropicCacheControl","stripBedrockCacheControl","projectComputerCallOutputsToText","projectOpenRouterToolMessageContent","projectOpenAIChatToolMessageContent","projectSingleTextToolOutputsToText","projectCacheControlledToolOutputsToText","projectStructuredToolOutputsToText","annotateMessagesForLLM","isAnthropicLike","appendPredecessorHandoffCue","removePredecessorHandoffCue","strictAlternationProviders","coalesceAdjacentUserTurns"],"sources":["../../../src/llm/prepareProviderRequest.ts"],"mappings":"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"}
package/dist/cjs/main.cjs CHANGED
@@ -37,6 +37,7 @@ const require_run = require("./utils/run.cjs");
37
37
  const require_schema = require("./utils/schema.cjs");
38
38
  const require_errors = require("./utils/errors.cjs");
39
39
  require("./utils/index.cjs");
40
+ const require_prepareProviderRequest = require("./llm/prepareProviderRequest.cjs");
40
41
  const require_smoother = require("./llm/stream/smoother.cjs");
41
42
  const require_index$3 = require("./llm/mistral/index.cjs");
42
43
  const require_index$4 = require("./llm/openai/index.cjs");
@@ -675,6 +676,7 @@ exports.partitionAndMarkAnthropicToolCache = require_anthropicToolCache.partitio
675
676
  exports.performLocalSearch = require_ToolSearch.performLocalSearch;
676
677
  exports.preFlightTruncateToolCallInputs = require_prune.preFlightTruncateToolCallInputs;
677
678
  exports.preFlightTruncateToolResults = require_prune.preFlightTruncateToolResults;
679
+ exports.prepareProviderRequest = require_prepareProviderRequest.prepareProviderRequest;
678
680
  exports.projectAgentContextUsage = require_projection.projectAgentContextUsage;
679
681
  exports.projectAnthropicArtifactContent = require_core.projectAnthropicArtifactContent;
680
682
  exports.projectArtifactPayload = require_core.projectArtifactPayload;
@@ -1,5 +1,6 @@
1
1
  require("../common/enum.cjs");
2
2
  require("../common/index.cjs");
3
+ const require_cache = require("./cache.cjs");
3
4
  //#region src/messages/content.ts
4
5
  const isLegacyConvertible = (message) => {
5
6
  const messageType = message.getType();
@@ -14,11 +15,11 @@ const formatContentStrings = (payload) => {
14
15
  result.push(message);
15
16
  continue;
16
17
  }
17
- message.content = message.content.reduce((acc, curr) => {
18
- if (curr.type === "text") return `${acc}${curr["text"] || ""}\n`;
18
+ const content = message.content.reduce((acc, curr) => {
19
+ if (curr.type === "text") return `${acc}${curr["text"] ?? ""}\n`;
19
20
  return acc;
20
- }, "").trim();
21
- result.push(message);
21
+ }, "");
22
+ result.push(require_cache.cloneMessage(message, content.trim()));
22
23
  }
23
24
  return result;
24
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"content.cjs","names":[],"sources":["../../../src/messages/content.ts"],"mappings":";;;AAUA,MAAa,uBAAuB,YAAkC;CACpE,MAAM,cAAc,QAAQ,QAAQ;CAGpC,IAAI,EADF,gBAAgB,WAAW,gBAAgB,QAAQ,gBAAgB,WAEnE,OAAO;CAET,IAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAChC,OAAO;CAET,OAAO,QAAQ,QAAQ,OAAO,UAAU,MAAM,SAAA,MAA0B;AAC1E;AAOA,MAAa,wBACX,YACuB;CAEvB,MAAM,SAA6B,CAAC;CAEpC,KAAK,MAAM,WAAW,SAAS;EAC7B,IAAI,CAAC,oBAAoB,OAAO,GAAG;GACjC,OAAO,KAAK,OAAO;GACnB;EACF;EAWA,QAAQ,UARO,QAAQ,QACA,QAAQ,KAAK,SAAS;GAC3C,IAAI,KAAK,SAAA,QACP,OAAO,GAAG,MAAM,KAAA,WAA2B,GAAG;GAEhD,OAAO;EACT,GAAG,EAEqB,CAAC,CAAC,KAAK;EAC/B,OAAO,KAAK,OAAO;CACrB;CAEA,OAAO;AACT"}
1
+ {"version":3,"file":"content.cjs","names":["cloneMessage"],"sources":["../../../src/messages/content.ts"],"mappings":";;;;AAWA,MAAa,uBAAuB,YAAkC;CACpE,MAAM,cAAc,QAAQ,QAAQ;CAGpC,IAAI,EADF,gBAAgB,WAAW,gBAAgB,QAAQ,gBAAgB,WAEnE,OAAO;CAET,IAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAChC,OAAO;CAET,OAAO,QAAQ,QAAQ,OAAO,UAAU,MAAM,SAAA,MAA0B;AAC1E;AAOA,MAAa,wBACX,YACuB;CAEvB,MAAM,SAA6B,CAAC;CAEpC,KAAK,MAAM,WAAW,SAAS;EAC7B,IAAI,CAAC,oBAAoB,OAAO,GAAG;GACjC,OAAO,KAAK,OAAO;GACnB;EACF;EAIA,MAAM,UADS,QAAQ,QACA,QAAQ,KAAK,SAAS;GAC3C,IAAI,KAAK,SAAA,QACP,OAAO,GAAG,MAAM,KAAA,WAA2B,GAAG;GAEhD,OAAO;EACT,GAAG,EAAE;EAEL,OAAO,KAAKA,cAAAA,aAAa,SAAS,QAAQ,KAAK,CAAC,CAAC;CACnD;CAEA,OAAO;AACT"}