illuma-agents 1.0.15 → 1.0.17

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 (63) hide show
  1. package/dist/cjs/common/enum.cjs +18 -0
  2. package/dist/cjs/common/enum.cjs.map +1 -1
  3. package/dist/cjs/graphs/Graph.cjs +88 -20
  4. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  5. package/dist/cjs/llm/openai/index.cjs +1 -0
  6. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  7. package/dist/cjs/main.cjs +13 -0
  8. package/dist/cjs/main.cjs.map +1 -1
  9. package/dist/cjs/messages/core.cjs +16 -8
  10. package/dist/cjs/messages/core.cjs.map +1 -1
  11. package/dist/cjs/messages/format.cjs +8 -2
  12. package/dist/cjs/messages/format.cjs.map +1 -1
  13. package/dist/cjs/messages/tools.cjs +17 -10
  14. package/dist/cjs/messages/tools.cjs.map +1 -1
  15. package/dist/cjs/stream.cjs +1 -0
  16. package/dist/cjs/stream.cjs.map +1 -1
  17. package/dist/cjs/tools/ToolNode.cjs +73 -3
  18. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  19. package/dist/cjs/tools/handlers.cjs +1 -0
  20. package/dist/cjs/tools/handlers.cjs.map +1 -1
  21. package/dist/cjs/utils/contextAnalytics.cjs +64 -0
  22. package/dist/cjs/utils/contextAnalytics.cjs.map +1 -0
  23. package/dist/cjs/utils/toonFormat.cjs +358 -0
  24. package/dist/cjs/utils/toonFormat.cjs.map +1 -0
  25. package/dist/esm/common/enum.mjs +19 -1
  26. package/dist/esm/common/enum.mjs.map +1 -1
  27. package/dist/esm/graphs/Graph.mjs +90 -22
  28. package/dist/esm/graphs/Graph.mjs.map +1 -1
  29. package/dist/esm/llm/openai/index.mjs +1 -0
  30. package/dist/esm/llm/openai/index.mjs.map +1 -1
  31. package/dist/esm/main.mjs +3 -1
  32. package/dist/esm/main.mjs.map +1 -1
  33. package/dist/esm/messages/core.mjs +18 -10
  34. package/dist/esm/messages/core.mjs.map +1 -1
  35. package/dist/esm/messages/format.mjs +9 -3
  36. package/dist/esm/messages/format.mjs.map +1 -1
  37. package/dist/esm/messages/tools.mjs +19 -12
  38. package/dist/esm/messages/tools.mjs.map +1 -1
  39. package/dist/esm/stream.mjs +1 -0
  40. package/dist/esm/stream.mjs.map +1 -1
  41. package/dist/esm/tools/ToolNode.mjs +73 -3
  42. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  43. package/dist/esm/tools/handlers.mjs +1 -0
  44. package/dist/esm/tools/handlers.mjs.map +1 -1
  45. package/dist/esm/utils/contextAnalytics.mjs +62 -0
  46. package/dist/esm/utils/contextAnalytics.mjs.map +1 -0
  47. package/dist/esm/utils/toonFormat.mjs +351 -0
  48. package/dist/esm/utils/toonFormat.mjs.map +1 -0
  49. package/dist/types/common/enum.d.ts +17 -0
  50. package/dist/types/graphs/Graph.d.ts +8 -0
  51. package/dist/types/utils/contextAnalytics.d.ts +37 -0
  52. package/dist/types/utils/index.d.ts +2 -0
  53. package/dist/types/utils/toonFormat.d.ts +111 -0
  54. package/package.json +2 -1
  55. package/src/common/enum.ts +18 -0
  56. package/src/graphs/Graph.ts +113 -27
  57. package/src/messages/core.ts +27 -19
  58. package/src/messages/format.ts +10 -3
  59. package/src/messages/tools.ts +20 -13
  60. package/src/tools/ToolNode.ts +78 -5
  61. package/src/utils/contextAnalytics.ts +95 -0
  62. package/src/utils/index.ts +2 -0
  63. package/src/utils/toonFormat.ts +437 -0
@@ -21,6 +21,8 @@ exports.GraphEvents = void 0;
21
21
  GraphEvents["ON_MESSAGE_DELTA"] = "on_message_delta";
22
22
  /** [Custom] Reasoning Delta events for messages */
23
23
  GraphEvents["ON_REASONING_DELTA"] = "on_reasoning_delta";
24
+ /** [Custom] Context analytics event for traces */
25
+ GraphEvents["ON_CONTEXT_ANALYTICS"] = "on_context_analytics";
24
26
  /* Official Events */
25
27
  /** Custom event, emitted by system */
26
28
  GraphEvents["ON_CUSTOM_EVENT"] = "on_custom_event";
@@ -162,4 +164,20 @@ exports.EnvVar = void 0;
162
164
  EnvVar["CODE_API_KEY"] = "CODE_EXECUTOR_API_KEY";
163
165
  EnvVar["CODE_BASEURL"] = "CODE_EXECUTOR_BASEURL";
164
166
  })(exports.EnvVar || (exports.EnvVar = {}));
167
+ /**
168
+ * Message type identifiers used by LangChain's BaseMessage.getType().
169
+ * Use these constants instead of instanceof checks to avoid module mismatch issues
170
+ * when different copies of @langchain/core/messages are loaded.
171
+ */
172
+ exports.MessageTypes = void 0;
173
+ (function (MessageTypes) {
174
+ MessageTypes["HUMAN"] = "human";
175
+ MessageTypes["AI"] = "ai";
176
+ MessageTypes["SYSTEM"] = "system";
177
+ MessageTypes["TOOL"] = "tool";
178
+ MessageTypes["FUNCTION"] = "function";
179
+ MessageTypes["GENERIC"] = "generic";
180
+ MessageTypes["DEVELOPER"] = "developer";
181
+ MessageTypes["REMOVE"] = "remove";
182
+ })(exports.MessageTypes || (exports.MessageTypes = {}));
165
183
  //# sourceMappingURL=enum.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.cjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n\n /* Official Events */\n\n /** Custom event, emitted by system */\n ON_CUSTOM_EVENT = 'on_custom_event',\n /** Emitted when a chat model starts processing. */\n CHAT_MODEL_START = 'on_chat_model_start',\n\n /** Emitted when a chat model streams a chunk of its response. */\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\n\n /** Emitted when a chat model completes its processing. */\n CHAT_MODEL_END = 'on_chat_model_end',\n\n /** Emitted when a language model starts processing. */\n LLM_START = 'on_llm_start',\n\n /** Emitted when a language model streams a chunk of its response. */\n LLM_STREAM = 'on_llm_stream',\n\n /** Emitted when a language model completes its processing. */\n LLM_END = 'on_llm_end',\n\n /** Emitted when a chain starts processing. */\n CHAIN_START = 'on_chain_start',\n\n /** Emitted when a chain streams a chunk of its output. */\n CHAIN_STREAM = 'on_chain_stream',\n\n /** Emitted when a chain completes its processing. */\n CHAIN_END = 'on_chain_end',\n\n /** Emitted when a tool starts its operation. */\n TOOL_START = 'on_tool_start',\n\n /** Emitted when a tool completes its operation. */\n TOOL_END = 'on_tool_end',\n\n /** Emitted when a retriever starts its operation. */\n RETRIEVER_START = 'on_retriever_start',\n\n /** Emitted when a retriever completes its operation. */\n RETRIEVER_END = 'on_retriever_end',\n\n /** Emitted when a prompt starts processing. */\n PROMPT_START = 'on_prompt_start',\n\n /** Emitted when a prompt completes its processing. */\n PROMPT_END = 'on_prompt_end',\n}\n\nexport enum Providers {\n OPENAI = 'openAI',\n VERTEXAI = 'vertexai',\n BEDROCK = 'bedrock',\n ANTHROPIC = 'anthropic',\n MISTRALAI = 'mistralai',\n MISTRAL = 'mistral',\n GOOGLE = 'google',\n AZURE = 'azureOpenAI',\n DEEPSEEK = 'deepseek',\n OPENROUTER = 'openrouter',\n XAI = 'xai',\n}\n\nexport enum GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n ROUTER = 'router',\n PRE_TOOLS = 'pre_tools',\n POST_TOOLS = 'post_tools',\n}\n\nexport enum GraphNodeActions {\n TOOL_NODE = 'tool_node',\n CALL_MODEL = 'call_model',\n ROUTE_MESSAGE = 'route_message',\n}\n\nexport enum CommonEvents {\n LANGGRAPH = 'LangGraph',\n}\n\nexport enum StepTypes {\n TOOL_CALLS = 'tool_calls',\n MESSAGE_CREATION = 'message_creation',\n}\n\nexport enum ContentTypes {\n TEXT = 'text',\n ERROR = 'error',\n THINK = 'think',\n TOOL_CALL = 'tool_call',\n IMAGE_URL = 'image_url',\n IMAGE_FILE = 'image_file',\n /** Anthropic */\n THINKING = 'thinking',\n /** Vertex AI / Google Common */\n REASONING = 'reasoning',\n /** Multi-Agent Switch */\n AGENT_UPDATE = 'agent_update',\n /** Bedrock */\n REASONING_CONTENT = 'reasoning_content',\n}\n\nexport enum ToolCallTypes {\n FUNCTION = 'function',\n RETRIEVAL = 'retrieval',\n FILE_SEARCH = 'file_search',\n CODE_INTERPRETER = 'code_interpreter',\n /* Agents Tool Call */\n TOOL_CALL = 'tool_call',\n}\n\nexport enum Callback {\n TOOL_ERROR = 'handleToolError',\n TOOL_START = 'handleToolStart',\n TOOL_END = 'handleToolEnd',\n CUSTOM_EVENT = 'handleCustomEvent',\n /*\n LLM_START = 'handleLLMStart',\n LLM_NEW_TOKEN = 'handleLLMNewToken',\n LLM_ERROR = 'handleLLMError',\n LLM_END = 'handleLLMEnd',\n CHAT_MODEL_START = 'handleChatModelStart',\n CHAIN_START = 'handleChainStart',\n CHAIN_ERROR = 'handleChainError',\n CHAIN_END = 'handleChainEnd',\n TEXT = 'handleText',\n AGENT_ACTION = 'handleAgentAction',\n AGENT_END = 'handleAgentEnd',\n RETRIEVER_START = 'handleRetrieverStart',\n RETRIEVER_END = 'handleRetrieverEnd',\n RETRIEVER_ERROR = 'handleRetrieverError',\n */\n}\n\nexport enum Constants {\n OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',\n EXECUTE_CODE = 'execute_code',\n TOOL_SEARCH_REGEX = 'tool_search_regex',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n}\n\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_API_KEY = 'CODE_EXECUTOR_API_KEY',\n CODE_BASEURL = 'CODE_EXECUTOR_BASEURL',\n}\n"],"names":["GraphEvents","Providers","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar"],"mappings":"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"}
1
+ {"version":3,"file":"enum.cjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n /** [Custom] Context analytics event for traces */\n ON_CONTEXT_ANALYTICS = 'on_context_analytics',\n\n /* Official Events */\n\n /** Custom event, emitted by system */\n ON_CUSTOM_EVENT = 'on_custom_event',\n /** Emitted when a chat model starts processing. */\n CHAT_MODEL_START = 'on_chat_model_start',\n\n /** Emitted when a chat model streams a chunk of its response. */\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\n\n /** Emitted when a chat model completes its processing. */\n CHAT_MODEL_END = 'on_chat_model_end',\n\n /** Emitted when a language model starts processing. */\n LLM_START = 'on_llm_start',\n\n /** Emitted when a language model streams a chunk of its response. */\n LLM_STREAM = 'on_llm_stream',\n\n /** Emitted when a language model completes its processing. */\n LLM_END = 'on_llm_end',\n\n /** Emitted when a chain starts processing. */\n CHAIN_START = 'on_chain_start',\n\n /** Emitted when a chain streams a chunk of its output. */\n CHAIN_STREAM = 'on_chain_stream',\n\n /** Emitted when a chain completes its processing. */\n CHAIN_END = 'on_chain_end',\n\n /** Emitted when a tool starts its operation. */\n TOOL_START = 'on_tool_start',\n\n /** Emitted when a tool completes its operation. */\n TOOL_END = 'on_tool_end',\n\n /** Emitted when a retriever starts its operation. */\n RETRIEVER_START = 'on_retriever_start',\n\n /** Emitted when a retriever completes its operation. */\n RETRIEVER_END = 'on_retriever_end',\n\n /** Emitted when a prompt starts processing. */\n PROMPT_START = 'on_prompt_start',\n\n /** Emitted when a prompt completes its processing. */\n PROMPT_END = 'on_prompt_end',\n}\n\nexport enum Providers {\n OPENAI = 'openAI',\n VERTEXAI = 'vertexai',\n BEDROCK = 'bedrock',\n ANTHROPIC = 'anthropic',\n MISTRALAI = 'mistralai',\n MISTRAL = 'mistral',\n GOOGLE = 'google',\n AZURE = 'azureOpenAI',\n DEEPSEEK = 'deepseek',\n OPENROUTER = 'openrouter',\n XAI = 'xai',\n}\n\nexport enum GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n ROUTER = 'router',\n PRE_TOOLS = 'pre_tools',\n POST_TOOLS = 'post_tools',\n}\n\nexport enum GraphNodeActions {\n TOOL_NODE = 'tool_node',\n CALL_MODEL = 'call_model',\n ROUTE_MESSAGE = 'route_message',\n}\n\nexport enum CommonEvents {\n LANGGRAPH = 'LangGraph',\n}\n\nexport enum StepTypes {\n TOOL_CALLS = 'tool_calls',\n MESSAGE_CREATION = 'message_creation',\n}\n\nexport enum ContentTypes {\n TEXT = 'text',\n ERROR = 'error',\n THINK = 'think',\n TOOL_CALL = 'tool_call',\n IMAGE_URL = 'image_url',\n IMAGE_FILE = 'image_file',\n /** Anthropic */\n THINKING = 'thinking',\n /** Vertex AI / Google Common */\n REASONING = 'reasoning',\n /** Multi-Agent Switch */\n AGENT_UPDATE = 'agent_update',\n /** Bedrock */\n REASONING_CONTENT = 'reasoning_content',\n}\n\nexport enum ToolCallTypes {\n FUNCTION = 'function',\n RETRIEVAL = 'retrieval',\n FILE_SEARCH = 'file_search',\n CODE_INTERPRETER = 'code_interpreter',\n /* Agents Tool Call */\n TOOL_CALL = 'tool_call',\n}\n\nexport enum Callback {\n TOOL_ERROR = 'handleToolError',\n TOOL_START = 'handleToolStart',\n TOOL_END = 'handleToolEnd',\n CUSTOM_EVENT = 'handleCustomEvent',\n /*\n LLM_START = 'handleLLMStart',\n LLM_NEW_TOKEN = 'handleLLMNewToken',\n LLM_ERROR = 'handleLLMError',\n LLM_END = 'handleLLMEnd',\n CHAT_MODEL_START = 'handleChatModelStart',\n CHAIN_START = 'handleChainStart',\n CHAIN_ERROR = 'handleChainError',\n CHAIN_END = 'handleChainEnd',\n TEXT = 'handleText',\n AGENT_ACTION = 'handleAgentAction',\n AGENT_END = 'handleAgentEnd',\n RETRIEVER_START = 'handleRetrieverStart',\n RETRIEVER_END = 'handleRetrieverEnd',\n RETRIEVER_ERROR = 'handleRetrieverError',\n */\n}\n\nexport enum Constants {\n OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',\n EXECUTE_CODE = 'execute_code',\n TOOL_SEARCH_REGEX = 'tool_search_regex',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n}\n\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_API_KEY = 'CODE_EXECUTOR_API_KEY',\n CODE_BASEURL = 'CODE_EXECUTOR_BASEURL',\n}\n\n/**\n * Message type identifiers used by LangChain's BaseMessage.getType().\n * Use these constants instead of instanceof checks to avoid module mismatch issues\n * when different copies of @langchain/core/messages are loaded.\n */\nexport enum MessageTypes {\n HUMAN = 'human',\n AI = 'ai',\n SYSTEM = 'system',\n TOOL = 'tool',\n FUNCTION = 'function',\n GENERIC = 'generic',\n DEVELOPER = 'developer',\n REMOVE = 'remove',\n}\n"],"names":["GraphEvents","Providers","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar","MessageTypes"],"mappings":"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"}
@@ -17,6 +17,8 @@ var graph = require('../utils/graph.cjs');
17
17
  var llm = require('../utils/llm.cjs');
18
18
  var run = require('../utils/run.cjs');
19
19
  require('js-tiktoken/lite');
20
+ require('../utils/toonFormat.cjs');
21
+ var contextAnalytics = require('../utils/contextAnalytics.cjs');
20
22
  var providers = require('../llm/providers.cjs');
21
23
  var ToolNode = require('../tools/ToolNode.cjs');
22
24
  var index = require('../llm/openai/index.cjs');
@@ -282,6 +284,15 @@ class StandardGraph extends Graph {
282
284
  }
283
285
  return primaryContext.getContextBreakdown();
284
286
  }
287
+ /**
288
+ * Get the latest context analytics from the graph.
289
+ * Returns metrics like utilization %, TOON stats, message breakdown.
290
+ */
291
+ getContextAnalytics() {
292
+ return this.lastContextAnalytics ?? null;
293
+ }
294
+ /** Store the latest context analytics for retrieval after run */
295
+ lastContextAnalytics = null;
285
296
  /* Graph */
286
297
  createSystemRunnable({ provider, clientOptions, instructions, additional_instructions, }) {
287
298
  let finalInstructions = instructions;
@@ -513,11 +524,12 @@ class StandardGraph extends Graph {
513
524
  : null;
514
525
  if (agentContext.provider === _enum.Providers.BEDROCK &&
515
526
  lastMessageX instanceof messages.AIMessageChunk &&
516
- lastMessageY instanceof messages.ToolMessage &&
527
+ lastMessageY?.getType() === _enum.MessageTypes.TOOL &&
517
528
  typeof lastMessageX.content === 'string') {
518
529
  finalMessages[finalMessages.length - 2].content = '';
519
530
  }
520
- const isLatestToolMessage = lastMessageY instanceof messages.ToolMessage;
531
+ // Use getType() instead of instanceof to avoid module mismatch issues
532
+ const isLatestToolMessage = lastMessageY?.getType() === _enum.MessageTypes.TOOL;
521
533
  if (isLatestToolMessage &&
522
534
  agentContext.provider === _enum.Providers.ANTHROPIC) {
523
535
  core.formatAnthropicArtifactContent(finalMessages);
@@ -528,6 +540,27 @@ class StandardGraph extends Graph {
528
540
  llm.isGoogleLike(agentContext.provider))) {
529
541
  core.formatArtifactPayload(finalMessages);
530
542
  }
543
+ /**
544
+ * Handle edge case: when switching from a non-thinking agent to a thinking-enabled agent,
545
+ * convert AI messages with tool calls to HumanMessages to avoid thinking block requirements.
546
+ * This is required by Anthropic/Bedrock when thinking is enabled.
547
+ *
548
+ * IMPORTANT: This MUST happen BEFORE cache control is applied.
549
+ * If we add cachePoint to an AI message first, then convert that AI message to a HumanMessage,
550
+ * the cachePoint is lost. By converting first, we ensure cache control is applied to the
551
+ * final message structure that will be sent to the API.
552
+ */
553
+ const isAnthropicWithThinking = (agentContext.provider === _enum.Providers.ANTHROPIC &&
554
+ agentContext.clientOptions.thinking !=
555
+ null) ||
556
+ (agentContext.provider === _enum.Providers.BEDROCK &&
557
+ agentContext.clientOptions
558
+ .additionalModelRequestFields?.['thinking'] != null);
559
+ if (isAnthropicWithThinking) {
560
+ finalMessages = format.ensureThinkingBlockInMessages(finalMessages, agentContext.provider);
561
+ }
562
+ // Apply cache control AFTER thinking block handling to ensure cachePoints aren't lost
563
+ // when AI messages are converted to HumanMessages
531
564
  if (agentContext.provider === _enum.Providers.ANTHROPIC) {
532
565
  const anthropicOptions = agentContext.clientOptions;
533
566
  const defaultHeaders = anthropicOptions?.clientOptions
@@ -548,20 +581,6 @@ class StandardGraph extends Graph {
548
581
  finalMessages = cache.addBedrockCacheControl(finalMessages);
549
582
  }
550
583
  }
551
- /**
552
- * Handle edge case: when switching from a non-thinking agent to a thinking-enabled agent,
553
- * convert AI messages with tool calls to HumanMessages to avoid thinking block requirements.
554
- * This is required by Anthropic/Bedrock when thinking is enabled.
555
- */
556
- const isAnthropicWithThinking = (agentContext.provider === _enum.Providers.ANTHROPIC &&
557
- agentContext.clientOptions.thinking !=
558
- null) ||
559
- (agentContext.provider === _enum.Providers.BEDROCK &&
560
- agentContext.clientOptions
561
- .additionalModelRequestFields?.['thinking'] != null);
562
- if (isAnthropicWithThinking) {
563
- finalMessages = format.ensureThinkingBlockInMessages(finalMessages, agentContext.provider);
564
- }
565
584
  if (agentContext.lastStreamCall != null &&
566
585
  agentContext.streamBuffer != null) {
567
586
  const timeSinceLastCall = Date.now() - agentContext.lastStreamCall;
@@ -581,6 +600,27 @@ class StandardGraph extends Graph {
581
600
  info: 'Message pruning removed all messages as none fit in the context window. Please increase the context window size or make your message shorter.',
582
601
  }));
583
602
  }
603
+ // Get model info for analytics
604
+ const bedrockOpts = agentContext.clientOptions;
605
+ const modelId = bedrockOpts?.model || agentContext.clientOptions?.modelName;
606
+ const thinkingConfig = bedrockOpts?.additionalModelRequestFields?.['thinking'] ||
607
+ agentContext.clientOptions?.thinking;
608
+ // Build and emit context analytics for traces
609
+ const contextAnalytics$1 = contextAnalytics.buildContextAnalytics(finalMessages, {
610
+ tokenCounter: agentContext.tokenCounter,
611
+ maxContextTokens: agentContext.maxContextTokens,
612
+ instructionTokens: agentContext.instructionTokens,
613
+ indexTokenCountMap: agentContext.indexTokenCountMap,
614
+ });
615
+ // Store for retrieval via getContextAnalytics() after run completes
616
+ this.lastContextAnalytics = contextAnalytics$1;
617
+ await events.safeDispatchCustomEvent(_enum.GraphEvents.ON_CONTEXT_ANALYTICS, {
618
+ provider: agentContext.provider,
619
+ model: modelId,
620
+ thinkingEnabled: thinkingConfig != null,
621
+ cacheEnabled: bedrockOpts?.promptCache === true,
622
+ analytics: contextAnalytics$1,
623
+ }, config);
584
624
  try {
585
625
  result = await this.attemptInvoke({
586
626
  currentModel: model,
@@ -598,8 +638,20 @@ class StandardGraph extends Graph {
598
638
  errorMessage.includes('maximum context') ||
599
639
  errorMessage.includes('validationexception') ||
600
640
  errorMessage.includes('prompt is too long');
601
- // If input too long and we have pruning capability, retry with progressively more aggressive pruning
602
- if (isInputTooLongError && agentContext.pruneMessages && agentContext.maxContextTokens) {
641
+ // Log when we detect the error
642
+ if (isInputTooLongError) {
643
+ console.warn('[Graph] Detected input too long error:', errorMessage.substring(0, 200));
644
+ console.warn('[Graph] Checking emergency pruning conditions:', {
645
+ hasPruneMessages: !!agentContext.pruneMessages,
646
+ hasTokenCounter: !!agentContext.tokenCounter,
647
+ maxContextTokens: agentContext.maxContextTokens,
648
+ indexTokenMapKeys: Object.keys(agentContext.indexTokenCountMap).length
649
+ });
650
+ }
651
+ // If input too long and we have pruning capability OR tokenCounter, retry with progressively more aggressive pruning
652
+ // Note: We can create emergency pruneMessages dynamically if we have tokenCounter and maxContextTokens
653
+ const canPrune = agentContext.tokenCounter && agentContext.maxContextTokens;
654
+ if (isInputTooLongError && canPrune) {
603
655
  // Progressive reduction: 50% -> 25% -> 10% of original context
604
656
  const reductionLevels = [0.5, 0.25, 0.1];
605
657
  for (const reductionFactor of reductionLevels) {
@@ -607,13 +659,23 @@ class StandardGraph extends Graph {
607
659
  break; // Exit if we got a result
608
660
  const reducedMaxTokens = Math.floor(agentContext.maxContextTokens * reductionFactor);
609
661
  console.warn(`[Graph] Input too long. Retrying with ${reductionFactor * 100}% context (${reducedMaxTokens} tokens)...`);
662
+ // Build fresh indexTokenCountMap if missing/incomplete
663
+ // This is needed when messages were dynamically added without updating the token map
664
+ let tokenMapForPruning = agentContext.indexTokenCountMap;
665
+ if (Object.keys(tokenMapForPruning).length < messages$1.length) {
666
+ console.warn('[Graph] Building fresh token count map for emergency pruning...');
667
+ tokenMapForPruning = {};
668
+ for (let i = 0; i < messages$1.length; i++) {
669
+ tokenMapForPruning[i] = agentContext.tokenCounter(messages$1[i]);
670
+ }
671
+ }
610
672
  const emergencyPrune = prune.createPruneMessages({
611
673
  startIndex: this.startIndex,
612
674
  provider: agentContext.provider,
613
675
  tokenCounter: agentContext.tokenCounter,
614
676
  maxTokens: reducedMaxTokens,
615
677
  thinkingEnabled: false, // Disable thinking for emergency prune
616
- indexTokenCountMap: agentContext.indexTokenCountMap,
678
+ indexTokenCountMap: tokenMapForPruning,
617
679
  });
618
680
  const { context: reducedMessages } = emergencyPrune({
619
681
  messages: messages$1,
@@ -647,7 +709,13 @@ If I seem to be missing something we discussed earlier, just give me a quick rem
647
709
  let retryMessages = agentContext.useLegacyContent
648
710
  ? content.formatContentStrings(messagesWithNotice)
649
711
  : messagesWithNotice;
650
- // Apply Bedrock cache control if needed
712
+ // Apply thinking block handling first (before cache control)
713
+ // This ensures AI+Tool sequences are converted to HumanMessages
714
+ // before we add cache points that could be lost in the conversion
715
+ if (isAnthropicWithThinking) {
716
+ retryMessages = format.ensureThinkingBlockInMessages(retryMessages, agentContext.provider);
717
+ }
718
+ // Apply Bedrock cache control if needed (after thinking block handling)
651
719
  if (agentContext.provider === _enum.Providers.BEDROCK) {
652
720
  const bedrockOptions = agentContext.clientOptions;
653
721
  const modelId = bedrockOptions?.model?.toLowerCase() ?? '';