@librechat/agents 2.1.2 → 2.1.4

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 (49) hide show
  1. package/dist/cjs/common/enum.cjs +1 -0
  2. package/dist/cjs/common/enum.cjs.map +1 -1
  3. package/dist/cjs/graphs/Graph.cjs +11 -0
  4. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  5. package/dist/cjs/llm/anthropic/llm.cjs +46 -16
  6. package/dist/cjs/llm/anthropic/llm.cjs.map +1 -1
  7. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +25 -1
  8. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  9. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +93 -31
  10. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  11. package/dist/cjs/splitStream.cjs +8 -2
  12. package/dist/cjs/splitStream.cjs.map +1 -1
  13. package/dist/cjs/stream.cjs +13 -2
  14. package/dist/cjs/stream.cjs.map +1 -1
  15. package/dist/esm/common/enum.mjs +1 -0
  16. package/dist/esm/common/enum.mjs.map +1 -1
  17. package/dist/esm/graphs/Graph.mjs +11 -0
  18. package/dist/esm/graphs/Graph.mjs.map +1 -1
  19. package/dist/esm/llm/anthropic/llm.mjs +46 -16
  20. package/dist/esm/llm/anthropic/llm.mjs.map +1 -1
  21. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +25 -1
  22. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  23. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +93 -31
  24. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  25. package/dist/esm/splitStream.mjs +8 -2
  26. package/dist/esm/splitStream.mjs.map +1 -1
  27. package/dist/esm/stream.mjs +13 -2
  28. package/dist/esm/stream.mjs.map +1 -1
  29. package/dist/types/common/enum.d.ts +1 -0
  30. package/dist/types/llm/anthropic/llm.d.ts +3 -2
  31. package/dist/types/llm/anthropic/types.d.ts +10 -0
  32. package/dist/types/scripts/caching.d.ts +1 -0
  33. package/dist/types/scripts/thinking.d.ts +1 -0
  34. package/dist/types/splitStream.d.ts +2 -0
  35. package/dist/types/types/stream.d.ts +8 -2
  36. package/package.json +9 -7
  37. package/src/common/enum.ts +1 -0
  38. package/src/graphs/Graph.ts +14 -2
  39. package/src/llm/anthropic/llm.spec.ts +1069 -0
  40. package/src/llm/anthropic/llm.ts +65 -22
  41. package/src/llm/anthropic/types.ts +11 -2
  42. package/src/llm/anthropic/utils/message_inputs.ts +31 -1
  43. package/src/llm/anthropic/utils/message_outputs.ts +112 -42
  44. package/src/scripts/caching.ts +124 -0
  45. package/src/scripts/thinking.ts +152 -0
  46. package/src/scripts/tools.ts +2 -2
  47. package/src/splitStream.ts +8 -3
  48. package/src/stream.ts +11 -2
  49. package/src/types/stream.ts +9 -2
@@ -107,6 +107,7 @@ export enum StepTypes {
107
107
  export enum ContentTypes {
108
108
  TEXT = 'text',
109
109
  THINK = 'think',
110
+ THINKING = 'thinking',
110
111
  TOOL_CALL = 'tool_call',
111
112
  IMAGE_FILE = 'image_file',
112
113
  IMAGE_URL = 'image_url',
@@ -8,7 +8,7 @@ import { ChatOpenAI, AzureChatOpenAI } from '@langchain/openai';
8
8
  import { Runnable, RunnableConfig } from '@langchain/core/runnables';
9
9
  import { dispatchCustomEvent } from '@langchain/core/callbacks/dispatch';
10
10
  import { AIMessageChunk, ToolMessage, SystemMessage } from '@langchain/core/messages';
11
- import type { BaseMessage } from '@langchain/core/messages';
11
+ import type { BaseMessage, BaseMessageFields } from '@langchain/core/messages';
12
12
  import type * as t from '@/types';
13
13
  import { Providers, GraphEvents, GraphNodeKeys, StepTypes, Callback, ContentTypes } from '@/common';
14
14
  import { getChatModelClass, manualToolStreamProviders } from '@/llm/providers';
@@ -127,11 +127,23 @@ export class StandardGraph extends Graph<
127
127
  this.reasoningKey = reasoningKey;
128
128
  }
129
129
 
130
- let finalInstructions = instructions ?? '';
130
+ let finalInstructions: string | BaseMessageFields = instructions ?? '';
131
131
  if (additional_instructions) {
132
132
  finalInstructions = finalInstructions ? `${finalInstructions}\n\n${additional_instructions}` : additional_instructions;
133
133
  }
134
134
 
135
+ if (finalInstructions && provider === Providers.ANTHROPIC && (clientOptions as t.AnthropicClientOptions)?.clientOptions?.defaultHeaders?.['anthropic-beta']?.includes('prompt-caching')) {
136
+ finalInstructions = {
137
+ content: [
138
+ {
139
+ type: "text",
140
+ text: instructions,
141
+ cache_control: { type: "ephemeral" },
142
+ },
143
+ ],
144
+ };
145
+ }
146
+
135
147
  if (finalInstructions) {
136
148
  this.systemMessage = new SystemMessage(finalInstructions);
137
149
  }