@illuma-ai/agents 1.5.0 → 1.5.1

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 (404) hide show
  1. package/dist/cjs/agents/AgentContext.cjs +2 -2
  2. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  3. package/dist/cjs/common/enum.cjs +12 -12
  4. package/dist/cjs/common/enum.cjs.map +1 -1
  5. package/dist/cjs/graphs/Graph.cjs +5 -5
  6. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  7. package/dist/cjs/graphs/MultiAgentGraph.cjs +1 -1
  8. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  9. package/dist/cjs/graphs/phases/memoryFlushPhase.cjs +1 -1
  10. package/dist/cjs/graphs/phases/memoryFlushPhase.cjs.map +1 -1
  11. package/dist/cjs/hooks/HookRegistry.cjs +1 -1
  12. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  13. package/dist/cjs/hooks/matchers.cjs +2 -2
  14. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  15. package/dist/cjs/hooks/types.cjs +1 -1
  16. package/dist/cjs/hooks/types.cjs.map +1 -1
  17. package/dist/cjs/llm/bedrock/cacheSupport.cjs +1 -1
  18. package/dist/cjs/llm/bedrock/cacheSupport.cjs.map +1 -1
  19. package/dist/cjs/llm/bedrock/index.cjs +2 -2
  20. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  21. package/dist/cjs/llm/openai/index.cjs +1 -1
  22. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  23. package/dist/cjs/llm/openai/utils/index.cjs +2 -2
  24. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  25. package/dist/cjs/memory/citations.cjs +4 -4
  26. package/dist/cjs/memory/citations.cjs.map +1 -1
  27. package/dist/cjs/memory/constants.cjs +17 -17
  28. package/dist/cjs/memory/constants.cjs.map +1 -1
  29. package/dist/cjs/memory/mmr.cjs +1 -1
  30. package/dist/cjs/memory/mmr.cjs.map +1 -1
  31. package/dist/cjs/memory/paths.cjs +1 -1
  32. package/dist/cjs/memory/paths.cjs.map +1 -1
  33. package/dist/cjs/memory/recallTracking.cjs +3 -3
  34. package/dist/cjs/memory/recallTracking.cjs.map +1 -1
  35. package/dist/cjs/memory/temporalDecay.cjs +2 -2
  36. package/dist/cjs/memory/temporalDecay.cjs.map +1 -1
  37. package/dist/cjs/messages/format.cjs +3 -3
  38. package/dist/cjs/messages/format.cjs.map +1 -1
  39. package/dist/cjs/tools/CodeExecutor.cjs +4 -3
  40. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  41. package/dist/cjs/tools/ToolNode.cjs +5 -5
  42. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  43. package/dist/cjs/tools/memory/memoryAppendTool.cjs +1 -1
  44. package/dist/cjs/tools/memory/memoryAppendTool.cjs.map +1 -1
  45. package/dist/cjs/tools/memory/memoryGetTool.cjs +2 -2
  46. package/dist/cjs/tools/memory/memoryGetTool.cjs.map +1 -1
  47. package/dist/cjs/tools/memory/memorySearchTool.cjs +3 -3
  48. package/dist/cjs/tools/memory/memorySearchTool.cjs.map +1 -1
  49. package/dist/cjs/tools/memory/shared.cjs +1 -1
  50. package/dist/cjs/tools/memory/shared.cjs.map +1 -1
  51. package/dist/cjs/types/agent-cache.cjs +6 -5
  52. package/dist/cjs/types/agent-cache.cjs.map +1 -1
  53. package/dist/cjs/types/graph.cjs.map +1 -1
  54. package/dist/esm/agents/AgentContext.mjs +2 -2
  55. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  56. package/dist/esm/common/enum.mjs +12 -12
  57. package/dist/esm/common/enum.mjs.map +1 -1
  58. package/dist/esm/graphs/Graph.mjs +5 -5
  59. package/dist/esm/graphs/Graph.mjs.map +1 -1
  60. package/dist/esm/graphs/MultiAgentGraph.mjs +1 -1
  61. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  62. package/dist/esm/graphs/phases/memoryFlushPhase.mjs +1 -1
  63. package/dist/esm/graphs/phases/memoryFlushPhase.mjs.map +1 -1
  64. package/dist/esm/hooks/HookRegistry.mjs +1 -1
  65. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  66. package/dist/esm/hooks/matchers.mjs +2 -2
  67. package/dist/esm/hooks/matchers.mjs.map +1 -1
  68. package/dist/esm/hooks/types.mjs +1 -1
  69. package/dist/esm/hooks/types.mjs.map +1 -1
  70. package/dist/esm/llm/bedrock/cacheSupport.mjs +1 -1
  71. package/dist/esm/llm/bedrock/cacheSupport.mjs.map +1 -1
  72. package/dist/esm/llm/bedrock/index.mjs +2 -2
  73. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  74. package/dist/esm/llm/openai/index.mjs +1 -1
  75. package/dist/esm/llm/openai/index.mjs.map +1 -1
  76. package/dist/esm/llm/openai/utils/index.mjs +2 -2
  77. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  78. package/dist/esm/memory/citations.mjs +4 -4
  79. package/dist/esm/memory/citations.mjs.map +1 -1
  80. package/dist/esm/memory/constants.mjs +17 -17
  81. package/dist/esm/memory/constants.mjs.map +1 -1
  82. package/dist/esm/memory/mmr.mjs +1 -1
  83. package/dist/esm/memory/mmr.mjs.map +1 -1
  84. package/dist/esm/memory/paths.mjs +1 -1
  85. package/dist/esm/memory/paths.mjs.map +1 -1
  86. package/dist/esm/memory/recallTracking.mjs +3 -3
  87. package/dist/esm/memory/recallTracking.mjs.map +1 -1
  88. package/dist/esm/memory/temporalDecay.mjs +2 -2
  89. package/dist/esm/memory/temporalDecay.mjs.map +1 -1
  90. package/dist/esm/messages/format.mjs +3 -3
  91. package/dist/esm/messages/format.mjs.map +1 -1
  92. package/dist/esm/tools/CodeExecutor.mjs +4 -3
  93. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  94. package/dist/esm/tools/ToolNode.mjs +5 -5
  95. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  96. package/dist/esm/tools/memory/memoryAppendTool.mjs +1 -1
  97. package/dist/esm/tools/memory/memoryAppendTool.mjs.map +1 -1
  98. package/dist/esm/tools/memory/memoryGetTool.mjs +2 -2
  99. package/dist/esm/tools/memory/memoryGetTool.mjs.map +1 -1
  100. package/dist/esm/tools/memory/memorySearchTool.mjs +3 -3
  101. package/dist/esm/tools/memory/memorySearchTool.mjs.map +1 -1
  102. package/dist/esm/tools/memory/shared.mjs +1 -1
  103. package/dist/esm/tools/memory/shared.mjs.map +1 -1
  104. package/dist/esm/types/agent-cache.mjs +6 -5
  105. package/dist/esm/types/agent-cache.mjs.map +1 -1
  106. package/dist/esm/types/graph.mjs.map +1 -1
  107. package/dist/types/agents/AgentContext.d.ts +1 -1
  108. package/dist/types/common/enum.d.ts +12 -12
  109. package/dist/types/graphs/Graph.d.ts +2 -2
  110. package/dist/types/graphs/phases/memoryFlushPhase.d.ts +2 -2
  111. package/dist/types/hooks/HookRegistry.d.ts +1 -1
  112. package/dist/types/hooks/matchers.d.ts +2 -2
  113. package/dist/types/hooks/types.d.ts +1 -1
  114. package/dist/types/llm/bedrock/cacheSupport.d.ts +1 -1
  115. package/dist/types/llm/bedrock/index.d.ts +2 -2
  116. package/dist/types/llm/openai/index.d.ts +1 -1
  117. package/dist/types/memory/citations.d.ts +4 -4
  118. package/dist/types/memory/constants.d.ts +17 -17
  119. package/dist/types/memory/mmr.d.ts +3 -3
  120. package/dist/types/memory/paths.d.ts +1 -1
  121. package/dist/types/memory/temporalDecay.d.ts +2 -2
  122. package/dist/types/memory/types.d.ts +3 -3
  123. package/dist/types/messages/format.d.ts +1 -1
  124. package/dist/types/tools/ToolNode.d.ts +3 -3
  125. package/dist/types/tools/memory/shared.d.ts +1 -1
  126. package/dist/types/types/agent-cache.d.ts +6 -5
  127. package/dist/types/types/graph.d.ts +7 -6
  128. package/dist/types/types/messages.d.ts +1 -1
  129. package/dist/types/types/run.d.ts +1 -1
  130. package/dist/types/types/tools.d.ts +5 -5
  131. package/package.json +1 -1
  132. package/src/agents/AgentContext.ts +2 -2
  133. package/src/agents/__tests__/AgentContext.crossAgentTier1.live.test.ts +5 -3
  134. package/src/agents/__tests__/AgentContext.test.ts +1 -1
  135. package/src/common/__tests__/enum.test.ts +1 -1
  136. package/src/common/enum.ts +12 -12
  137. package/src/graphs/Graph.ts +5 -5
  138. package/src/graphs/MultiAgentGraph.ts +1 -1
  139. package/src/graphs/gapFeatures.test.ts +1 -1
  140. package/src/graphs/phases/__tests__/memoryFlushPhase.test.ts +1 -1
  141. package/src/graphs/phases/memoryFlushPhase.ts +2 -2
  142. package/src/hooks/HookRegistry.ts +1 -1
  143. package/src/hooks/index.ts +1 -1
  144. package/src/hooks/matchers.ts +2 -2
  145. package/src/hooks/types.ts +1 -1
  146. package/src/llm/anthropic/utils/server-tool-inputs.test.ts +7 -7
  147. package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +2 -2
  148. package/src/llm/bedrock/cacheSupport.ts +1 -1
  149. package/src/llm/bedrock/index.ts +2 -2
  150. package/src/llm/openai/index.ts +2 -2
  151. package/src/llm/openai/utils/index.ts +2 -2
  152. package/src/memory/citations.ts +4 -4
  153. package/src/memory/constants.ts +17 -17
  154. package/src/memory/mmr.ts +3 -3
  155. package/src/memory/paths.ts +1 -1
  156. package/src/memory/recallTracking.ts +3 -3
  157. package/src/memory/temporalDecay.ts +2 -2
  158. package/src/memory/types.ts +3 -3
  159. package/src/messages/cache.test.ts +1 -1
  160. package/src/messages/ensureThinkingBlock.test.ts +1 -1
  161. package/src/messages/format.ts +4 -4
  162. package/src/messages/formatAgentMessages.test.ts +1 -1
  163. package/src/scripts/subagent-event-driven-debug.ts +2 -2
  164. package/src/specs/anthropic.simple.test.ts +1 -1
  165. package/src/specs/prune.orphans.test.ts +1 -1
  166. package/src/tools/CodeExecutor.ts +4 -3
  167. package/src/tools/ToolNode.ts +6 -6
  168. package/src/tools/__tests__/CodeExecutor.test.ts +3 -3
  169. package/src/tools/memory/memoryAppendTool.ts +1 -1
  170. package/src/tools/memory/memoryGetTool.ts +2 -2
  171. package/src/tools/memory/memorySearchTool.ts +3 -3
  172. package/src/tools/memory/shared.ts +1 -1
  173. package/src/types/agent-cache.ts +6 -5
  174. package/src/types/graph.ts +7 -6
  175. package/src/types/messages.ts +1 -1
  176. package/src/types/run.ts +1 -1
  177. package/src/types/tools.ts +5 -5
  178. package/dist/types/tools/search/test.d.ts +0 -1
  179. package/src/agents/AgentContext.js.map +0 -1
  180. package/src/agents/AgentContext.test.js.map +0 -1
  181. package/src/agents/__tests__/AgentContext.test.js.map +0 -1
  182. package/src/agents/__tests__/resolveStructuredOutputMode.test.js.map +0 -1
  183. package/src/common/enum.js.map +0 -1
  184. package/src/common/index.js.map +0 -1
  185. package/src/events.js.map +0 -1
  186. package/src/graphs/Graph.js.map +0 -1
  187. package/src/graphs/MultiAgentGraph.js.map +0 -1
  188. package/src/graphs/__tests__/structured-output.integration.test.js.map +0 -1
  189. package/src/graphs/__tests__/structured-output.test.js.map +0 -1
  190. package/src/graphs/contextManagement.e2e.test.js.map +0 -1
  191. package/src/graphs/contextManagement.test.js.map +0 -1
  192. package/src/graphs/handoffValidation.test.js.map +0 -1
  193. package/src/graphs/index.js.map +0 -1
  194. package/src/index.js.map +0 -1
  195. package/src/instrumentation.js.map +0 -1
  196. package/src/llm/anthropic/index.js.map +0 -1
  197. package/src/llm/anthropic/types.js.map +0 -1
  198. package/src/llm/anthropic/utils/message_inputs.js.map +0 -1
  199. package/src/llm/anthropic/utils/message_outputs.js.map +0 -1
  200. package/src/llm/anthropic/utils/output_parsers.js.map +0 -1
  201. package/src/llm/anthropic/utils/tools.js.map +0 -1
  202. package/src/llm/bedrock/__tests__/bedrock-caching.test.js.map +0 -1
  203. package/src/llm/bedrock/index.js.map +0 -1
  204. package/src/llm/bedrock/types.js.map +0 -1
  205. package/src/llm/bedrock/utils/index.js.map +0 -1
  206. package/src/llm/bedrock/utils/message_inputs.js.map +0 -1
  207. package/src/llm/bedrock/utils/message_outputs.js.map +0 -1
  208. package/src/llm/fake.js.map +0 -1
  209. package/src/llm/google/index.js.map +0 -1
  210. package/src/llm/google/types.js.map +0 -1
  211. package/src/llm/google/utils/common.js.map +0 -1
  212. package/src/llm/google/utils/tools.js.map +0 -1
  213. package/src/llm/google/utils/zod_to_genai_parameters.js.map +0 -1
  214. package/src/llm/openai/index.js.map +0 -1
  215. package/src/llm/openai/types.js.map +0 -1
  216. package/src/llm/openai/utils/index.js.map +0 -1
  217. package/src/llm/openai/utils/isReasoningModel.test.js.map +0 -1
  218. package/src/llm/openrouter/index.js.map +0 -1
  219. package/src/llm/openrouter/reasoning.test.js.map +0 -1
  220. package/src/llm/providers.js.map +0 -1
  221. package/src/llm/text.js.map +0 -1
  222. package/src/llm/vertexai/index.js.map +0 -1
  223. package/src/messages/__tests__/tools.test.js.map +0 -1
  224. package/src/messages/cache.js.map +0 -1
  225. package/src/messages/cache.test.js.map +0 -1
  226. package/src/messages/content.js.map +0 -1
  227. package/src/messages/content.test.js.map +0 -1
  228. package/src/messages/core.js.map +0 -1
  229. package/src/messages/ensureThinkingBlock.test.js.map +0 -1
  230. package/src/messages/format.js.map +0 -1
  231. package/src/messages/formatAgentMessages.test.js.map +0 -1
  232. package/src/messages/formatAgentMessages.tools.test.js.map +0 -1
  233. package/src/messages/formatMessage.test.js.map +0 -1
  234. package/src/messages/ids.js.map +0 -1
  235. package/src/messages/index.js.map +0 -1
  236. package/src/messages/labelContentByAgent.test.js.map +0 -1
  237. package/src/messages/prune.js.map +0 -1
  238. package/src/messages/reducer.js.map +0 -1
  239. package/src/messages/shiftIndexTokenCountMap.test.js.map +0 -1
  240. package/src/messages/summarize.js.map +0 -1
  241. package/src/messages/summarize.test.js.map +0 -1
  242. package/src/messages/tools.js.map +0 -1
  243. package/src/mockStream.js.map +0 -1
  244. package/src/prompts/collab.js.map +0 -1
  245. package/src/prompts/index.js.map +0 -1
  246. package/src/prompts/taskmanager.js.map +0 -1
  247. package/src/run.js.map +0 -1
  248. package/src/schemas/index.js.map +0 -1
  249. package/src/schemas/schema-preparation.test.js.map +0 -1
  250. package/src/schemas/validate.js.map +0 -1
  251. package/src/schemas/validate.test.js.map +0 -1
  252. package/src/scripts/abort.js.map +0 -1
  253. package/src/scripts/ant_web_search.js.map +0 -1
  254. package/src/scripts/ant_web_search_edge_case.js.map +0 -1
  255. package/src/scripts/ant_web_search_error_edge_case.js.map +0 -1
  256. package/src/scripts/args.js.map +0 -1
  257. package/src/scripts/bedrock-cache-debug.js.map +0 -1
  258. package/src/scripts/bedrock-content-aggregation-test.js.map +0 -1
  259. package/src/scripts/bedrock-merge-test.js.map +0 -1
  260. package/src/scripts/bedrock-parallel-tools-test.js.map +0 -1
  261. package/src/scripts/caching.js.map +0 -1
  262. package/src/scripts/cli.js.map +0 -1
  263. package/src/scripts/cli2.js.map +0 -1
  264. package/src/scripts/cli3.js.map +0 -1
  265. package/src/scripts/cli4.js.map +0 -1
  266. package/src/scripts/cli5.js.map +0 -1
  267. package/src/scripts/code_exec.js.map +0 -1
  268. package/src/scripts/code_exec_files.js.map +0 -1
  269. package/src/scripts/code_exec_multi_session.js.map +0 -1
  270. package/src/scripts/code_exec_ptc.js.map +0 -1
  271. package/src/scripts/code_exec_session.js.map +0 -1
  272. package/src/scripts/code_exec_simple.js.map +0 -1
  273. package/src/scripts/content.js.map +0 -1
  274. package/src/scripts/empty_input.js.map +0 -1
  275. package/src/scripts/handoff-test.js.map +0 -1
  276. package/src/scripts/image.js.map +0 -1
  277. package/src/scripts/memory.js.map +0 -1
  278. package/src/scripts/multi-agent-chain.js.map +0 -1
  279. package/src/scripts/multi-agent-conditional.js.map +0 -1
  280. package/src/scripts/multi-agent-document-review-chain.js.map +0 -1
  281. package/src/scripts/multi-agent-hybrid-flow.js.map +0 -1
  282. package/src/scripts/multi-agent-parallel-start.js.map +0 -1
  283. package/src/scripts/multi-agent-parallel.js.map +0 -1
  284. package/src/scripts/multi-agent-sequence.js.map +0 -1
  285. package/src/scripts/multi-agent-supervisor.js.map +0 -1
  286. package/src/scripts/multi-agent-test.js.map +0 -1
  287. package/src/scripts/parallel-asymmetric-tools-test.js.map +0 -1
  288. package/src/scripts/parallel-full-metadata-test.js.map +0 -1
  289. package/src/scripts/parallel-tools-test.js.map +0 -1
  290. package/src/scripts/programmatic_exec.js.map +0 -1
  291. package/src/scripts/programmatic_exec_agent.js.map +0 -1
  292. package/src/scripts/search.js.map +0 -1
  293. package/src/scripts/sequential-full-metadata-test.js.map +0 -1
  294. package/src/scripts/simple.js.map +0 -1
  295. package/src/scripts/single-agent-metadata-test.js.map +0 -1
  296. package/src/scripts/stream.js.map +0 -1
  297. package/src/scripts/test-custom-prompt-key.js.map +0 -1
  298. package/src/scripts/test-handoff-input.js.map +0 -1
  299. package/src/scripts/test-handoff-preamble.js.map +0 -1
  300. package/src/scripts/test-handoff-steering.js.map +0 -1
  301. package/src/scripts/test-multi-agent-list-handoff.js.map +0 -1
  302. package/src/scripts/test-parallel-agent-labeling.js.map +0 -1
  303. package/src/scripts/test-parallel-handoffs.js.map +0 -1
  304. package/src/scripts/test-thinking-handoff-bedrock.js.map +0 -1
  305. package/src/scripts/test-thinking-handoff.js.map +0 -1
  306. package/src/scripts/test-thinking-to-thinking-handoff-bedrock.js.map +0 -1
  307. package/src/scripts/test-tool-before-handoff-role-order.js.map +0 -1
  308. package/src/scripts/test-tools-before-handoff.js.map +0 -1
  309. package/src/scripts/test_code_api.js.map +0 -1
  310. package/src/scripts/thinking-bedrock.js.map +0 -1
  311. package/src/scripts/thinking-vertexai.js.map +0 -1
  312. package/src/scripts/thinking.js.map +0 -1
  313. package/src/scripts/tool_search.js.map +0 -1
  314. package/src/scripts/tools.js.map +0 -1
  315. package/src/specs/agent-handoffs-bedrock.integration.test.js.map +0 -1
  316. package/src/specs/agent-handoffs.test.js.map +0 -1
  317. package/src/specs/anthropic.simple.test.js.map +0 -1
  318. package/src/specs/azure.simple.test.js.map +0 -1
  319. package/src/specs/cache.simple.test.js.map +0 -1
  320. package/src/specs/custom-event-await.test.js.map +0 -1
  321. package/src/specs/deepseek.simple.test.js.map +0 -1
  322. package/src/specs/emergency-prune.test.js.map +0 -1
  323. package/src/specs/moonshot.simple.test.js.map +0 -1
  324. package/src/specs/observability.integration.test.js.map +0 -1
  325. package/src/specs/openai.simple.test.js.map +0 -1
  326. package/src/specs/openrouter.simple.test.js.map +0 -1
  327. package/src/specs/prune.test.js.map +0 -1
  328. package/src/specs/reasoning.test.js.map +0 -1
  329. package/src/specs/spec.utils.js.map +0 -1
  330. package/src/specs/thinking-handoff.test.js.map +0 -1
  331. package/src/specs/thinking-prune.test.js.map +0 -1
  332. package/src/specs/token-distribution-edge-case.test.js.map +0 -1
  333. package/src/specs/token-memoization.test.js.map +0 -1
  334. package/src/specs/tokens.test.js.map +0 -1
  335. package/src/specs/tool-error.test.js.map +0 -1
  336. package/src/splitStream.js.map +0 -1
  337. package/src/splitStream.test.js.map +0 -1
  338. package/src/stream.js.map +0 -1
  339. package/src/stream.test.js.map +0 -1
  340. package/src/test/mockTools.js.map +0 -1
  341. package/src/tools/BrowserTools.js.map +0 -1
  342. package/src/tools/Calculator.js.map +0 -1
  343. package/src/tools/Calculator.test.js.map +0 -1
  344. package/src/tools/CodeExecutor.js.map +0 -1
  345. package/src/tools/ProgrammaticToolCalling.js.map +0 -1
  346. package/src/tools/StreamingToolCallBuffer.js.map +0 -1
  347. package/src/tools/ToolNode.js.map +0 -1
  348. package/src/tools/ToolSearch.js.map +0 -1
  349. package/src/tools/__tests__/BrowserTools.test.js.map +0 -1
  350. package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.js.map +0 -1
  351. package/src/tools/__tests__/ProgrammaticToolCalling.test.js.map +0 -1
  352. package/src/tools/__tests__/StreamingToolCallBuffer.test.js.map +0 -1
  353. package/src/tools/__tests__/ToolApproval.test.js.map +0 -1
  354. package/src/tools/__tests__/ToolNode.recovery.test.js.map +0 -1
  355. package/src/tools/__tests__/ToolNode.session.test.js.map +0 -1
  356. package/src/tools/__tests__/ToolSearch.integration.test.js.map +0 -1
  357. package/src/tools/__tests__/ToolSearch.test.js.map +0 -1
  358. package/src/tools/__tests__/handlers.test.js.map +0 -1
  359. package/src/tools/__tests__/truncation-recovery.integration.test.js.map +0 -1
  360. package/src/tools/handlers.js.map +0 -1
  361. package/src/tools/schema.js.map +0 -1
  362. package/src/tools/search/anthropic.js.map +0 -1
  363. package/src/tools/search/content.js.map +0 -1
  364. package/src/tools/search/content.test.js.map +0 -1
  365. package/src/tools/search/firecrawl.js.map +0 -1
  366. package/src/tools/search/format.js.map +0 -1
  367. package/src/tools/search/highlights.js.map +0 -1
  368. package/src/tools/search/index.js.map +0 -1
  369. package/src/tools/search/jina-reranker.test.js.map +0 -1
  370. package/src/tools/search/output.md +0 -2775
  371. package/src/tools/search/rerankers.js.map +0 -1
  372. package/src/tools/search/schema.js.map +0 -1
  373. package/src/tools/search/search.js.map +0 -1
  374. package/src/tools/search/serper-scraper.js.map +0 -1
  375. package/src/tools/search/test.html +0 -884
  376. package/src/tools/search/test.js.map +0 -1
  377. package/src/tools/search/test.md +0 -643
  378. package/src/tools/search/test.ts +0 -159
  379. package/src/tools/search/tool.js.map +0 -1
  380. package/src/tools/search/types.js.map +0 -1
  381. package/src/tools/search/utils.js.map +0 -1
  382. package/src/types/graph.js.map +0 -1
  383. package/src/types/graph.test.js.map +0 -1
  384. package/src/types/index.js.map +0 -1
  385. package/src/types/llm.js.map +0 -1
  386. package/src/types/messages.js.map +0 -1
  387. package/src/types/run.js.map +0 -1
  388. package/src/types/stream.js.map +0 -1
  389. package/src/types/tools.js.map +0 -1
  390. package/src/utils/contextAnalytics.js.map +0 -1
  391. package/src/utils/contextAnalytics.test.js.map +0 -1
  392. package/src/utils/events.js.map +0 -1
  393. package/src/utils/graph.js.map +0 -1
  394. package/src/utils/handlers.js.map +0 -1
  395. package/src/utils/index.js.map +0 -1
  396. package/src/utils/llm.js.map +0 -1
  397. package/src/utils/llmConfig.js.map +0 -1
  398. package/src/utils/logging.js.map +0 -1
  399. package/src/utils/misc.js.map +0 -1
  400. package/src/utils/run.js.map +0 -1
  401. package/src/utils/schema.js.map +0 -1
  402. package/src/utils/title.js.map +0 -1
  403. package/src/utils/tokens.js.map +0 -1
  404. package/src/utils/toonFormat.js.map +0 -1
@@ -67,7 +67,7 @@ class AgentContext {
67
67
  fileManifest,
68
68
  });
69
69
  /**
70
- * Track upstream-aligned subagent inputs on the context. `_sourceInputs`
70
+ * Track subagent inputs on the context. `_sourceInputs`
71
71
  * preserves the original AgentInputs so SubagentExecutor can self-spawn
72
72
  * (`SubagentConfig.self === true`) without separate config; the other
73
73
  * two flow straight from agentConfig.
@@ -767,7 +767,7 @@ class AgentContext {
767
767
  * appended unfiltered; outside event-driven mode they pass through
768
768
  * `filterToolsForBinding`. Centralizing the decision here prevents the
769
769
  * accounting/binding paths from drifting apart, which was the root
770
- * cause of the original miscount (Fixes upstream #121).
770
+ * cause of the original miscount (Fixes #121).
771
771
  */
772
772
  getEffectiveInstanceTools() {
773
773
  if (!this.tools) {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentContext.cjs","sources":["../../../src/agents/AgentContext.ts"],"sourcesContent":["/* eslint-disable no-console */\n// src/agents/AgentContext.ts\nimport { SystemMessage } from '@langchain/core/messages';\nimport { RunnableLambda } from '@langchain/core/runnables';\nimport type {\n UsageMetadata,\n BaseMessage,\n BaseMessageFields,\n} from '@langchain/core/messages';\nimport type { RunnableConfig, Runnable } from '@langchain/core/runnables';\nimport type * as t from '@/types';\nimport type { createPruneMessages } from '@/messages';\nimport { createSchemaOnlyTools } from '@/tools/schema';\nimport { ContentTypes, Providers } from '@/common';\nimport { MAX_SYSTEM_CACHE_BLOCKS } from '@/types/agent-cache';\nimport { isBedrockCacheSupported } from '@/llm/bedrock/cacheSupport';\nimport { toJsonSchema } from '@/utils/schema';\n\n/**\n * Encapsulates agent-specific state that can vary between agents in a multi-agent system\n */\nexport class AgentContext {\n /**\n * Create an AgentContext from configuration with token accounting initialization\n */\n static fromConfig(\n agentConfig: t.AgentInputs,\n tokenCounter?: t.TokenCounter,\n indexTokenCountMap?: Record<string, number>\n ): AgentContext {\n const {\n agentId,\n name,\n description,\n provider,\n clientOptions,\n tools,\n toolMap,\n toolEnd,\n toolRegistry,\n toolDefinitions,\n system_cache_blocks,\n instructions,\n instructions_cache_ttl,\n additional_instructions,\n streamBuffer,\n maxContextTokens,\n reasoningKey,\n useLegacyContent,\n dynamicContext,\n structuredOutput: structuredOutputCamel,\n\n structured_output: structuredOutputSnake,\n discoveredTools,\n summarizeCallback,\n persistedSummary,\n summarizationConfig,\n fileManifest,\n } = agentConfig;\n\n // Normalize structured output: support both camelCase and snake_case inputs\n // Priority: structuredOutput (camelCase) > structured_output (snake_case with enabled check)\n let structuredOutput: t.StructuredOutputConfig | undefined;\n if (structuredOutputCamel) {\n structuredOutput = structuredOutputCamel;\n } else if (\n structuredOutputSnake?.enabled === true &&\n structuredOutputSnake.schema != null\n ) {\n // Convert snake_case input to StructuredOutputConfig\n structuredOutput = {\n schema: structuredOutputSnake.schema,\n name: structuredOutputSnake.name,\n description: structuredOutputSnake.description,\n mode: structuredOutputSnake.mode,\n strict: structuredOutputSnake.strict,\n };\n }\n\n const agentContext = new AgentContext({\n agentId,\n name: name ?? agentId,\n description,\n provider,\n clientOptions,\n maxContextTokens,\n streamBuffer,\n tools,\n toolMap,\n toolRegistry,\n toolDefinitions,\n systemCacheBlocks: system_cache_blocks,\n instructions,\n instructionsCacheTtl: instructions_cache_ttl,\n additionalInstructions: additional_instructions,\n reasoningKey,\n toolEnd,\n instructionTokens: 0,\n tokenCounter,\n useLegacyContent,\n dynamicContext,\n structuredOutput,\n discoveredTools,\n summarizeCallback,\n persistedSummary,\n summarizationConfig,\n fileManifest,\n });\n\n /**\n * Track upstream-aligned subagent inputs on the context. `_sourceInputs`\n * preserves the original AgentInputs so SubagentExecutor can self-spawn\n * (`SubagentConfig.self === true`) without separate config; the other\n * two flow straight from agentConfig.\n */\n agentContext._sourceInputs = agentConfig;\n agentContext.subagentConfigs = agentConfig.subagentConfigs;\n agentContext.maxSubagentDepth = agentConfig.maxSubagentDepth;\n\n if (tokenCounter) {\n // Initialize system runnable BEFORE async tool token calculation\n // This ensures system message tokens are in instructionTokens before\n // updateTokenMapWithInstructions is called\n agentContext.initializeSystemRunnable();\n\n const tokenMap = indexTokenCountMap || {};\n agentContext.baseIndexTokenCountMap = { ...tokenMap };\n agentContext.indexTokenCountMap = tokenMap;\n agentContext.tokenCalculationPromise = agentContext\n .calculateInstructionTokens(tokenCounter)\n .then(() => {\n // Update token map with instruction tokens (includes system + tool tokens)\n agentContext.updateTokenMapWithInstructions(tokenMap);\n })\n .catch((err) => {\n console.error('Error calculating instruction tokens:', err);\n });\n } else if (indexTokenCountMap) {\n agentContext.baseIndexTokenCountMap = { ...indexTokenCountMap };\n agentContext.indexTokenCountMap = indexTokenCountMap;\n }\n\n return agentContext;\n }\n\n /** Agent identifier */\n agentId!: string;\n /** Human-readable name for this agent (used in handoff context). Falls back to agentId if not provided. */\n name?: string;\n /** Description of what this agent does (used to enrich handoff tool descriptions). */\n description?: string;\n /** Provider for this specific agent */\n provider!: Providers;\n /** Client options for this agent */\n clientOptions?: t.ClientOptions;\n /** Token count map indexed by message position */\n indexTokenCountMap: Record<string, number | undefined> = {};\n /** Canonical pre-run token map used to restore token accounting on reset */\n baseIndexTokenCountMap: Record<string, number> = {};\n /** Maximum context tokens for this agent */\n maxContextTokens?: number;\n /** Current usage metadata for this agent */\n currentUsage?: Partial<UsageMetadata>;\n /** Prune messages function configured for this agent */\n pruneMessages?: ReturnType<typeof createPruneMessages>;\n /** Token counter function for this agent */\n tokenCounter?: t.TokenCounter;\n /** Instructions/system message token count */\n instructionTokens: number = 0;\n /** The amount of time that should pass before another consecutive API call */\n streamBuffer?: number;\n /** Last stream call timestamp for rate limiting */\n lastStreamCall?: number;\n /** Tools available to this agent */\n tools?: t.GraphTools;\n /** Graph-managed tools (e.g., handoff tools created by MultiAgentGraph) that bypass event-driven dispatch */\n graphTools?: t.GraphTools;\n /** Tool map for this agent */\n toolMap?: t.ToolMap;\n /**\n * Tool definitions registry (includes deferred and programmatic tool metadata).\n * Used for tool search and programmatic tool calling.\n */\n toolRegistry?: t.LCToolRegistry;\n /**\n * Serializable tool definitions for event-driven execution.\n * When provided, ToolNode operates in event-driven mode.\n */\n toolDefinitions?: t.LCTool[];\n /** Set of tool names discovered via tool search (to be loaded) */\n discoveredToolNames: Set<string> = new Set();\n /**\n * Cacheable system content blocks emitted before `instructions`. Each\n * gets its own cache marker (cachePoint on Bedrock, cache_control on\n * Anthropic). Earlier entries = wider cache key (best for cross-tenant\n * sharing). See `src/types/agent-cache.ts`.\n */\n systemCacheBlocks?: t.SystemCacheBlock[];\n /** Stable/cacheable instructions for this agent (gets trailing marker). */\n instructions?: string;\n /** TTL for the trailing instructions cache marker. Defaults to '5m'. */\n instructionsCacheTtl?: t.AgentCacheTTL;\n /** Dynamic system tail (per-user / per-message — never cached). */\n additionalInstructions?: string;\n /**\n * Dynamic context that changes per-request (e.g., current time, user info).\n * This is NOT included in the system message to preserve cache.\n * Instead, it's injected as a user message at the start of the conversation.\n */\n dynamicContext?: string;\n /** Reasoning key for this agent */\n reasoningKey: 'reasoning_content' | 'reasoning' = 'reasoning_content';\n /** Last token for reasoning detection */\n lastToken?: string;\n /** Token type switch state */\n tokenTypeSwitch?: 'reasoning' | 'content';\n /** Tracks how many reasoning→text transitions have occurred (ensures unique post-reasoning step keys) */\n reasoningTransitionCount = 0;\n /** Current token type being processed */\n currentTokenType: ContentTypes.TEXT | ContentTypes.THINK | 'think_and_text' =\n ContentTypes.TEXT;\n /** Whether tools should end the workflow */\n toolEnd: boolean = false;\n /** Cached system runnable (created lazily) */\n private cachedSystemRunnable?: Runnable<\n BaseMessage[],\n (BaseMessage | SystemMessage)[],\n RunnableConfig<Record<string, unknown>>\n >;\n /** Whether system runnable needs rebuild (set when discovered tools change) */\n private systemRunnableStale: boolean = true;\n /** Cached system message token count (separate from tool tokens) */\n private systemMessageTokens: number = 0;\n /** Promise for token calculation initialization */\n tokenCalculationPromise?: Promise<void>;\n /** Format content blocks as strings (for legacy compatibility) */\n useLegacyContent: boolean = false;\n /** Detailed per-tool token breakdown for admin tracking */\n private toolsDetail: Array<{ name: string; tokens: number }> = [];\n /** Total tool tokens (sum of all toolsDetail) */\n private toolTokensTotal: number = 0;\n /** Per-prompt token breakdown for detailed admin reporting */\n private promptBreakdown: {\n branding: number;\n toolRouting: number;\n agentInstructions: number;\n mcpInstructions: number;\n artifacts: number;\n memory: number;\n } = {\n branding: 0,\n toolRouting: 0,\n agentInstructions: 0,\n mcpInstructions: 0,\n artifacts: 0,\n memory: 0,\n };\n /**\n * Handoff context when this agent receives control via handoff.\n * Contains source and parallel execution info for system message context.\n */\n handoffContext?: {\n /** Source agent that transferred control */\n sourceAgentName: string;\n /** Names of sibling agents executing in parallel (empty if sequential) */\n parallelSiblings: string[];\n };\n /**\n * Structured output configuration.\n * When set, the agent will return a validated JSON response\n * instead of streaming text.\n */\n structuredOutput?: t.StructuredOutputConfig;\n /** Optional callback to summarize discarded messages during context pruning */\n summarizeCallback?: (messages: BaseMessage[]) => Promise<string | undefined>;\n /** Pre-existing summary loaded from persistent storage, injected into context on new turns */\n persistedSummary?: string;\n /** Summarization configuration controlling trigger strategy, reserve ratio, and EMA calibration */\n summarizationConfig?: t.SummarizationConfig;\n /** Lightweight file manifest for file-aware compaction (IDs and names only, no content) */\n fileManifest?: t.FileManifestEntry[];\n /** Original AgentInputs used to create this context — used for self-spawn subagent resolution. */\n _sourceInputs?: t.AgentInputs;\n /** Subagent configurations for hierarchical delegation. */\n subagentConfigs?: t.SubagentConfig[];\n /** Maximum subagent nesting depth. */\n maxSubagentDepth?: number;\n\n constructor({\n agentId,\n name,\n description,\n provider,\n clientOptions,\n maxContextTokens,\n streamBuffer,\n tokenCounter,\n tools,\n toolMap,\n toolRegistry,\n toolDefinitions,\n systemCacheBlocks,\n instructions,\n instructionsCacheTtl,\n additionalInstructions,\n dynamicContext,\n reasoningKey,\n toolEnd,\n instructionTokens,\n useLegacyContent,\n structuredOutput,\n discoveredTools,\n summarizeCallback,\n persistedSummary,\n summarizationConfig,\n fileManifest,\n }: {\n agentId: string;\n name?: string;\n description?: string;\n provider: Providers;\n clientOptions?: t.ClientOptions;\n maxContextTokens?: number;\n streamBuffer?: number;\n tokenCounter?: t.TokenCounter;\n tools?: t.GraphTools;\n toolMap?: t.ToolMap;\n toolRegistry?: t.LCToolRegistry;\n toolDefinitions?: t.LCTool[];\n systemCacheBlocks?: t.SystemCacheBlock[];\n instructions?: string;\n instructionsCacheTtl?: t.AgentCacheTTL;\n additionalInstructions?: string;\n dynamicContext?: string;\n reasoningKey?: 'reasoning_content' | 'reasoning';\n toolEnd?: boolean;\n instructionTokens?: number;\n useLegacyContent?: boolean;\n structuredOutput?: t.StructuredOutputConfig;\n discoveredTools?: string[];\n summarizeCallback?: (\n messages: BaseMessage[]\n ) => Promise<string | undefined>;\n persistedSummary?: string;\n summarizationConfig?: t.SummarizationConfig;\n fileManifest?: t.FileManifestEntry[];\n }) {\n this.agentId = agentId;\n this.name = name;\n this.description = description;\n this.provider = provider;\n this.clientOptions = clientOptions;\n this.maxContextTokens = maxContextTokens;\n this.streamBuffer = streamBuffer;\n this.tokenCounter = tokenCounter;\n this.tools = tools;\n this.toolMap = toolMap;\n this.toolRegistry = toolRegistry;\n this.toolDefinitions = toolDefinitions;\n if (\n systemCacheBlocks &&\n systemCacheBlocks.length > MAX_SYSTEM_CACHE_BLOCKS\n ) {\n throw new Error(\n `system_cache_blocks supports at most ${MAX_SYSTEM_CACHE_BLOCKS} entries ` +\n `(received ${systemCacheBlocks.length}); excess entries would exceed ` +\n `Bedrock's 4-cachePoint per-request budget once the tools array and ` +\n `trailing 'instructions' marker are counted. See src/types/agent-cache.ts.`,\n );\n }\n this.systemCacheBlocks = systemCacheBlocks;\n this.instructions = instructions;\n this.instructionsCacheTtl = instructionsCacheTtl;\n this.additionalInstructions = additionalInstructions;\n this.dynamicContext = dynamicContext;\n this.structuredOutput = structuredOutput;\n this.summarizeCallback = summarizeCallback;\n this.persistedSummary = persistedSummary;\n this.summarizationConfig = summarizationConfig;\n this.fileManifest = fileManifest;\n if (reasoningKey) {\n this.reasoningKey = reasoningKey;\n }\n if (toolEnd !== undefined) {\n this.toolEnd = toolEnd;\n }\n if (instructionTokens !== undefined) {\n this.instructionTokens = instructionTokens;\n }\n\n this.useLegacyContent = useLegacyContent ?? false;\n\n if (discoveredTools && discoveredTools.length > 0) {\n for (const toolName of discoveredTools) {\n this.discoveredToolNames.add(toolName);\n }\n }\n }\n\n /**\n * Checks if structured output mode is enabled for this agent.\n * When enabled, the agent will use model.invoke() instead of streaming\n * and return a validated JSON response.\n */\n get isStructuredOutputMode(): boolean {\n // Runtime safety: schema can be null/undefined via API despite type saying required\n return (\n this.structuredOutput != null &&\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n this.structuredOutput.schema != null\n );\n }\n\n /**\n * Gets the structured output schema with normalized defaults.\n * Returns undefined if structured output is not configured.\n */\n getStructuredOutputSchema(): Record<string, unknown> | undefined {\n if (!this.structuredOutput?.schema) {\n return undefined;\n }\n\n const schema = { ...this.structuredOutput.schema };\n\n // Ensure type is set\n if (schema.type == null && schema.properties != null) {\n schema.type = 'object';\n }\n\n // Add title from config name\n if (\n this.structuredOutput.name != null &&\n this.structuredOutput.name !== '' &&\n schema.title == null\n ) {\n schema.title = this.structuredOutput.name;\n }\n\n // Add description from config\n if (\n this.structuredOutput.description != null &&\n this.structuredOutput.description !== '' &&\n schema.description == null\n ) {\n schema.description = this.structuredOutput.description;\n }\n\n // Enable strict mode by default\n if (this.structuredOutput.strict !== false && schema.type === 'object') {\n schema.additionalProperties = schema.additionalProperties ?? false;\n }\n\n return schema;\n }\n\n /**\n * Resolves the structured output mode to a concrete method based on provider capabilities.\n *\n * Resolution logic:\n * - 'native' or 'auto' + supported provider → native constrained decoding\n * - 'native' + unsupported provider → fallback to 'functionCalling' with warning\n * - 'provider' → LangChain's jsonMode (existing behavior)\n * - 'tool' → function calling trick (existing behavior)\n * - 'auto' + unsupported provider → 'functionCalling'\n *\n * @returns The resolved method for withStructuredOutput, or 'native' for direct API usage\n */\n resolveStructuredOutputMode(): {\n method: t.ResolvedStructuredOutputMethod;\n warnings: string[];\n } {\n const mode = this.structuredOutput?.mode ?? 'auto';\n const warnings: string[] = [];\n\n // Providers that support native constrained decoding via LangChain\n const nativeProviders = new Set([\n Providers.ANTHROPIC,\n Providers.OPENAI,\n Providers.AZURE,\n ]);\n\n // Providers where LangChain supports jsonMode\n const jsonModeProviders = new Set([\n Providers.ANTHROPIC,\n Providers.OPENAI,\n Providers.AZURE,\n ]);\n\n switch (mode) {\n case 'native': {\n if (nativeProviders.has(this.provider)) {\n if (this.provider === Providers.ANTHROPIC) {\n return { method: 'jsonSchema', warnings };\n }\n // OpenAI/Azure\n return { method: 'jsonSchema', warnings };\n }\n // Fallback for unsupported providers\n warnings.push(\n `Native structured output is not supported for provider '${this.provider}'. Falling back to function calling.`\n );\n return { method: 'functionCalling', warnings };\n }\n\n case 'auto': {\n if (nativeProviders.has(this.provider)) {\n if (this.provider === Providers.ANTHROPIC) {\n return { method: 'jsonSchema', warnings };\n }\n // OpenAI/Azure\n return { method: 'jsonSchema', warnings };\n }\n // Default to function calling for all other providers\n return { method: undefined, warnings };\n }\n\n case 'provider': {\n if (this.provider === Providers.BEDROCK) {\n // Bedrock doesn't support jsonMode, fall back to functionCalling\n return { method: 'functionCalling', warnings };\n }\n if (jsonModeProviders.has(this.provider)) {\n return { method: 'jsonMode', warnings };\n }\n return { method: 'jsonMode', warnings };\n }\n\n case 'tool': {\n return { method: 'functionCalling', warnings };\n }\n\n default: {\n return { method: undefined, warnings };\n }\n }\n }\n\n /**\n * Builds instructions text for tools that are ONLY callable via programmatic code execution.\n * These tools cannot be called directly by the LLM but are available through the\n * run_tools_with_code tool.\n *\n * Includes:\n * - Code_execution-only tools that are NOT deferred\n * - Code_execution-only tools that ARE deferred but have been discovered via tool search\n */\n private buildProgrammaticOnlyToolsInstructions(): string {\n if (!this.toolRegistry) return '';\n\n const programmaticOnlyTools: t.LCTool[] = [];\n for (const [name, toolDef] of this.toolRegistry) {\n const allowedCallers = toolDef.allowed_callers ?? ['direct'];\n const isCodeExecutionOnly =\n allowedCallers.includes('code_execution') &&\n !allowedCallers.includes('direct');\n\n if (!isCodeExecutionOnly) continue;\n\n // Include if: not deferred OR deferred but discovered\n const isDeferred = toolDef.defer_loading === true;\n const isDiscovered = this.discoveredToolNames.has(name);\n if (!isDeferred || isDiscovered) {\n programmaticOnlyTools.push(toolDef);\n }\n }\n\n if (programmaticOnlyTools.length === 0) return '';\n\n const toolDescriptions = programmaticOnlyTools\n .map((tool) => {\n let desc = `- **${tool.name}**`;\n if (tool.description != null && tool.description !== '') {\n desc += `: ${tool.description}`;\n }\n if (tool.parameters) {\n desc += `\\n Parameters: ${JSON.stringify(tool.parameters, null, 2).replace(/\\n/g, '\\n ')}`;\n }\n return desc;\n })\n .join('\\n\\n');\n\n return (\n '\\n\\n## Programmatic-Only Tools\\n\\n' +\n 'The following tools are available exclusively through the `run_tools_with_code` tool. ' +\n 'You cannot call these tools directly; instead, use `run_tools_with_code` with Python code that invokes them.\\n\\n' +\n toolDescriptions\n );\n }\n\n /**\n * Gets the system runnable, creating it lazily if needed.\n * Includes instructions, additional instructions, and programmatic-only tools documentation.\n * Only rebuilds when marked stale (via markToolsAsDiscovered).\n */\n get systemRunnable():\n | Runnable<\n BaseMessage[],\n (BaseMessage | SystemMessage)[],\n RunnableConfig<Record<string, unknown>>\n >\n | undefined {\n // Return cached if not stale\n if (!this.systemRunnableStale && this.cachedSystemRunnable !== undefined) {\n return this.cachedSystemRunnable;\n }\n\n // Stale or first access - rebuild\n this.cachedSystemRunnable = this.buildSystemRunnable({\n systemCacheBlocks: this.systemCacheBlocks ?? [],\n stableInstructions: this.buildStableInstructionsString(),\n dynamicInstructions: this.buildDynamicInstructionsString(),\n });\n this.systemRunnableStale = false;\n return this.cachedSystemRunnable;\n }\n\n /**\n * Explicitly initializes the system runnable.\n * Call this before async token calculation to ensure system message tokens are counted first.\n */\n initializeSystemRunnable(): void {\n if (this.systemRunnableStale || this.cachedSystemRunnable === undefined) {\n this.cachedSystemRunnable = this.buildSystemRunnable({\n systemCacheBlocks: this.systemCacheBlocks ?? [],\n stableInstructions: this.buildStableInstructionsString(),\n dynamicInstructions: this.buildDynamicInstructionsString(),\n });\n this.systemRunnableStale = false;\n }\n }\n\n /**\n * Builds the cacheable instructions string (without creating SystemMessage).\n * Includes agent identity preamble, the agent's static instructions, and\n * programmatic-only tool documentation. This is the part of the system\n * message that stays byte-stable across turns and across users for the\n * same agent — the prompt cache prefix.\n *\n * Per-user/per-message dynamic context belongs in\n * `buildDynamicInstructionsString()` so it does not invalidate the cache\n * marker. (See `feedback_cache_stability_invariant` for the rule.)\n */\n private buildStableInstructionsString(): string {\n const parts: string[] = [];\n\n /** Build agent identity and handoff context preamble */\n const identityPreamble = this.buildIdentityPreamble();\n if (identityPreamble) {\n parts.push(identityPreamble);\n }\n\n /** Add main instructions */\n if (this.instructions != null && this.instructions !== '') {\n parts.push(this.instructions);\n }\n\n /** Add programmatic tools documentation */\n const programmaticToolsDoc = this.buildProgrammaticOnlyToolsInstructions();\n if (programmaticToolsDoc) {\n parts.push(programmaticToolsDoc);\n }\n\n return parts.join('\\n\\n');\n }\n\n /**\n * Builds the dynamic system-tail string (without creating SystemMessage).\n * Keep this out of prompt-cache-marked content so volatile per-call\n * context does not invalidate the stable prefix.\n *\n * `additional_instructions` is treated as dynamic (per-user/per-message\n * memory, runtime context, etc.) and intentionally excluded from the\n * cacheable prefix.\n */\n private buildDynamicInstructionsString(): string {\n const parts: string[] = [];\n\n if (\n this.additionalInstructions != null &&\n this.additionalInstructions !== ''\n ) {\n parts.push(this.additionalInstructions);\n }\n\n return parts.join('\\n\\n');\n }\n\n /**\n * Builds the agent identity preamble including handoff context if present.\n * This helps the agent understand its role in the multi-agent workflow.\n */\n private buildIdentityPreamble(): string {\n if (!this.handoffContext) return '';\n\n const displayName = this.name ?? this.agentId;\n const { sourceAgentName, parallelSiblings } = this.handoffContext;\n const isParallel = parallelSiblings.length > 0;\n\n const lines: string[] = [];\n lines.push('## Subagent Context');\n lines.push('');\n lines.push(\n `You are \"${displayName}\", a subagent spawned by \"${sourceAgentName}\" for a specific task.`\n );\n\n if (isParallel) {\n lines.push(`Running in parallel with: ${parallelSiblings.join(', ')}.`);\n }\n\n lines.push('');\n lines.push('### Your Role');\n lines.push('- Complete your assigned task. That is your entire purpose.');\n lines.push(`- You are NOT \"${sourceAgentName}\". Do not try to be.`);\n lines.push('');\n lines.push('### Rules');\n lines.push('1. **Stay focused** — Do your assigned task, nothing else.');\n lines.push(\n '2. **Complete the task** — Your final message will be automatically reported back.'\n );\n lines.push(\n '3. **Be autonomous** — Execute directly without asking for user confirmation. Use your tools and best judgment.'\n );\n lines.push(\n '4. **No placeholders** — Never generate fake or placeholder data. If you cannot retrieve real data, say so.'\n );\n lines.push(\n '5. **No side effects** — Do not send messages, emails, or notifications unless explicitly tasked to do so.'\n );\n lines.push('');\n lines.push('### Output');\n lines.push('When complete, your final response should include:');\n lines.push('- What you accomplished or found');\n lines.push('- Any relevant details the orchestrator should know');\n lines.push('- Keep it concise but informative');\n\n return lines.join('\\n');\n }\n\n /**\n * True when Anthropic prompt caching is enabled for this agent.\n * Used by `buildSystemRunnable` to decide whether to emit a cache_control\n * marker on the stable instructions prefix.\n */\n private hasAnthropicPromptCache(): boolean {\n if (this.provider !== Providers.ANTHROPIC) {\n return false;\n }\n const anthropicOptions = this.clientOptions as\n | t.AnthropicClientOptions\n | undefined;\n return anthropicOptions?.promptCache === true;\n }\n\n /**\n * True when Bedrock prompt caching is enabled for this agent AND the\n * configured model supports `cachePoint` blocks. Only Claude (and Nova)\n * models on Bedrock honour cachePoint — Llama / Titan reject it.\n *\n * Used by `buildSystemRunnable` to inline a `cachePoint` block right\n * after the stable system text so the system prefix is cached at the\n * AWS account level (cross-user, cross-conversation).\n */\n private hasBedrockPromptCache(): boolean {\n if (this.provider !== Providers.BEDROCK) {\n return false;\n }\n const bedrockOptions = this.clientOptions as\n | (t.BedrockAnthropicClientOptions & {\n model?: string;\n bedrockCacheModelPatterns?: readonly RegExp[];\n })\n | undefined;\n if (bedrockOptions?.promptCache !== true) {\n return false;\n }\n /* Allowlist-based check (see src/llm/bedrock/cacheSupport.ts). The\n * `bedrockCacheModelPatterns` clientOption lets consumers add new\n * model patterns without forking the library — useful when AWS adds\n * a new family before the next library release. */\n return isBedrockCacheSupported(\n bedrockOptions.model,\n bedrockOptions.bedrockCacheModelPatterns,\n );\n }\n\n /**\n * Build system runnable from cacheable blocks + the trailing\n * `instructions` block + optional dynamic tail.\n *\n * ┌──────────────────────────────────────────┐\n * │ system_cache_blocks[0].text │ ← consumer-defined block 0\n * ├──── cache marker (TTL = blocks[0].ttl) ──┤\n * │ system_cache_blocks[1].text │ ← consumer-defined block 1\n * ├──── cache marker (TTL = blocks[1].ttl) ──┤\n * │ instructions │ ← per-agent stable\n * ├──── cache marker (TTL = instructionsCacheTtl) ┤\n * │ additional_instructions │ ← dynamic (uncached)\n * └──────────────────────────────────────────┘\n *\n * If `system_cache_blocks` is empty, behavior reduces to the 2-tier\n * (instructions + dynamic) path used by simpler consumers.\n *\n * Provider-specific cache marker:\n * - Anthropic: `cache_control: { type: 'ephemeral', ttl?: '1h'|'5m' }` on\n * each cacheable text block. Up to 4 cache breakpoints per workspace.\n * - Bedrock (Claude/Nova): a `{ cachePoint: { type: 'default', ttl?: '1h'|'5m' } }`\n * block inserted after each cacheable section. Up to 4 cachePoints per\n * request, of which the tools array can consume up to 2.\n *\n * Cache key composition: every byte from message start to a given cache\n * marker forms that marker's cache key. Earlier blocks = wider cache key\n * = more cross-tenant share. Place the most stable content first.\n */\n private buildSystemRunnable({\n systemCacheBlocks,\n stableInstructions,\n dynamicInstructions,\n }: {\n systemCacheBlocks: t.SystemCacheBlock[];\n stableInstructions: string;\n dynamicInstructions: string;\n }):\n | Runnable<\n BaseMessage[],\n (BaseMessage | SystemMessage)[],\n RunnableConfig<Record<string, unknown>>\n >\n | undefined {\n const hasAnyCacheBlocks = systemCacheBlocks.length > 0;\n if (!hasAnyCacheBlocks && !stableInstructions && !dynamicInstructions) {\n // Remove previous tokens if we had a system message before\n this.instructionTokens -= this.systemMessageTokens;\n this.systemMessageTokens = 0;\n return undefined;\n }\n\n const useAnthropicCache = this.hasAnthropicPromptCache();\n const useBedrockCache = this.hasBedrockPromptCache();\n const instructionsTtl: t.AgentCacheTTL = this.instructionsCacheTtl ?? '5m';\n\n let finalInstructions: string | BaseMessageFields;\n if (useAnthropicCache) {\n type AnthropicTextBlock = {\n type: 'text';\n text: string;\n cache_control?: { type: 'ephemeral'; ttl?: t.AgentCacheTTL };\n };\n const content: AnthropicTextBlock[] = [];\n // Emit each system_cache_blocks entry with its own cache_control.\n for (const block of systemCacheBlocks) {\n if (!block.text) continue;\n content.push({\n type: 'text',\n text: block.text,\n cache_control: { type: 'ephemeral', ttl: block.ttl ?? '5m' },\n });\n }\n // Trailing stable instructions block (also cacheable).\n if (stableInstructions) {\n content.push({\n type: 'text',\n text: stableInstructions,\n cache_control: { type: 'ephemeral', ttl: instructionsTtl },\n });\n }\n if (dynamicInstructions) {\n // Dynamic tail: NO cache_control so it doesn't shift the cache prefix.\n content.push({ type: 'text', text: dynamicInstructions });\n }\n finalInstructions = { content } as BaseMessageFields;\n } else if (useBedrockCache && (hasAnyCacheBlocks || stableInstructions)) {\n type BedrockBlock =\n | { type: 'text'; text: string }\n | { cachePoint: { type: 'default'; ttl?: t.AgentCacheTTL } };\n const content: BedrockBlock[] = [];\n // Emit each system_cache_blocks entry as text + cachePoint pair.\n for (const block of systemCacheBlocks) {\n if (!block.text) continue;\n content.push({ type: 'text', text: block.text });\n content.push({\n cachePoint: { type: 'default', ttl: block.ttl ?? '5m' },\n });\n }\n if (stableInstructions) {\n content.push({ type: 'text', text: stableInstructions });\n content.push({\n cachePoint: { type: 'default', ttl: instructionsTtl },\n });\n }\n if (dynamicInstructions) {\n content.push({ type: 'text', text: dynamicInstructions });\n }\n finalInstructions = { content } as unknown as BaseMessageFields;\n } else {\n finalInstructions = [\n ...systemCacheBlocks.map((b) => b.text),\n stableInstructions,\n dynamicInstructions,\n ]\n .filter((part) => part !== '')\n .join('\\n\\n');\n }\n\n const systemMessage = new SystemMessage(finalInstructions);\n\n // Update token counts (subtract old, add new)\n if (this.tokenCounter) {\n this.instructionTokens -= this.systemMessageTokens;\n this.systemMessageTokens = this.tokenCounter(systemMessage);\n this.instructionTokens += this.systemMessageTokens;\n }\n\n return RunnableLambda.from((messages: BaseMessage[]) => {\n return [systemMessage, ...messages];\n }).withConfig({ runName: 'prompt' });\n }\n\n /**\n * Reset context for a new run\n */\n reset(): void {\n this.instructionTokens = 0;\n this.systemMessageTokens = 0;\n this.toolsDetail = [];\n this.toolTokensTotal = 0;\n this.cachedSystemRunnable = undefined;\n this.systemRunnableStale = true;\n this.lastToken = undefined;\n this.indexTokenCountMap = { ...this.baseIndexTokenCountMap };\n this.currentUsage = undefined;\n this.pruneMessages = undefined;\n this.lastStreamCall = undefined;\n this.tokenTypeSwitch = undefined;\n this.reasoningTransitionCount = 0;\n this.currentTokenType = ContentTypes.TEXT;\n this.discoveredToolNames.clear();\n this.handoffContext = undefined;\n\n if (this.tokenCounter) {\n this.initializeSystemRunnable();\n const baseTokenMap = { ...this.baseIndexTokenCountMap };\n this.indexTokenCountMap = baseTokenMap;\n this.tokenCalculationPromise = this.calculateInstructionTokens(\n this.tokenCounter\n )\n .then(() => {\n this.updateTokenMapWithInstructions(baseTokenMap);\n })\n .catch((err) => {\n console.error('Error calculating instruction tokens:', err);\n });\n } else {\n this.tokenCalculationPromise = undefined;\n }\n }\n\n /**\n * Update the token count map with instruction tokens\n */\n updateTokenMapWithInstructions(baseTokenMap: Record<string, number>): void {\n if (this.instructionTokens > 0) {\n // Shift all indices by the instruction token count\n const shiftedMap: Record<string, number> = {};\n for (const [key, value] of Object.entries(baseTokenMap)) {\n const index = parseInt(key, 10);\n if (!isNaN(index)) {\n shiftedMap[String(index)] =\n value + (index === 0 ? this.instructionTokens : 0);\n }\n }\n this.indexTokenCountMap = shiftedMap;\n } else {\n this.indexTokenCountMap = { ...baseTokenMap };\n }\n }\n\n /** Active tool definitions for token accounting (excludes deferred-and-undiscovered entries\n * and definitions whose `allowed_callers` exclude `'direct'`). Mirrors the gate\n * `getEventDrivenToolsForBinding` applies so accounting and binding stay aligned. */\n private getActiveToolDefinitions(): t.LCTool[] {\n if (!this.toolDefinitions) {\n return [];\n }\n return this.toolDefinitions.filter((def) => {\n const allowedCallers = def.allowed_callers ?? ['direct'];\n if (!allowedCallers.includes('direct')) {\n return false;\n }\n return (\n def.defer_loading !== true || this.discoveredToolNames.has(def.name)\n );\n });\n }\n\n /**\n * Single source of truth for \"which entries of `this.tools` should be\n * treated as actually bound\". Callers:\n * - `getToolsForBinding` (non-event-driven branch)\n * - `getEventDrivenToolsForBinding` (appends instance tools alongside\n * schema-only definitions)\n * - `calculateInstructionTokens` (counts schema bytes for accounting)\n *\n * In event-driven mode (`toolDefinitions` present) instance tools are\n * appended unfiltered; outside event-driven mode they pass through\n * `filterToolsForBinding`. Centralizing the decision here prevents the\n * accounting/binding paths from drifting apart, which was the root\n * cause of the original miscount (Fixes upstream #121).\n */\n private getEffectiveInstanceTools(): t.GraphTools | undefined {\n if (!this.tools) {\n return undefined;\n }\n const isEventDriven = (this.toolDefinitions?.length ?? 0) > 0;\n if (isEventDriven || !this.toolRegistry) {\n return this.tools;\n }\n return this.filterToolsForBinding(this.tools);\n }\n\n /**\n * Calculate tool tokens and add to instruction tokens\n * Note: System message tokens are calculated during systemRunnable creation\n * Also tracks per-tool token breakdown for admin reporting\n */\n async calculateInstructionTokens(\n tokenCounter: t.TokenCounter\n ): Promise<void> {\n let toolTokens = 0;\n // Track names to avoid double-counting when a tool appears in both\n // this.tools (bound StructuredTool instances) and this.toolDefinitions\n // (MCP / event-driven schemas).\n const countedToolNames = new Set<string>();\n\n // Reset per-tool breakdown\n this.toolsDetail = [];\n\n /* Use `getEffectiveInstanceTools()` so accounting reflects exactly the\n * subset that `getToolsForBinding` would emit — preventing the\n * worst-case-ceiling miscount that triggered spurious `empty_messages`\n * preflight rejections at low `maxContextTokens`. Deferred and\n * non-`'direct'` `toolDefinitions` are excluded by\n * `getActiveToolDefinitions()` below. */\n const effectiveInstanceTools = this.getEffectiveInstanceTools();\n\n // Count tokens for bound tools (StructuredTool instances with .schema)\n if (effectiveInstanceTools && effectiveInstanceTools.length > 0) {\n for (const tool of effectiveInstanceTools) {\n const genericTool = tool as Record<string, unknown>;\n if (\n genericTool.schema != null &&\n typeof genericTool.schema === 'object'\n ) {\n const toolName = (genericTool.name as string | undefined) ?? '';\n const jsonSchema = toJsonSchema(\n genericTool.schema,\n toolName,\n (genericTool.description as string | undefined) ?? ''\n );\n const tokens = tokenCounter(\n new SystemMessage(JSON.stringify(jsonSchema))\n );\n if (toolName) {\n countedToolNames.add(toolName);\n }\n\n // Track per-tool breakdown\n this.toolsDetail.push({ name: toolName || 'unknown', tokens });\n toolTokens += tokens;\n }\n }\n }\n\n // Count tokens for tool definitions (MCP / event-driven tools).\n // These are sent to the provider API as tool schemas alongside bound tools.\n // Both can be populated simultaneously (graph tools + MCP tools).\n // Use `getActiveToolDefinitions()` so programmatic-only definitions\n // (e.g. `allowed_callers: ['code_execution']`) and deferred-and-\n // -undiscovered ones don't inflate `toolSchemaTokens` while never\n // being bound to the model.\n for (const def of this.getActiveToolDefinitions()) {\n if (countedToolNames.has(def.name)) {\n continue; // Already counted via this.tools\n }\n const schema = {\n name: def.name,\n description: def.description ?? '',\n parameters: def.parameters ?? {},\n };\n const defTokens = tokenCounter(\n new SystemMessage(JSON.stringify(schema))\n );\n this.toolsDetail.push({\n name: def.name || 'unknown',\n tokens: defTokens,\n });\n toolTokens += defTokens;\n }\n\n // Store total tool tokens for breakdown reporting\n this.toolTokensTotal = toolTokens;\n\n // Add tool tokens to existing instruction tokens (which may already include system message tokens)\n this.instructionTokens += toolTokens;\n }\n\n /**\n * Set the per-prompt token breakdown for detailed admin tracking.\n * Called by the client after assembling all prompt components.\n * @param breakdown - Object with token counts per prompt component\n */\n setPromptBreakdown(breakdown: {\n branding?: number;\n toolRouting?: number;\n agentInstructions?: number;\n mcpInstructions?: number;\n artifacts?: number;\n memory?: number;\n }): void {\n if (breakdown.branding !== undefined)\n this.promptBreakdown.branding = breakdown.branding;\n if (breakdown.toolRouting !== undefined)\n this.promptBreakdown.toolRouting = breakdown.toolRouting;\n if (breakdown.agentInstructions !== undefined)\n this.promptBreakdown.agentInstructions = breakdown.agentInstructions;\n if (breakdown.mcpInstructions !== undefined)\n this.promptBreakdown.mcpInstructions = breakdown.mcpInstructions;\n if (breakdown.artifacts !== undefined)\n this.promptBreakdown.artifacts = breakdown.artifacts;\n if (breakdown.memory !== undefined)\n this.promptBreakdown.memory = breakdown.memory;\n }\n\n /**\n * Get a detailed breakdown of context tokens for admin reporting.\n * This provides visibility into what's consuming the input token budget.\n * @returns ContextBreakdown object with per-component token counts\n */\n getContextBreakdown(): {\n instructions: number;\n artifacts: number;\n tools: number;\n toolCount: number;\n toolContext: number;\n total: number;\n toolsDetail: Array<{ name: string; tokens: number }>;\n toolContextDetail: Array<{ name: string; tokens: number }>;\n prompts?: {\n branding: number;\n toolRouting: number;\n agentInstructions: number;\n mcpInstructions: number;\n artifacts: number;\n memory: number;\n };\n } {\n // Calculate sum of prompt components\n const promptsTotal =\n this.promptBreakdown.branding +\n this.promptBreakdown.toolRouting +\n this.promptBreakdown.agentInstructions +\n this.promptBreakdown.mcpInstructions +\n this.promptBreakdown.artifacts +\n this.promptBreakdown.memory;\n\n return {\n // System message tokens (instructions + additional_instructions)\n instructions: this.systemMessageTokens,\n // Artifacts prompt tokens\n artifacts: this.promptBreakdown.artifacts,\n // Total tool definition tokens\n tools: this.toolTokensTotal,\n // Number of tools\n toolCount: this.toolsDetail.length,\n // Tool context/usage instructions (currently embedded in system message)\n toolContext: 0,\n // Total tracked context tokens\n total: this.instructionTokens,\n // Per-tool token breakdown\n toolsDetail: [...this.toolsDetail],\n // Tool context detail (currently not tracked separately)\n toolContextDetail: [],\n // Per-prompt breakdown (only include if any prompts were tracked)\n prompts: promptsTotal > 0 ? { ...this.promptBreakdown } : undefined,\n };\n }\n\n /**\n * Gets the tool registry for deferred tools (for tool search).\n * @param onlyDeferred If true, only returns tools with defer_loading=true\n * @returns LCToolRegistry with tool definitions\n */\n getDeferredToolRegistry(onlyDeferred: boolean = true): t.LCToolRegistry {\n const registry: t.LCToolRegistry = new Map();\n\n if (!this.toolRegistry) {\n return registry;\n }\n\n for (const [name, toolDef] of this.toolRegistry) {\n if (!onlyDeferred || toolDef.defer_loading === true) {\n registry.set(name, toolDef);\n }\n }\n\n return registry;\n }\n\n /**\n * Sets the handoff context for this agent.\n * Call this when the agent receives control via handoff from another agent.\n * Marks system runnable as stale to include handoff context in system message.\n * @param sourceAgentName - Name of the agent that transferred control\n * @param parallelSiblings - Names of other agents executing in parallel with this one\n */\n setHandoffContext(sourceAgentName: string, parallelSiblings: string[]): void {\n this.handoffContext = { sourceAgentName, parallelSiblings };\n this.systemRunnableStale = true;\n }\n\n /**\n * Clears any handoff context.\n * Call this when resetting the agent or when handoff context is no longer relevant.\n */\n clearHandoffContext(): void {\n if (this.handoffContext) {\n this.handoffContext = undefined;\n this.systemRunnableStale = true;\n }\n }\n\n /**\n * Marks tools as discovered via tool search.\n * Discovered tools will be included in the next model binding.\n * Only marks system runnable stale if NEW tools were actually added.\n * @param toolNames - Array of discovered tool names\n * @returns true if any new tools were discovered\n */\n markToolsAsDiscovered(toolNames: string[]): boolean {\n let hasNewDiscoveries = false;\n for (const name of toolNames) {\n if (!this.discoveredToolNames.has(name)) {\n this.discoveredToolNames.add(name);\n hasNewDiscoveries = true;\n }\n }\n if (hasNewDiscoveries) {\n this.systemRunnableStale = true;\n }\n return hasNewDiscoveries;\n }\n\n /**\n * Gets tools that should be bound to the LLM.\n * In event-driven mode (toolDefinitions present, tools empty), creates schema-only tools.\n * Otherwise filters tool instances based on:\n * 1. Non-deferred tools with allowed_callers: ['direct']\n * 2. Discovered tools (from tool search)\n * @returns Array of tools to bind to model\n */\n getToolsForBinding(): t.GraphTools | undefined {\n /** Event-driven mode: create schema-only tools from definitions */\n if (this.toolDefinitions && this.toolDefinitions.length > 0) {\n return this.getEventDrivenToolsForBinding();\n }\n\n /** Traditional mode: filter actual tool instances */\n const filtered = this.getEffectiveInstanceTools();\n\n if (this.graphTools && this.graphTools.length > 0) {\n return [...(filtered ?? []), ...this.graphTools];\n }\n\n return filtered;\n }\n\n /** Creates schema-only tools from toolDefinitions for event-driven mode, merged with native tools */\n private getEventDrivenToolsForBinding(): t.GraphTools {\n if (!this.toolDefinitions) {\n return this.graphTools ?? [];\n }\n\n /* Reuse `getActiveToolDefinitions()` so the binding gate matches the\n * accounting filter exactly (single source of truth). */\n const schemaTools = createSchemaOnlyTools(\n this.getActiveToolDefinitions()\n ) as t.GraphTools;\n\n const allTools = [...schemaTools];\n\n if (this.graphTools && this.graphTools.length > 0) {\n allTools.push(...this.graphTools);\n }\n\n /* In event-driven mode, instance tools are appended UNFILTERED (matching\n * `getEffectiveInstanceTools()`'s event-driven branch). Deferred /\n * non-direct logic is represented in `toolDefinitions`, not here. */\n if (this.tools && this.tools.length > 0) {\n allTools.push(...this.tools);\n }\n\n return allTools;\n }\n\n /** Filters tool instances for binding based on registry config */\n private filterToolsForBinding(tools: t.GraphTools): t.GraphTools {\n return tools.filter((tool) => {\n if (!('name' in tool)) {\n return true;\n }\n\n const toolDef = this.toolRegistry?.get(tool.name);\n if (!toolDef) {\n return true;\n }\n\n if (this.discoveredToolNames.has(tool.name)) {\n const allowedCallers = toolDef.allowed_callers ?? ['direct'];\n return allowedCallers.includes('direct');\n }\n\n const allowedCallers = toolDef.allowed_callers ?? ['direct'];\n return (\n allowedCallers.includes('direct') && toolDef.defer_loading !== true\n );\n });\n }\n}\n"],"names":["ContentTypes","MAX_SYSTEM_CACHE_BLOCKS","Providers","isBedrockCacheSupported","SystemMessage","RunnableLambda","toJsonSchema","createSchemaOnlyTools"],"mappings":"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"}
1
+ {"version":3,"file":"AgentContext.cjs","sources":["../../../src/agents/AgentContext.ts"],"sourcesContent":["/* eslint-disable no-console */\n// src/agents/AgentContext.ts\nimport { SystemMessage } from '@langchain/core/messages';\nimport { RunnableLambda } from '@langchain/core/runnables';\nimport type {\n UsageMetadata,\n BaseMessage,\n BaseMessageFields,\n} from '@langchain/core/messages';\nimport type { RunnableConfig, Runnable } from '@langchain/core/runnables';\nimport type * as t from '@/types';\nimport type { createPruneMessages } from '@/messages';\nimport { createSchemaOnlyTools } from '@/tools/schema';\nimport { ContentTypes, Providers } from '@/common';\nimport { MAX_SYSTEM_CACHE_BLOCKS } from '@/types/agent-cache';\nimport { isBedrockCacheSupported } from '@/llm/bedrock/cacheSupport';\nimport { toJsonSchema } from '@/utils/schema';\n\n/**\n * Encapsulates agent-specific state that can vary between agents in a multi-agent system\n */\nexport class AgentContext {\n /**\n * Create an AgentContext from configuration with token accounting initialization\n */\n static fromConfig(\n agentConfig: t.AgentInputs,\n tokenCounter?: t.TokenCounter,\n indexTokenCountMap?: Record<string, number>\n ): AgentContext {\n const {\n agentId,\n name,\n description,\n provider,\n clientOptions,\n tools,\n toolMap,\n toolEnd,\n toolRegistry,\n toolDefinitions,\n system_cache_blocks,\n instructions,\n instructions_cache_ttl,\n additional_instructions,\n streamBuffer,\n maxContextTokens,\n reasoningKey,\n useLegacyContent,\n dynamicContext,\n structuredOutput: structuredOutputCamel,\n\n structured_output: structuredOutputSnake,\n discoveredTools,\n summarizeCallback,\n persistedSummary,\n summarizationConfig,\n fileManifest,\n } = agentConfig;\n\n // Normalize structured output: support both camelCase and snake_case inputs\n // Priority: structuredOutput (camelCase) > structured_output (snake_case with enabled check)\n let structuredOutput: t.StructuredOutputConfig | undefined;\n if (structuredOutputCamel) {\n structuredOutput = structuredOutputCamel;\n } else if (\n structuredOutputSnake?.enabled === true &&\n structuredOutputSnake.schema != null\n ) {\n // Convert snake_case input to StructuredOutputConfig\n structuredOutput = {\n schema: structuredOutputSnake.schema,\n name: structuredOutputSnake.name,\n description: structuredOutputSnake.description,\n mode: structuredOutputSnake.mode,\n strict: structuredOutputSnake.strict,\n };\n }\n\n const agentContext = new AgentContext({\n agentId,\n name: name ?? agentId,\n description,\n provider,\n clientOptions,\n maxContextTokens,\n streamBuffer,\n tools,\n toolMap,\n toolRegistry,\n toolDefinitions,\n systemCacheBlocks: system_cache_blocks,\n instructions,\n instructionsCacheTtl: instructions_cache_ttl,\n additionalInstructions: additional_instructions,\n reasoningKey,\n toolEnd,\n instructionTokens: 0,\n tokenCounter,\n useLegacyContent,\n dynamicContext,\n structuredOutput,\n discoveredTools,\n summarizeCallback,\n persistedSummary,\n summarizationConfig,\n fileManifest,\n });\n\n /**\n * Track subagent inputs on the context. `_sourceInputs`\n * preserves the original AgentInputs so SubagentExecutor can self-spawn\n * (`SubagentConfig.self === true`) without separate config; the other\n * two flow straight from agentConfig.\n */\n agentContext._sourceInputs = agentConfig;\n agentContext.subagentConfigs = agentConfig.subagentConfigs;\n agentContext.maxSubagentDepth = agentConfig.maxSubagentDepth;\n\n if (tokenCounter) {\n // Initialize system runnable BEFORE async tool token calculation\n // This ensures system message tokens are in instructionTokens before\n // updateTokenMapWithInstructions is called\n agentContext.initializeSystemRunnable();\n\n const tokenMap = indexTokenCountMap || {};\n agentContext.baseIndexTokenCountMap = { ...tokenMap };\n agentContext.indexTokenCountMap = tokenMap;\n agentContext.tokenCalculationPromise = agentContext\n .calculateInstructionTokens(tokenCounter)\n .then(() => {\n // Update token map with instruction tokens (includes system + tool tokens)\n agentContext.updateTokenMapWithInstructions(tokenMap);\n })\n .catch((err) => {\n console.error('Error calculating instruction tokens:', err);\n });\n } else if (indexTokenCountMap) {\n agentContext.baseIndexTokenCountMap = { ...indexTokenCountMap };\n agentContext.indexTokenCountMap = indexTokenCountMap;\n }\n\n return agentContext;\n }\n\n /** Agent identifier */\n agentId!: string;\n /** Human-readable name for this agent (used in handoff context). Falls back to agentId if not provided. */\n name?: string;\n /** Description of what this agent does (used to enrich handoff tool descriptions). */\n description?: string;\n /** Provider for this specific agent */\n provider!: Providers;\n /** Client options for this agent */\n clientOptions?: t.ClientOptions;\n /** Token count map indexed by message position */\n indexTokenCountMap: Record<string, number | undefined> = {};\n /** Canonical pre-run token map used to restore token accounting on reset */\n baseIndexTokenCountMap: Record<string, number> = {};\n /** Maximum context tokens for this agent */\n maxContextTokens?: number;\n /** Current usage metadata for this agent */\n currentUsage?: Partial<UsageMetadata>;\n /** Prune messages function configured for this agent */\n pruneMessages?: ReturnType<typeof createPruneMessages>;\n /** Token counter function for this agent */\n tokenCounter?: t.TokenCounter;\n /** Instructions/system message token count */\n instructionTokens: number = 0;\n /** The amount of time that should pass before another consecutive API call */\n streamBuffer?: number;\n /** Last stream call timestamp for rate limiting */\n lastStreamCall?: number;\n /** Tools available to this agent */\n tools?: t.GraphTools;\n /** Graph-managed tools (e.g., handoff tools created by MultiAgentGraph) that bypass event-driven dispatch */\n graphTools?: t.GraphTools;\n /** Tool map for this agent */\n toolMap?: t.ToolMap;\n /**\n * Tool definitions registry (includes deferred and programmatic tool metadata).\n * Used for tool search and programmatic tool calling.\n */\n toolRegistry?: t.LCToolRegistry;\n /**\n * Serializable tool definitions for event-driven execution.\n * When provided, ToolNode operates in event-driven mode.\n */\n toolDefinitions?: t.LCTool[];\n /** Set of tool names discovered via tool search (to be loaded) */\n discoveredToolNames: Set<string> = new Set();\n /**\n * Cacheable system content blocks emitted before `instructions`. Each\n * gets its own cache marker (cachePoint on Bedrock, cache_control on\n * Anthropic). Earlier entries = wider cache key (best for cross-tenant\n * sharing). See `src/types/agent-cache.ts`.\n */\n systemCacheBlocks?: t.SystemCacheBlock[];\n /** Stable/cacheable instructions for this agent (gets trailing marker). */\n instructions?: string;\n /** TTL for the trailing instructions cache marker. Defaults to '5m'. */\n instructionsCacheTtl?: t.AgentCacheTTL;\n /** Dynamic system tail (per-user / per-message — never cached). */\n additionalInstructions?: string;\n /**\n * Dynamic context that changes per-request (e.g., current time, user info).\n * This is NOT included in the system message to preserve cache.\n * Instead, it's injected as a user message at the start of the conversation.\n */\n dynamicContext?: string;\n /** Reasoning key for this agent */\n reasoningKey: 'reasoning_content' | 'reasoning' = 'reasoning_content';\n /** Last token for reasoning detection */\n lastToken?: string;\n /** Token type switch state */\n tokenTypeSwitch?: 'reasoning' | 'content';\n /** Tracks how many reasoning→text transitions have occurred (ensures unique post-reasoning step keys) */\n reasoningTransitionCount = 0;\n /** Current token type being processed */\n currentTokenType: ContentTypes.TEXT | ContentTypes.THINK | 'think_and_text' =\n ContentTypes.TEXT;\n /** Whether tools should end the workflow */\n toolEnd: boolean = false;\n /** Cached system runnable (created lazily) */\n private cachedSystemRunnable?: Runnable<\n BaseMessage[],\n (BaseMessage | SystemMessage)[],\n RunnableConfig<Record<string, unknown>>\n >;\n /** Whether system runnable needs rebuild (set when discovered tools change) */\n private systemRunnableStale: boolean = true;\n /** Cached system message token count (separate from tool tokens) */\n private systemMessageTokens: number = 0;\n /** Promise for token calculation initialization */\n tokenCalculationPromise?: Promise<void>;\n /** Format content blocks as strings (for legacy compatibility) */\n useLegacyContent: boolean = false;\n /** Detailed per-tool token breakdown for admin tracking */\n private toolsDetail: Array<{ name: string; tokens: number }> = [];\n /** Total tool tokens (sum of all toolsDetail) */\n private toolTokensTotal: number = 0;\n /** Per-prompt token breakdown for detailed admin reporting */\n private promptBreakdown: {\n branding: number;\n toolRouting: number;\n agentInstructions: number;\n mcpInstructions: number;\n artifacts: number;\n memory: number;\n } = {\n branding: 0,\n toolRouting: 0,\n agentInstructions: 0,\n mcpInstructions: 0,\n artifacts: 0,\n memory: 0,\n };\n /**\n * Handoff context when this agent receives control via handoff.\n * Contains source and parallel execution info for system message context.\n */\n handoffContext?: {\n /** Source agent that transferred control */\n sourceAgentName: string;\n /** Names of sibling agents executing in parallel (empty if sequential) */\n parallelSiblings: string[];\n };\n /**\n * Structured output configuration.\n * When set, the agent will return a validated JSON response\n * instead of streaming text.\n */\n structuredOutput?: t.StructuredOutputConfig;\n /** Optional callback to summarize discarded messages during context pruning */\n summarizeCallback?: (messages: BaseMessage[]) => Promise<string | undefined>;\n /** Pre-existing summary loaded from persistent storage, injected into context on new turns */\n persistedSummary?: string;\n /** Summarization configuration controlling trigger strategy, reserve ratio, and EMA calibration */\n summarizationConfig?: t.SummarizationConfig;\n /** Lightweight file manifest for file-aware compaction (IDs and names only, no content) */\n fileManifest?: t.FileManifestEntry[];\n /** Original AgentInputs used to create this context — used for self-spawn subagent resolution. */\n _sourceInputs?: t.AgentInputs;\n /** Subagent configurations for hierarchical delegation. */\n subagentConfigs?: t.SubagentConfig[];\n /** Maximum subagent nesting depth. */\n maxSubagentDepth?: number;\n\n constructor({\n agentId,\n name,\n description,\n provider,\n clientOptions,\n maxContextTokens,\n streamBuffer,\n tokenCounter,\n tools,\n toolMap,\n toolRegistry,\n toolDefinitions,\n systemCacheBlocks,\n instructions,\n instructionsCacheTtl,\n additionalInstructions,\n dynamicContext,\n reasoningKey,\n toolEnd,\n instructionTokens,\n useLegacyContent,\n structuredOutput,\n discoveredTools,\n summarizeCallback,\n persistedSummary,\n summarizationConfig,\n fileManifest,\n }: {\n agentId: string;\n name?: string;\n description?: string;\n provider: Providers;\n clientOptions?: t.ClientOptions;\n maxContextTokens?: number;\n streamBuffer?: number;\n tokenCounter?: t.TokenCounter;\n tools?: t.GraphTools;\n toolMap?: t.ToolMap;\n toolRegistry?: t.LCToolRegistry;\n toolDefinitions?: t.LCTool[];\n systemCacheBlocks?: t.SystemCacheBlock[];\n instructions?: string;\n instructionsCacheTtl?: t.AgentCacheTTL;\n additionalInstructions?: string;\n dynamicContext?: string;\n reasoningKey?: 'reasoning_content' | 'reasoning';\n toolEnd?: boolean;\n instructionTokens?: number;\n useLegacyContent?: boolean;\n structuredOutput?: t.StructuredOutputConfig;\n discoveredTools?: string[];\n summarizeCallback?: (\n messages: BaseMessage[]\n ) => Promise<string | undefined>;\n persistedSummary?: string;\n summarizationConfig?: t.SummarizationConfig;\n fileManifest?: t.FileManifestEntry[];\n }) {\n this.agentId = agentId;\n this.name = name;\n this.description = description;\n this.provider = provider;\n this.clientOptions = clientOptions;\n this.maxContextTokens = maxContextTokens;\n this.streamBuffer = streamBuffer;\n this.tokenCounter = tokenCounter;\n this.tools = tools;\n this.toolMap = toolMap;\n this.toolRegistry = toolRegistry;\n this.toolDefinitions = toolDefinitions;\n if (\n systemCacheBlocks &&\n systemCacheBlocks.length > MAX_SYSTEM_CACHE_BLOCKS\n ) {\n throw new Error(\n `system_cache_blocks supports at most ${MAX_SYSTEM_CACHE_BLOCKS} entries ` +\n `(received ${systemCacheBlocks.length}); excess entries would exceed ` +\n `Bedrock's 4-cachePoint per-request budget once the tools array and ` +\n `trailing 'instructions' marker are counted. See src/types/agent-cache.ts.`,\n );\n }\n this.systemCacheBlocks = systemCacheBlocks;\n this.instructions = instructions;\n this.instructionsCacheTtl = instructionsCacheTtl;\n this.additionalInstructions = additionalInstructions;\n this.dynamicContext = dynamicContext;\n this.structuredOutput = structuredOutput;\n this.summarizeCallback = summarizeCallback;\n this.persistedSummary = persistedSummary;\n this.summarizationConfig = summarizationConfig;\n this.fileManifest = fileManifest;\n if (reasoningKey) {\n this.reasoningKey = reasoningKey;\n }\n if (toolEnd !== undefined) {\n this.toolEnd = toolEnd;\n }\n if (instructionTokens !== undefined) {\n this.instructionTokens = instructionTokens;\n }\n\n this.useLegacyContent = useLegacyContent ?? false;\n\n if (discoveredTools && discoveredTools.length > 0) {\n for (const toolName of discoveredTools) {\n this.discoveredToolNames.add(toolName);\n }\n }\n }\n\n /**\n * Checks if structured output mode is enabled for this agent.\n * When enabled, the agent will use model.invoke() instead of streaming\n * and return a validated JSON response.\n */\n get isStructuredOutputMode(): boolean {\n // Runtime safety: schema can be null/undefined via API despite type saying required\n return (\n this.structuredOutput != null &&\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n this.structuredOutput.schema != null\n );\n }\n\n /**\n * Gets the structured output schema with normalized defaults.\n * Returns undefined if structured output is not configured.\n */\n getStructuredOutputSchema(): Record<string, unknown> | undefined {\n if (!this.structuredOutput?.schema) {\n return undefined;\n }\n\n const schema = { ...this.structuredOutput.schema };\n\n // Ensure type is set\n if (schema.type == null && schema.properties != null) {\n schema.type = 'object';\n }\n\n // Add title from config name\n if (\n this.structuredOutput.name != null &&\n this.structuredOutput.name !== '' &&\n schema.title == null\n ) {\n schema.title = this.structuredOutput.name;\n }\n\n // Add description from config\n if (\n this.structuredOutput.description != null &&\n this.structuredOutput.description !== '' &&\n schema.description == null\n ) {\n schema.description = this.structuredOutput.description;\n }\n\n // Enable strict mode by default\n if (this.structuredOutput.strict !== false && schema.type === 'object') {\n schema.additionalProperties = schema.additionalProperties ?? false;\n }\n\n return schema;\n }\n\n /**\n * Resolves the structured output mode to a concrete method based on provider capabilities.\n *\n * Resolution logic:\n * - 'native' or 'auto' + supported provider → native constrained decoding\n * - 'native' + unsupported provider → fallback to 'functionCalling' with warning\n * - 'provider' → LangChain's jsonMode (existing behavior)\n * - 'tool' → function calling trick (existing behavior)\n * - 'auto' + unsupported provider → 'functionCalling'\n *\n * @returns The resolved method for withStructuredOutput, or 'native' for direct API usage\n */\n resolveStructuredOutputMode(): {\n method: t.ResolvedStructuredOutputMethod;\n warnings: string[];\n } {\n const mode = this.structuredOutput?.mode ?? 'auto';\n const warnings: string[] = [];\n\n // Providers that support native constrained decoding via LangChain\n const nativeProviders = new Set([\n Providers.ANTHROPIC,\n Providers.OPENAI,\n Providers.AZURE,\n ]);\n\n // Providers where LangChain supports jsonMode\n const jsonModeProviders = new Set([\n Providers.ANTHROPIC,\n Providers.OPENAI,\n Providers.AZURE,\n ]);\n\n switch (mode) {\n case 'native': {\n if (nativeProviders.has(this.provider)) {\n if (this.provider === Providers.ANTHROPIC) {\n return { method: 'jsonSchema', warnings };\n }\n // OpenAI/Azure\n return { method: 'jsonSchema', warnings };\n }\n // Fallback for unsupported providers\n warnings.push(\n `Native structured output is not supported for provider '${this.provider}'. Falling back to function calling.`\n );\n return { method: 'functionCalling', warnings };\n }\n\n case 'auto': {\n if (nativeProviders.has(this.provider)) {\n if (this.provider === Providers.ANTHROPIC) {\n return { method: 'jsonSchema', warnings };\n }\n // OpenAI/Azure\n return { method: 'jsonSchema', warnings };\n }\n // Default to function calling for all other providers\n return { method: undefined, warnings };\n }\n\n case 'provider': {\n if (this.provider === Providers.BEDROCK) {\n // Bedrock doesn't support jsonMode, fall back to functionCalling\n return { method: 'functionCalling', warnings };\n }\n if (jsonModeProviders.has(this.provider)) {\n return { method: 'jsonMode', warnings };\n }\n return { method: 'jsonMode', warnings };\n }\n\n case 'tool': {\n return { method: 'functionCalling', warnings };\n }\n\n default: {\n return { method: undefined, warnings };\n }\n }\n }\n\n /**\n * Builds instructions text for tools that are ONLY callable via programmatic code execution.\n * These tools cannot be called directly by the LLM but are available through the\n * run_tools_with_code tool.\n *\n * Includes:\n * - Code_execution-only tools that are NOT deferred\n * - Code_execution-only tools that ARE deferred but have been discovered via tool search\n */\n private buildProgrammaticOnlyToolsInstructions(): string {\n if (!this.toolRegistry) return '';\n\n const programmaticOnlyTools: t.LCTool[] = [];\n for (const [name, toolDef] of this.toolRegistry) {\n const allowedCallers = toolDef.allowed_callers ?? ['direct'];\n const isCodeExecutionOnly =\n allowedCallers.includes('code_execution') &&\n !allowedCallers.includes('direct');\n\n if (!isCodeExecutionOnly) continue;\n\n // Include if: not deferred OR deferred but discovered\n const isDeferred = toolDef.defer_loading === true;\n const isDiscovered = this.discoveredToolNames.has(name);\n if (!isDeferred || isDiscovered) {\n programmaticOnlyTools.push(toolDef);\n }\n }\n\n if (programmaticOnlyTools.length === 0) return '';\n\n const toolDescriptions = programmaticOnlyTools\n .map((tool) => {\n let desc = `- **${tool.name}**`;\n if (tool.description != null && tool.description !== '') {\n desc += `: ${tool.description}`;\n }\n if (tool.parameters) {\n desc += `\\n Parameters: ${JSON.stringify(tool.parameters, null, 2).replace(/\\n/g, '\\n ')}`;\n }\n return desc;\n })\n .join('\\n\\n');\n\n return (\n '\\n\\n## Programmatic-Only Tools\\n\\n' +\n 'The following tools are available exclusively through the `run_tools_with_code` tool. ' +\n 'You cannot call these tools directly; instead, use `run_tools_with_code` with Python code that invokes them.\\n\\n' +\n toolDescriptions\n );\n }\n\n /**\n * Gets the system runnable, creating it lazily if needed.\n * Includes instructions, additional instructions, and programmatic-only tools documentation.\n * Only rebuilds when marked stale (via markToolsAsDiscovered).\n */\n get systemRunnable():\n | Runnable<\n BaseMessage[],\n (BaseMessage | SystemMessage)[],\n RunnableConfig<Record<string, unknown>>\n >\n | undefined {\n // Return cached if not stale\n if (!this.systemRunnableStale && this.cachedSystemRunnable !== undefined) {\n return this.cachedSystemRunnable;\n }\n\n // Stale or first access - rebuild\n this.cachedSystemRunnable = this.buildSystemRunnable({\n systemCacheBlocks: this.systemCacheBlocks ?? [],\n stableInstructions: this.buildStableInstructionsString(),\n dynamicInstructions: this.buildDynamicInstructionsString(),\n });\n this.systemRunnableStale = false;\n return this.cachedSystemRunnable;\n }\n\n /**\n * Explicitly initializes the system runnable.\n * Call this before async token calculation to ensure system message tokens are counted first.\n */\n initializeSystemRunnable(): void {\n if (this.systemRunnableStale || this.cachedSystemRunnable === undefined) {\n this.cachedSystemRunnable = this.buildSystemRunnable({\n systemCacheBlocks: this.systemCacheBlocks ?? [],\n stableInstructions: this.buildStableInstructionsString(),\n dynamicInstructions: this.buildDynamicInstructionsString(),\n });\n this.systemRunnableStale = false;\n }\n }\n\n /**\n * Builds the cacheable instructions string (without creating SystemMessage).\n * Includes agent identity preamble, the agent's static instructions, and\n * programmatic-only tool documentation. This is the part of the system\n * message that stays byte-stable across turns and across users for the\n * same agent — the prompt cache prefix.\n *\n * Per-user/per-message dynamic context belongs in\n * `buildDynamicInstructionsString()` so it does not invalidate the cache\n * marker. (See `feedback_cache_stability_invariant` for the rule.)\n */\n private buildStableInstructionsString(): string {\n const parts: string[] = [];\n\n /** Build agent identity and handoff context preamble */\n const identityPreamble = this.buildIdentityPreamble();\n if (identityPreamble) {\n parts.push(identityPreamble);\n }\n\n /** Add main instructions */\n if (this.instructions != null && this.instructions !== '') {\n parts.push(this.instructions);\n }\n\n /** Add programmatic tools documentation */\n const programmaticToolsDoc = this.buildProgrammaticOnlyToolsInstructions();\n if (programmaticToolsDoc) {\n parts.push(programmaticToolsDoc);\n }\n\n return parts.join('\\n\\n');\n }\n\n /**\n * Builds the dynamic system-tail string (without creating SystemMessage).\n * Keep this out of prompt-cache-marked content so volatile per-call\n * context does not invalidate the stable prefix.\n *\n * `additional_instructions` is treated as dynamic (per-user/per-message\n * memory, runtime context, etc.) and intentionally excluded from the\n * cacheable prefix.\n */\n private buildDynamicInstructionsString(): string {\n const parts: string[] = [];\n\n if (\n this.additionalInstructions != null &&\n this.additionalInstructions !== ''\n ) {\n parts.push(this.additionalInstructions);\n }\n\n return parts.join('\\n\\n');\n }\n\n /**\n * Builds the agent identity preamble including handoff context if present.\n * This helps the agent understand its role in the multi-agent workflow.\n */\n private buildIdentityPreamble(): string {\n if (!this.handoffContext) return '';\n\n const displayName = this.name ?? this.agentId;\n const { sourceAgentName, parallelSiblings } = this.handoffContext;\n const isParallel = parallelSiblings.length > 0;\n\n const lines: string[] = [];\n lines.push('## Subagent Context');\n lines.push('');\n lines.push(\n `You are \"${displayName}\", a subagent spawned by \"${sourceAgentName}\" for a specific task.`\n );\n\n if (isParallel) {\n lines.push(`Running in parallel with: ${parallelSiblings.join(', ')}.`);\n }\n\n lines.push('');\n lines.push('### Your Role');\n lines.push('- Complete your assigned task. That is your entire purpose.');\n lines.push(`- You are NOT \"${sourceAgentName}\". Do not try to be.`);\n lines.push('');\n lines.push('### Rules');\n lines.push('1. **Stay focused** — Do your assigned task, nothing else.');\n lines.push(\n '2. **Complete the task** — Your final message will be automatically reported back.'\n );\n lines.push(\n '3. **Be autonomous** — Execute directly without asking for user confirmation. Use your tools and best judgment.'\n );\n lines.push(\n '4. **No placeholders** — Never generate fake or placeholder data. If you cannot retrieve real data, say so.'\n );\n lines.push(\n '5. **No side effects** — Do not send messages, emails, or notifications unless explicitly tasked to do so.'\n );\n lines.push('');\n lines.push('### Output');\n lines.push('When complete, your final response should include:');\n lines.push('- What you accomplished or found');\n lines.push('- Any relevant details the orchestrator should know');\n lines.push('- Keep it concise but informative');\n\n return lines.join('\\n');\n }\n\n /**\n * True when Anthropic prompt caching is enabled for this agent.\n * Used by `buildSystemRunnable` to decide whether to emit a cache_control\n * marker on the stable instructions prefix.\n */\n private hasAnthropicPromptCache(): boolean {\n if (this.provider !== Providers.ANTHROPIC) {\n return false;\n }\n const anthropicOptions = this.clientOptions as\n | t.AnthropicClientOptions\n | undefined;\n return anthropicOptions?.promptCache === true;\n }\n\n /**\n * True when Bedrock prompt caching is enabled for this agent AND the\n * configured model supports `cachePoint` blocks. Only Claude (and Nova)\n * models on Bedrock honour cachePoint — Llama / Titan reject it.\n *\n * Used by `buildSystemRunnable` to inline a `cachePoint` block right\n * after the stable system text so the system prefix is cached at the\n * AWS account level (cross-user, cross-conversation).\n */\n private hasBedrockPromptCache(): boolean {\n if (this.provider !== Providers.BEDROCK) {\n return false;\n }\n const bedrockOptions = this.clientOptions as\n | (t.BedrockAnthropicClientOptions & {\n model?: string;\n bedrockCacheModelPatterns?: readonly RegExp[];\n })\n | undefined;\n if (bedrockOptions?.promptCache !== true) {\n return false;\n }\n /* Allowlist-based check (see src/llm/bedrock/cacheSupport.ts). The\n * `bedrockCacheModelPatterns` clientOption lets consumers add new\n * model patterns without forking the library — useful when AWS adds\n * a new family before the next library release. */\n return isBedrockCacheSupported(\n bedrockOptions.model,\n bedrockOptions.bedrockCacheModelPatterns,\n );\n }\n\n /**\n * Build system runnable from cacheable blocks + the trailing\n * `instructions` block + optional dynamic tail.\n *\n * ┌──────────────────────────────────────────┐\n * │ system_cache_blocks[0].text │ ← consumer-defined block 0\n * ├──── cache marker (TTL = blocks[0].ttl) ──┤\n * │ system_cache_blocks[1].text │ ← consumer-defined block 1\n * ├──── cache marker (TTL = blocks[1].ttl) ──┤\n * │ instructions │ ← per-agent stable\n * ├──── cache marker (TTL = instructionsCacheTtl) ┤\n * │ additional_instructions │ ← dynamic (uncached)\n * └──────────────────────────────────────────┘\n *\n * If `system_cache_blocks` is empty, behavior reduces to the 2-tier\n * (instructions + dynamic) path used by simpler consumers.\n *\n * Provider-specific cache marker:\n * - Anthropic: `cache_control: { type: 'ephemeral', ttl?: '1h'|'5m' }` on\n * each cacheable text block. Up to 4 cache breakpoints per workspace.\n * - Bedrock (Claude/Nova): a `{ cachePoint: { type: 'default', ttl?: '1h'|'5m' } }`\n * block inserted after each cacheable section. Up to 4 cachePoints per\n * request, of which the tools array can consume up to 2.\n *\n * Cache key composition: every byte from message start to a given cache\n * marker forms that marker's cache key. Earlier blocks = wider cache key\n * = more cross-tenant share. Place the most stable content first.\n */\n private buildSystemRunnable({\n systemCacheBlocks,\n stableInstructions,\n dynamicInstructions,\n }: {\n systemCacheBlocks: t.SystemCacheBlock[];\n stableInstructions: string;\n dynamicInstructions: string;\n }):\n | Runnable<\n BaseMessage[],\n (BaseMessage | SystemMessage)[],\n RunnableConfig<Record<string, unknown>>\n >\n | undefined {\n const hasAnyCacheBlocks = systemCacheBlocks.length > 0;\n if (!hasAnyCacheBlocks && !stableInstructions && !dynamicInstructions) {\n // Remove previous tokens if we had a system message before\n this.instructionTokens -= this.systemMessageTokens;\n this.systemMessageTokens = 0;\n return undefined;\n }\n\n const useAnthropicCache = this.hasAnthropicPromptCache();\n const useBedrockCache = this.hasBedrockPromptCache();\n const instructionsTtl: t.AgentCacheTTL = this.instructionsCacheTtl ?? '5m';\n\n let finalInstructions: string | BaseMessageFields;\n if (useAnthropicCache) {\n type AnthropicTextBlock = {\n type: 'text';\n text: string;\n cache_control?: { type: 'ephemeral'; ttl?: t.AgentCacheTTL };\n };\n const content: AnthropicTextBlock[] = [];\n // Emit each system_cache_blocks entry with its own cache_control.\n for (const block of systemCacheBlocks) {\n if (!block.text) continue;\n content.push({\n type: 'text',\n text: block.text,\n cache_control: { type: 'ephemeral', ttl: block.ttl ?? '5m' },\n });\n }\n // Trailing stable instructions block (also cacheable).\n if (stableInstructions) {\n content.push({\n type: 'text',\n text: stableInstructions,\n cache_control: { type: 'ephemeral', ttl: instructionsTtl },\n });\n }\n if (dynamicInstructions) {\n // Dynamic tail: NO cache_control so it doesn't shift the cache prefix.\n content.push({ type: 'text', text: dynamicInstructions });\n }\n finalInstructions = { content } as BaseMessageFields;\n } else if (useBedrockCache && (hasAnyCacheBlocks || stableInstructions)) {\n type BedrockBlock =\n | { type: 'text'; text: string }\n | { cachePoint: { type: 'default'; ttl?: t.AgentCacheTTL } };\n const content: BedrockBlock[] = [];\n // Emit each system_cache_blocks entry as text + cachePoint pair.\n for (const block of systemCacheBlocks) {\n if (!block.text) continue;\n content.push({ type: 'text', text: block.text });\n content.push({\n cachePoint: { type: 'default', ttl: block.ttl ?? '5m' },\n });\n }\n if (stableInstructions) {\n content.push({ type: 'text', text: stableInstructions });\n content.push({\n cachePoint: { type: 'default', ttl: instructionsTtl },\n });\n }\n if (dynamicInstructions) {\n content.push({ type: 'text', text: dynamicInstructions });\n }\n finalInstructions = { content } as unknown as BaseMessageFields;\n } else {\n finalInstructions = [\n ...systemCacheBlocks.map((b) => b.text),\n stableInstructions,\n dynamicInstructions,\n ]\n .filter((part) => part !== '')\n .join('\\n\\n');\n }\n\n const systemMessage = new SystemMessage(finalInstructions);\n\n // Update token counts (subtract old, add new)\n if (this.tokenCounter) {\n this.instructionTokens -= this.systemMessageTokens;\n this.systemMessageTokens = this.tokenCounter(systemMessage);\n this.instructionTokens += this.systemMessageTokens;\n }\n\n return RunnableLambda.from((messages: BaseMessage[]) => {\n return [systemMessage, ...messages];\n }).withConfig({ runName: 'prompt' });\n }\n\n /**\n * Reset context for a new run\n */\n reset(): void {\n this.instructionTokens = 0;\n this.systemMessageTokens = 0;\n this.toolsDetail = [];\n this.toolTokensTotal = 0;\n this.cachedSystemRunnable = undefined;\n this.systemRunnableStale = true;\n this.lastToken = undefined;\n this.indexTokenCountMap = { ...this.baseIndexTokenCountMap };\n this.currentUsage = undefined;\n this.pruneMessages = undefined;\n this.lastStreamCall = undefined;\n this.tokenTypeSwitch = undefined;\n this.reasoningTransitionCount = 0;\n this.currentTokenType = ContentTypes.TEXT;\n this.discoveredToolNames.clear();\n this.handoffContext = undefined;\n\n if (this.tokenCounter) {\n this.initializeSystemRunnable();\n const baseTokenMap = { ...this.baseIndexTokenCountMap };\n this.indexTokenCountMap = baseTokenMap;\n this.tokenCalculationPromise = this.calculateInstructionTokens(\n this.tokenCounter\n )\n .then(() => {\n this.updateTokenMapWithInstructions(baseTokenMap);\n })\n .catch((err) => {\n console.error('Error calculating instruction tokens:', err);\n });\n } else {\n this.tokenCalculationPromise = undefined;\n }\n }\n\n /**\n * Update the token count map with instruction tokens\n */\n updateTokenMapWithInstructions(baseTokenMap: Record<string, number>): void {\n if (this.instructionTokens > 0) {\n // Shift all indices by the instruction token count\n const shiftedMap: Record<string, number> = {};\n for (const [key, value] of Object.entries(baseTokenMap)) {\n const index = parseInt(key, 10);\n if (!isNaN(index)) {\n shiftedMap[String(index)] =\n value + (index === 0 ? this.instructionTokens : 0);\n }\n }\n this.indexTokenCountMap = shiftedMap;\n } else {\n this.indexTokenCountMap = { ...baseTokenMap };\n }\n }\n\n /** Active tool definitions for token accounting (excludes deferred-and-undiscovered entries\n * and definitions whose `allowed_callers` exclude `'direct'`). Mirrors the gate\n * `getEventDrivenToolsForBinding` applies so accounting and binding stay aligned. */\n private getActiveToolDefinitions(): t.LCTool[] {\n if (!this.toolDefinitions) {\n return [];\n }\n return this.toolDefinitions.filter((def) => {\n const allowedCallers = def.allowed_callers ?? ['direct'];\n if (!allowedCallers.includes('direct')) {\n return false;\n }\n return (\n def.defer_loading !== true || this.discoveredToolNames.has(def.name)\n );\n });\n }\n\n /**\n * Single source of truth for \"which entries of `this.tools` should be\n * treated as actually bound\". Callers:\n * - `getToolsForBinding` (non-event-driven branch)\n * - `getEventDrivenToolsForBinding` (appends instance tools alongside\n * schema-only definitions)\n * - `calculateInstructionTokens` (counts schema bytes for accounting)\n *\n * In event-driven mode (`toolDefinitions` present) instance tools are\n * appended unfiltered; outside event-driven mode they pass through\n * `filterToolsForBinding`. Centralizing the decision here prevents the\n * accounting/binding paths from drifting apart, which was the root\n * cause of the original miscount (Fixes #121).\n */\n private getEffectiveInstanceTools(): t.GraphTools | undefined {\n if (!this.tools) {\n return undefined;\n }\n const isEventDriven = (this.toolDefinitions?.length ?? 0) > 0;\n if (isEventDriven || !this.toolRegistry) {\n return this.tools;\n }\n return this.filterToolsForBinding(this.tools);\n }\n\n /**\n * Calculate tool tokens and add to instruction tokens\n * Note: System message tokens are calculated during systemRunnable creation\n * Also tracks per-tool token breakdown for admin reporting\n */\n async calculateInstructionTokens(\n tokenCounter: t.TokenCounter\n ): Promise<void> {\n let toolTokens = 0;\n // Track names to avoid double-counting when a tool appears in both\n // this.tools (bound StructuredTool instances) and this.toolDefinitions\n // (MCP / event-driven schemas).\n const countedToolNames = new Set<string>();\n\n // Reset per-tool breakdown\n this.toolsDetail = [];\n\n /* Use `getEffectiveInstanceTools()` so accounting reflects exactly the\n * subset that `getToolsForBinding` would emit — preventing the\n * worst-case-ceiling miscount that triggered spurious `empty_messages`\n * preflight rejections at low `maxContextTokens`. Deferred and\n * non-`'direct'` `toolDefinitions` are excluded by\n * `getActiveToolDefinitions()` below. */\n const effectiveInstanceTools = this.getEffectiveInstanceTools();\n\n // Count tokens for bound tools (StructuredTool instances with .schema)\n if (effectiveInstanceTools && effectiveInstanceTools.length > 0) {\n for (const tool of effectiveInstanceTools) {\n const genericTool = tool as Record<string, unknown>;\n if (\n genericTool.schema != null &&\n typeof genericTool.schema === 'object'\n ) {\n const toolName = (genericTool.name as string | undefined) ?? '';\n const jsonSchema = toJsonSchema(\n genericTool.schema,\n toolName,\n (genericTool.description as string | undefined) ?? ''\n );\n const tokens = tokenCounter(\n new SystemMessage(JSON.stringify(jsonSchema))\n );\n if (toolName) {\n countedToolNames.add(toolName);\n }\n\n // Track per-tool breakdown\n this.toolsDetail.push({ name: toolName || 'unknown', tokens });\n toolTokens += tokens;\n }\n }\n }\n\n // Count tokens for tool definitions (MCP / event-driven tools).\n // These are sent to the provider API as tool schemas alongside bound tools.\n // Both can be populated simultaneously (graph tools + MCP tools).\n // Use `getActiveToolDefinitions()` so programmatic-only definitions\n // (e.g. `allowed_callers: ['code_execution']`) and deferred-and-\n // -undiscovered ones don't inflate `toolSchemaTokens` while never\n // being bound to the model.\n for (const def of this.getActiveToolDefinitions()) {\n if (countedToolNames.has(def.name)) {\n continue; // Already counted via this.tools\n }\n const schema = {\n name: def.name,\n description: def.description ?? '',\n parameters: def.parameters ?? {},\n };\n const defTokens = tokenCounter(\n new SystemMessage(JSON.stringify(schema))\n );\n this.toolsDetail.push({\n name: def.name || 'unknown',\n tokens: defTokens,\n });\n toolTokens += defTokens;\n }\n\n // Store total tool tokens for breakdown reporting\n this.toolTokensTotal = toolTokens;\n\n // Add tool tokens to existing instruction tokens (which may already include system message tokens)\n this.instructionTokens += toolTokens;\n }\n\n /**\n * Set the per-prompt token breakdown for detailed admin tracking.\n * Called by the client after assembling all prompt components.\n * @param breakdown - Object with token counts per prompt component\n */\n setPromptBreakdown(breakdown: {\n branding?: number;\n toolRouting?: number;\n agentInstructions?: number;\n mcpInstructions?: number;\n artifacts?: number;\n memory?: number;\n }): void {\n if (breakdown.branding !== undefined)\n this.promptBreakdown.branding = breakdown.branding;\n if (breakdown.toolRouting !== undefined)\n this.promptBreakdown.toolRouting = breakdown.toolRouting;\n if (breakdown.agentInstructions !== undefined)\n this.promptBreakdown.agentInstructions = breakdown.agentInstructions;\n if (breakdown.mcpInstructions !== undefined)\n this.promptBreakdown.mcpInstructions = breakdown.mcpInstructions;\n if (breakdown.artifacts !== undefined)\n this.promptBreakdown.artifacts = breakdown.artifacts;\n if (breakdown.memory !== undefined)\n this.promptBreakdown.memory = breakdown.memory;\n }\n\n /**\n * Get a detailed breakdown of context tokens for admin reporting.\n * This provides visibility into what's consuming the input token budget.\n * @returns ContextBreakdown object with per-component token counts\n */\n getContextBreakdown(): {\n instructions: number;\n artifacts: number;\n tools: number;\n toolCount: number;\n toolContext: number;\n total: number;\n toolsDetail: Array<{ name: string; tokens: number }>;\n toolContextDetail: Array<{ name: string; tokens: number }>;\n prompts?: {\n branding: number;\n toolRouting: number;\n agentInstructions: number;\n mcpInstructions: number;\n artifacts: number;\n memory: number;\n };\n } {\n // Calculate sum of prompt components\n const promptsTotal =\n this.promptBreakdown.branding +\n this.promptBreakdown.toolRouting +\n this.promptBreakdown.agentInstructions +\n this.promptBreakdown.mcpInstructions +\n this.promptBreakdown.artifacts +\n this.promptBreakdown.memory;\n\n return {\n // System message tokens (instructions + additional_instructions)\n instructions: this.systemMessageTokens,\n // Artifacts prompt tokens\n artifacts: this.promptBreakdown.artifacts,\n // Total tool definition tokens\n tools: this.toolTokensTotal,\n // Number of tools\n toolCount: this.toolsDetail.length,\n // Tool context/usage instructions (currently embedded in system message)\n toolContext: 0,\n // Total tracked context tokens\n total: this.instructionTokens,\n // Per-tool token breakdown\n toolsDetail: [...this.toolsDetail],\n // Tool context detail (currently not tracked separately)\n toolContextDetail: [],\n // Per-prompt breakdown (only include if any prompts were tracked)\n prompts: promptsTotal > 0 ? { ...this.promptBreakdown } : undefined,\n };\n }\n\n /**\n * Gets the tool registry for deferred tools (for tool search).\n * @param onlyDeferred If true, only returns tools with defer_loading=true\n * @returns LCToolRegistry with tool definitions\n */\n getDeferredToolRegistry(onlyDeferred: boolean = true): t.LCToolRegistry {\n const registry: t.LCToolRegistry = new Map();\n\n if (!this.toolRegistry) {\n return registry;\n }\n\n for (const [name, toolDef] of this.toolRegistry) {\n if (!onlyDeferred || toolDef.defer_loading === true) {\n registry.set(name, toolDef);\n }\n }\n\n return registry;\n }\n\n /**\n * Sets the handoff context for this agent.\n * Call this when the agent receives control via handoff from another agent.\n * Marks system runnable as stale to include handoff context in system message.\n * @param sourceAgentName - Name of the agent that transferred control\n * @param parallelSiblings - Names of other agents executing in parallel with this one\n */\n setHandoffContext(sourceAgentName: string, parallelSiblings: string[]): void {\n this.handoffContext = { sourceAgentName, parallelSiblings };\n this.systemRunnableStale = true;\n }\n\n /**\n * Clears any handoff context.\n * Call this when resetting the agent or when handoff context is no longer relevant.\n */\n clearHandoffContext(): void {\n if (this.handoffContext) {\n this.handoffContext = undefined;\n this.systemRunnableStale = true;\n }\n }\n\n /**\n * Marks tools as discovered via tool search.\n * Discovered tools will be included in the next model binding.\n * Only marks system runnable stale if NEW tools were actually added.\n * @param toolNames - Array of discovered tool names\n * @returns true if any new tools were discovered\n */\n markToolsAsDiscovered(toolNames: string[]): boolean {\n let hasNewDiscoveries = false;\n for (const name of toolNames) {\n if (!this.discoveredToolNames.has(name)) {\n this.discoveredToolNames.add(name);\n hasNewDiscoveries = true;\n }\n }\n if (hasNewDiscoveries) {\n this.systemRunnableStale = true;\n }\n return hasNewDiscoveries;\n }\n\n /**\n * Gets tools that should be bound to the LLM.\n * In event-driven mode (toolDefinitions present, tools empty), creates schema-only tools.\n * Otherwise filters tool instances based on:\n * 1. Non-deferred tools with allowed_callers: ['direct']\n * 2. Discovered tools (from tool search)\n * @returns Array of tools to bind to model\n */\n getToolsForBinding(): t.GraphTools | undefined {\n /** Event-driven mode: create schema-only tools from definitions */\n if (this.toolDefinitions && this.toolDefinitions.length > 0) {\n return this.getEventDrivenToolsForBinding();\n }\n\n /** Traditional mode: filter actual tool instances */\n const filtered = this.getEffectiveInstanceTools();\n\n if (this.graphTools && this.graphTools.length > 0) {\n return [...(filtered ?? []), ...this.graphTools];\n }\n\n return filtered;\n }\n\n /** Creates schema-only tools from toolDefinitions for event-driven mode, merged with native tools */\n private getEventDrivenToolsForBinding(): t.GraphTools {\n if (!this.toolDefinitions) {\n return this.graphTools ?? [];\n }\n\n /* Reuse `getActiveToolDefinitions()` so the binding gate matches the\n * accounting filter exactly (single source of truth). */\n const schemaTools = createSchemaOnlyTools(\n this.getActiveToolDefinitions()\n ) as t.GraphTools;\n\n const allTools = [...schemaTools];\n\n if (this.graphTools && this.graphTools.length > 0) {\n allTools.push(...this.graphTools);\n }\n\n /* In event-driven mode, instance tools are appended UNFILTERED (matching\n * `getEffectiveInstanceTools()`'s event-driven branch). Deferred /\n * non-direct logic is represented in `toolDefinitions`, not here. */\n if (this.tools && this.tools.length > 0) {\n allTools.push(...this.tools);\n }\n\n return allTools;\n }\n\n /** Filters tool instances for binding based on registry config */\n private filterToolsForBinding(tools: t.GraphTools): t.GraphTools {\n return tools.filter((tool) => {\n if (!('name' in tool)) {\n return true;\n }\n\n const toolDef = this.toolRegistry?.get(tool.name);\n if (!toolDef) {\n return true;\n }\n\n if (this.discoveredToolNames.has(tool.name)) {\n const allowedCallers = toolDef.allowed_callers ?? ['direct'];\n return allowedCallers.includes('direct');\n }\n\n const allowedCallers = toolDef.allowed_callers ?? ['direct'];\n return (\n allowedCallers.includes('direct') && toolDef.defer_loading !== true\n );\n });\n }\n}\n"],"names":["ContentTypes","MAX_SYSTEM_CACHE_BLOCKS","Providers","isBedrockCacheSupported","SystemMessage","RunnableLambda","toJsonSchema","createSchemaOnlyTools"],"mappings":";;;;;;;;;;;AAAA;AACA;AAiBA;;AAEG;MACU,YAAY,CAAA;AACvB;;AAEG;AACH,IAAA,OAAO,UAAU,CACf,WAA0B,EAC1B,YAA6B,EAC7B,kBAA2C,EAAA;QAE3C,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,KAAK,EACL,OAAO,EACP,OAAO,EACP,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAAE,qBAAqB,EAEvC,iBAAiB,EAAE,qBAAqB,EACxC,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GACb,GAAG,WAAW;;;AAIf,QAAA,IAAI,gBAAsD;QAC1D,IAAI,qBAAqB,EAAE;YACzB,gBAAgB,GAAG,qBAAqB;QAC1C;AAAO,aAAA,IACL,qBAAqB,EAAE,OAAO,KAAK,IAAI;AACvC,YAAA,qBAAqB,CAAC,MAAM,IAAI,IAAI,EACpC;;AAEA,YAAA,gBAAgB,GAAG;gBACjB,MAAM,EAAE,qBAAqB,CAAC,MAAM;gBACpC,IAAI,EAAE,qBAAqB,CAAC,IAAI;gBAChC,WAAW,EAAE,qBAAqB,CAAC,WAAW;gBAC9C,IAAI,EAAE,qBAAqB,CAAC,IAAI;gBAChC,MAAM,EAAE,qBAAqB,CAAC,MAAM;aACrC;QACH;AAEA,QAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;YACpC,OAAO;YACP,IAAI,EAAE,IAAI,IAAI,OAAO;YACrB,WAAW;YACX,QAAQ;YACR,aAAa;YACb,gBAAgB;YAChB,YAAY;YACZ,KAAK;YACL,OAAO;YACP,YAAY;YACZ,eAAe;AACf,YAAA,iBAAiB,EAAE,mBAAmB;YACtC,YAAY;AACZ,YAAA,oBAAoB,EAAE,sBAAsB;AAC5C,YAAA,sBAAsB,EAAE,uBAAuB;YAC/C,YAAY;YACZ,OAAO;AACP,YAAA,iBAAiB,EAAE,CAAC;YACpB,YAAY;YACZ,gBAAgB;YAChB,cAAc;YACd,gBAAgB;YAChB,eAAe;YACf,iBAAiB;YACjB,gBAAgB;YAChB,mBAAmB;YACnB,YAAY;AACb,SAAA,CAAC;AAEF;;;;;AAKG;AACH,QAAA,YAAY,CAAC,aAAa,GAAG,WAAW;AACxC,QAAA,YAAY,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe;AAC1D,QAAA,YAAY,CAAC,gBAAgB,GAAG,WAAW,CAAC,gBAAgB;QAE5D,IAAI,YAAY,EAAE;;;;YAIhB,YAAY,CAAC,wBAAwB,EAAE;AAEvC,YAAA,MAAM,QAAQ,GAAG,kBAAkB,IAAI,EAAE;AACzC,YAAA,YAAY,CAAC,sBAAsB,GAAG,EAAE,GAAG,QAAQ,EAAE;AACrD,YAAA,YAAY,CAAC,kBAAkB,GAAG,QAAQ;YAC1C,YAAY,CAAC,uBAAuB,GAAG;iBACpC,0BAA0B,CAAC,YAAY;iBACvC,IAAI,CAAC,MAAK;;AAET,gBAAA,YAAY,CAAC,8BAA8B,CAAC,QAAQ,CAAC;AACvD,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC;AAC7D,YAAA,CAAC,CAAC;QACN;aAAO,IAAI,kBAAkB,EAAE;AAC7B,YAAA,YAAY,CAAC,sBAAsB,GAAG,EAAE,GAAG,kBAAkB,EAAE;AAC/D,YAAA,YAAY,CAAC,kBAAkB,GAAG,kBAAkB;QACtD;AAEA,QAAA,OAAO,YAAY;IACrB;;AAGA,IAAA,OAAO;;AAEP,IAAA,IAAI;;AAEJ,IAAA,WAAW;;AAEX,IAAA,QAAQ;;AAER,IAAA,aAAa;;IAEb,kBAAkB,GAAuC,EAAE;;IAE3D,sBAAsB,GAA2B,EAAE;;AAEnD,IAAA,gBAAgB;;AAEhB,IAAA,YAAY;;AAEZ,IAAA,aAAa;;AAEb,IAAA,YAAY;;IAEZ,iBAAiB,GAAW,CAAC;;AAE7B,IAAA,YAAY;;AAEZ,IAAA,cAAc;;AAEd,IAAA,KAAK;;AAEL,IAAA,UAAU;;AAEV,IAAA,OAAO;AACP;;;AAGG;AACH,IAAA,YAAY;AACZ;;;AAGG;AACH,IAAA,eAAe;;AAEf,IAAA,mBAAmB,GAAgB,IAAI,GAAG,EAAE;AAC5C;;;;;AAKG;AACH,IAAA,iBAAiB;;AAEjB,IAAA,YAAY;;AAEZ,IAAA,oBAAoB;;AAEpB,IAAA,sBAAsB;AACtB;;;;AAIG;AACH,IAAA,cAAc;;IAEd,YAAY,GAAsC,mBAAmB;;AAErE,IAAA,SAAS;;AAET,IAAA,eAAe;;IAEf,wBAAwB,GAAG,CAAC;;AAE5B,IAAA,gBAAgB,GACdA,kBAAY,CAAC,IAAI;;IAEnB,OAAO,GAAY,KAAK;;AAEhB,IAAA,oBAAoB;;IAMpB,mBAAmB,GAAY,IAAI;;IAEnC,mBAAmB,GAAW,CAAC;;AAEvC,IAAA,uBAAuB;;IAEvB,gBAAgB,GAAY,KAAK;;IAEzB,WAAW,GAA4C,EAAE;;IAEzD,eAAe,GAAW,CAAC;;AAE3B,IAAA,eAAe,GAOnB;AACF,QAAA,QAAQ,EAAE,CAAC;AACX,QAAA,WAAW,EAAE,CAAC;AACd,QAAA,iBAAiB,EAAE,CAAC;AACpB,QAAA,eAAe,EAAE,CAAC;AAClB,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,MAAM,EAAE,CAAC;KACV;AACD;;;AAGG;AACH,IAAA,cAAc;AAMd;;;;AAIG;AACH,IAAA,gBAAgB;;AAEhB,IAAA,iBAAiB;;AAEjB,IAAA,gBAAgB;;AAEhB,IAAA,mBAAmB;;AAEnB,IAAA,YAAY;;AAEZ,IAAA,aAAa;;AAEb,IAAA,eAAe;;AAEf,IAAA,gBAAgB;IAEhB,WAAA,CAAY,EACV,OAAO,EACP,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GA+Bb,EAAA;AACC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe;AACtC,QAAA,IACE,iBAAiB;AACjB,YAAA,iBAAiB,CAAC,MAAM,GAAGC,kCAAuB,EAClD;AACA,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,qCAAA,EAAwCA,kCAAuB,CAAA,SAAA,CAAW;gBACxE,CAAA,UAAA,EAAa,iBAAiB,CAAC,MAAM,CAAA,+BAAA,CAAiC;gBACtE,CAAA,mEAAA,CAAqE;AACrE,gBAAA,CAAA,yEAAA,CAA2E,CAC9E;QACH;AACA,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;AAChD,QAAA,IAAI,CAAC,sBAAsB,GAAG,sBAAsB;AACpD,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAC1C,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AACxC,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;AAC9C,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAChC,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;QAClC;AACA,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACxB;AACA,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AACnC,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;QAC5C;AAEA,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,KAAK;QAEjD,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;AACtC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;YACxC;QACF;IACF;AAEA;;;;AAIG;AACH,IAAA,IAAI,sBAAsB,GAAA;;AAExB,QAAA,QACE,IAAI,CAAC,gBAAgB,IAAI,IAAI;;AAE7B,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,IAAI;IAExC;AAEA;;;AAGG;IACH,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE;AAClC,YAAA,OAAO,SAAS;QAClB;QAEA,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;;AAGlD,QAAA,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE;AACpD,YAAA,MAAM,CAAC,IAAI,GAAG,QAAQ;QACxB;;AAGA,QAAA,IACE,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,IAAI;AAClC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,EAAE;AACjC,YAAA,MAAM,CAAC,KAAK,IAAI,IAAI,EACpB;YACA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI;QAC3C;;AAGA,QAAA,IACE,IAAI,CAAC,gBAAgB,CAAC,WAAW,IAAI,IAAI;AACzC,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,KAAK,EAAE;AACxC,YAAA,MAAM,CAAC,WAAW,IAAI,IAAI,EAC1B;YACA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW;QACxD;;AAGA,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YACtE,MAAM,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,IAAI,KAAK;QACpE;AAEA,QAAA,OAAO,MAAM;IACf;AAEA;;;;;;;;;;;AAWG;IACH,2BAA2B,GAAA;QAIzB,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,MAAM;QAClD,MAAM,QAAQ,GAAa,EAAE;;AAG7B,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;AAC9B,YAAAC,eAAS,CAAC,SAAS;AACnB,YAAAA,eAAS,CAAC,MAAM;AAChB,YAAAA,eAAS,CAAC,KAAK;AAChB,SAAA,CAAC;;AAGF,QAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;AAChC,YAAAA,eAAS,CAAC,SAAS;AACnB,YAAAA,eAAS,CAAC,MAAM;AAChB,YAAAA,eAAS,CAAC,KAAK;AAChB,SAAA,CAAC;QAEF,QAAQ,IAAI;YACV,KAAK,QAAQ,EAAE;gBACb,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACtC,IAAI,IAAI,CAAC,QAAQ,KAAKA,eAAS,CAAC,SAAS,EAAE;AACzC,wBAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC3C;;AAEA,oBAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;gBAC3C;;gBAEA,QAAQ,CAAC,IAAI,CACX,CAAA,wDAAA,EAA2D,IAAI,CAAC,QAAQ,CAAA,oCAAA,CAAsC,CAC/G;AACD,gBAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE;YAChD;YAEA,KAAK,MAAM,EAAE;gBACX,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;oBACtC,IAAI,IAAI,CAAC,QAAQ,KAAKA,eAAS,CAAC,SAAS,EAAE;AACzC,wBAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;oBAC3C;;AAEA,oBAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE;gBAC3C;;AAEA,gBAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE;YACxC;YAEA,KAAK,UAAU,EAAE;gBACf,IAAI,IAAI,CAAC,QAAQ,KAAKA,eAAS,CAAC,OAAO,EAAE;;AAEvC,oBAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE;gBAChD;gBACA,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACxC,oBAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;gBACzC;AACA,gBAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;YACzC;YAEA,KAAK,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE;YAChD;YAEA,SAAS;AACP,gBAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE;YACxC;;IAEJ;AAEA;;;;;;;;AAQG;IACK,sCAAsC,GAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,EAAE;QAEjC,MAAM,qBAAqB,GAAe,EAAE;QAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC;AAC5D,YAAA,MAAM,mBAAmB,GACvB,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACzC,gBAAA,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAEpC,YAAA,IAAI,CAAC,mBAAmB;gBAAE;;AAG1B,YAAA,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,KAAK,IAAI;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD,YAAA,IAAI,CAAC,UAAU,IAAI,YAAY,EAAE;AAC/B,gBAAA,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC;QACF;AAEA,QAAA,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE;QAEjD,MAAM,gBAAgB,GAAG;AACtB,aAAA,GAAG,CAAC,CAAC,IAAI,KAAI;AACZ,YAAA,IAAI,IAAI,GAAG,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,IAAI;AAC/B,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE;AACvD,gBAAA,IAAI,IAAI,CAAA,EAAA,EAAK,IAAI,CAAC,WAAW,EAAE;YACjC;AACA,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,IAAI,mBAAmB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA,CAAE;YAC9F;AACA,YAAA,OAAO,IAAI;AACb,QAAA,CAAC;aACA,IAAI,CAAC,MAAM,CAAC;AAEf,QAAA,QACE,oCAAoC;YACpC,wFAAwF;YACxF,kHAAkH;AAClH,YAAA,gBAAgB;IAEpB;AAEA;;;;AAIG;AACH,IAAA,IAAI,cAAc,GAAA;;QAQhB,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE;YACxE,OAAO,IAAI,CAAC,oBAAoB;QAClC;;AAGA,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACnD,YAAA,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;AAC/C,YAAA,kBAAkB,EAAE,IAAI,CAAC,6BAA6B,EAAE;AACxD,YAAA,mBAAmB,EAAE,IAAI,CAAC,8BAA8B,EAAE;AAC3D,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAChC,OAAO,IAAI,CAAC,oBAAoB;IAClC;AAEA;;;AAGG;IACH,wBAAwB,GAAA;QACtB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,oBAAoB,KAAK,SAAS,EAAE;AACvE,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACnD,gBAAA,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;AAC/C,gBAAA,kBAAkB,EAAE,IAAI,CAAC,6BAA6B,EAAE;AACxD,gBAAA,mBAAmB,EAAE,IAAI,CAAC,8BAA8B,EAAE;AAC3D,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAClC;IACF;AAEA;;;;;;;;;;AAUG;IACK,6BAA6B,GAAA;QACnC,MAAM,KAAK,GAAa,EAAE;;AAG1B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,EAAE;QACrD,IAAI,gBAAgB,EAAE;AACpB,YAAA,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC9B;;AAGA,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,EAAE,EAAE;AACzD,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/B;;AAGA,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,sCAAsC,EAAE;QAC1E,IAAI,oBAAoB,EAAE;AACxB,YAAA,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAClC;AAEA,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B;AAEA;;;;;;;;AAQG;IACK,8BAA8B,GAAA;QACpC,MAAM,KAAK,GAAa,EAAE;AAE1B,QAAA,IACE,IAAI,CAAC,sBAAsB,IAAI,IAAI;AACnC,YAAA,IAAI,CAAC,sBAAsB,KAAK,EAAE,EAClC;AACA,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;QACzC;AAEA,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B;AAEA;;;AAGG;IACK,qBAAqB,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,cAAc;AAAE,YAAA,OAAO,EAAE;QAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;QAC7C,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,cAAc;AACjE,QAAA,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC;QAE9C,MAAM,KAAK,GAAa,EAAE;AAC1B,QAAA,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACjC,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CACR,CAAA,SAAA,EAAY,WAAW,CAAA,0BAAA,EAA6B,eAAe,CAAA,sBAAA,CAAwB,CAC5F;QAED,IAAI,UAAU,EAAE;AACd,YAAA,KAAK,CAAC,IAAI,CAAC,CAAA,0BAAA,EAA6B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;QACzE;AAEA,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACd,QAAA,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AAC3B,QAAA,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC;AACzE,QAAA,KAAK,CAAC,IAAI,CAAC,kBAAkB,eAAe,CAAA,oBAAA,CAAsB,CAAC;AACnE,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACd,QAAA,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AACvB,QAAA,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC;AACxE,QAAA,KAAK,CAAC,IAAI,CACR,oFAAoF,CACrF;AACD,QAAA,KAAK,CAAC,IAAI,CACR,iHAAiH,CAClH;AACD,QAAA,KAAK,CAAC,IAAI,CACR,6GAA6G,CAC9G;AACD,QAAA,KAAK,CAAC,IAAI,CACR,4GAA4G,CAC7G;AACD,QAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACd,QAAA,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACxB,QAAA,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC;AAChE,QAAA,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC;AAC9C,QAAA,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC;AACjE,QAAA,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC;AAE/C,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACzB;AAEA;;;;AAIG;IACK,uBAAuB,GAAA;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAKA,eAAS,CAAC,SAAS,EAAE;AACzC,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAEjB;AACb,QAAA,OAAO,gBAAgB,EAAE,WAAW,KAAK,IAAI;IAC/C;AAEA;;;;;;;;AAQG;IACK,qBAAqB,GAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAKA,eAAS,CAAC,OAAO,EAAE;AACvC,YAAA,OAAO,KAAK;QACd;AACA,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAKf;AACb,QAAA,IAAI,cAAc,EAAE,WAAW,KAAK,IAAI,EAAE;AACxC,YAAA,OAAO,KAAK;QACd;AACA;;;AAGmD;QACnD,OAAOC,oCAAuB,CAC5B,cAAc,CAAC,KAAK,EACpB,cAAc,CAAC,yBAAyB,CACzC;IACH;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACK,IAAA,mBAAmB,CAAC,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GAKpB,EAAA;AAOC,QAAA,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC;QACtD,IAAI,CAAC,iBAAiB,IAAI,CAAC,kBAAkB,IAAI,CAAC,mBAAmB,EAAE;;AAErE,YAAA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB;AAClD,YAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC5B,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,EAAE;AACxD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACpD,QAAA,MAAM,eAAe,GAAoB,IAAI,CAAC,oBAAoB,IAAI,IAAI;AAE1E,QAAA,IAAI,iBAA6C;QACjD,IAAI,iBAAiB,EAAE;YAMrB,MAAM,OAAO,GAAyB,EAAE;;AAExC,YAAA,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE;gBACjB,OAAO,CAAC,IAAI,CAAC;AACX,oBAAA,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,oBAAA,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE;AAC7D,iBAAA,CAAC;YACJ;;YAEA,IAAI,kBAAkB,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC;AACX,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,kBAAkB;oBACxB,aAAa,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE;AAC3D,iBAAA,CAAC;YACJ;YACA,IAAI,mBAAmB,EAAE;;AAEvB,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAC3D;AACA,YAAA,iBAAiB,GAAG,EAAE,OAAO,EAAuB;QACtD;aAAO,IAAI,eAAe,KAAK,iBAAiB,IAAI,kBAAkB,CAAC,EAAE;YAIvE,MAAM,OAAO,GAAmB,EAAE;;AAElC,YAAA,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE;gBACrC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAAE;AACjB,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC;AACX,oBAAA,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE;AACxD,iBAAA,CAAC;YACJ;YACA,IAAI,kBAAkB,EAAE;AACtB,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE;AACtD,iBAAA,CAAC;YACJ;YACA,IAAI,mBAAmB,EAAE;AACvB,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YAC3D;AACA,YAAA,iBAAiB,GAAG,EAAE,OAAO,EAAkC;QACjE;aAAO;AACL,YAAA,iBAAiB,GAAG;AAClB,gBAAA,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;gBACvC,kBAAkB;gBAClB,mBAAmB;AACpB;iBACE,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE;iBAC5B,IAAI,CAAC,MAAM,CAAC;QACjB;AAEA,QAAA,MAAM,aAAa,GAAG,IAAIC,sBAAa,CAAC,iBAAiB,CAAC;;AAG1D,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB;YAClD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;AAC3D,YAAA,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB;QACpD;AAEA,QAAA,OAAOC,wBAAc,CAAC,IAAI,CAAC,CAAC,QAAuB,KAAI;AACrD,YAAA,OAAO,CAAC,aAAa,EAAE,GAAG,QAAQ,CAAC;QACrC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtC;AAEA;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS;AACrC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC1B,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE;AAC5D,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAC7B,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAGL,kBAAY,CAAC,IAAI;AACzC,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,SAAS;AAE/B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,wBAAwB,EAAE;YAC/B,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE;AACvD,YAAA,IAAI,CAAC,kBAAkB,GAAG,YAAY;YACtC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,CAC5D,IAAI,CAAC,YAAY;iBAEhB,IAAI,CAAC,MAAK;AACT,gBAAA,IAAI,CAAC,8BAA8B,CAAC,YAAY,CAAC;AACnD,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,gBAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC;AAC7D,YAAA,CAAC,CAAC;QACN;aAAO;AACL,YAAA,IAAI,CAAC,uBAAuB,GAAG,SAAS;QAC1C;IACF;AAEA;;AAEG;AACH,IAAA,8BAA8B,CAAC,YAAoC,EAAA;AACjE,QAAA,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE;;YAE9B,MAAM,UAAU,GAA2B,EAAE;AAC7C,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;AAC/B,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACjB,oBAAA,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,wBAAA,KAAK,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBACtD;YACF;AACA,YAAA,IAAI,CAAC,kBAAkB,GAAG,UAAU;QACtC;aAAO;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,GAAG,YAAY,EAAE;QAC/C;IACF;AAEA;;AAEqF;IAC7E,wBAAwB,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,OAAO,EAAE;QACX;QACA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI;YACzC,MAAM,cAAc,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACtC,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,QACE,GAAG,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAExE,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;;;;;;;;;AAaG;IACK,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;AAC7D,QAAA,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACvC,OAAO,IAAI,CAAC,KAAK;QACnB;QACA,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/C;AAEA;;;;AAIG;IACH,MAAM,0BAA0B,CAC9B,YAA4B,EAAA;QAE5B,IAAI,UAAU,GAAG,CAAC;;;;AAIlB,QAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU;;AAG1C,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AAErB;;;;;AAKyC;AACzC,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,EAAE;;QAG/D,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/D,YAAA,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE;gBACzC,MAAM,WAAW,GAAG,IAA+B;AACnD,gBAAA,IACE,WAAW,CAAC,MAAM,IAAI,IAAI;AAC1B,oBAAA,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,EACtC;AACA,oBAAA,MAAM,QAAQ,GAAI,WAAW,CAAC,IAA2B,IAAI,EAAE;AAC/D,oBAAA,MAAM,UAAU,GAAGM,mBAAY,CAC7B,WAAW,CAAC,MAAM,EAClB,QAAQ,EACP,WAAW,CAAC,WAAkC,IAAI,EAAE,CACtD;AACD,oBAAA,MAAM,MAAM,GAAG,YAAY,CACzB,IAAIF,sBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAC9C;oBACD,IAAI,QAAQ,EAAE;AACZ,wBAAA,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAChC;;AAGA,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;oBAC9D,UAAU,IAAI,MAAM;gBACtB;YACF;QACF;;;;;;;;QASA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,wBAAwB,EAAE,EAAE;YACjD,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAA,SAAS;YACX;AACA,YAAA,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,GAAG,CAAC,IAAI;AACd,gBAAA,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;AAClC,gBAAA,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,EAAE;aACjC;AACD,YAAA,MAAM,SAAS,GAAG,YAAY,CAC5B,IAAIA,sBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAC1C;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,gBAAA,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;AAC3B,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA,CAAC;YACF,UAAU,IAAI,SAAS;QACzB;;AAGA,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU;;AAGjC,QAAA,IAAI,CAAC,iBAAiB,IAAI,UAAU;IACtC;AAEA;;;;AAIG;AACH,IAAA,kBAAkB,CAAC,SAOlB,EAAA;AACC,QAAA,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS;YAClC,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ;AACpD,QAAA,IAAI,SAAS,CAAC,WAAW,KAAK,SAAS;YACrC,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW;AAC1D,QAAA,IAAI,SAAS,CAAC,iBAAiB,KAAK,SAAS;YAC3C,IAAI,CAAC,eAAe,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB;AACtE,QAAA,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS;YACzC,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe;AAClE,QAAA,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS;YACnC,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS;AACtD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS;YAChC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;IAClD;AAEA;;;;AAIG;IACH,mBAAmB,GAAA;;AAmBjB,QAAA,MAAM,YAAY,GAChB,IAAI,CAAC,eAAe,CAAC,QAAQ;YAC7B,IAAI,CAAC,eAAe,CAAC,WAAW;YAChC,IAAI,CAAC,eAAe,CAAC,iBAAiB;YACtC,IAAI,CAAC,eAAe,CAAC,eAAe;YACpC,IAAI,CAAC,eAAe,CAAC,SAAS;AAC9B,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM;QAE7B,OAAO;;YAEL,YAAY,EAAE,IAAI,CAAC,mBAAmB;;AAEtC,YAAA,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS;;YAEzC,KAAK,EAAE,IAAI,CAAC,eAAe;;AAE3B,YAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;;AAElC,YAAA,WAAW,EAAE,CAAC;;YAEd,KAAK,EAAE,IAAI,CAAC,iBAAiB;;AAE7B,YAAA,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;;AAElC,YAAA,iBAAiB,EAAE,EAAE;;AAErB,YAAA,OAAO,EAAE,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,SAAS;SACpE;IACH;AAEA;;;;AAIG;IACH,uBAAuB,CAAC,eAAwB,IAAI,EAAA;AAClD,QAAA,MAAM,QAAQ,GAAqB,IAAI,GAAG,EAAE;AAE5C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,QAAQ;QACjB;QAEA,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YAC/C,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE;AACnD,gBAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;YAC7B;QACF;AAEA,QAAA,OAAO,QAAQ;IACjB;AAEA;;;;;;AAMG;IACH,iBAAiB,CAAC,eAAuB,EAAE,gBAA0B,EAAA;QACnE,IAAI,CAAC,cAAc,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE;AAC3D,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;IACjC;AAEA;;;AAGG;IACH,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;AAC/B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QACjC;IACF;AAEA;;;;;;AAMG;AACH,IAAA,qBAAqB,CAAC,SAAmB,EAAA;QACvC,IAAI,iBAAiB,GAAG,KAAK;AAC7B,QAAA,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAClC,iBAAiB,GAAG,IAAI;YAC1B;QACF;QACA,IAAI,iBAAiB,EAAE;AACrB,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QACjC;AACA,QAAA,OAAO,iBAAiB;IAC1B;AAEA;;;;;;;AAOG;IACH,kBAAkB,GAAA;;AAEhB,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3D,YAAA,OAAO,IAAI,CAAC,6BAA6B,EAAE;QAC7C;;AAGA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,EAAE;AAEjD,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,OAAO,CAAC,IAAI,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAClD;AAEA,QAAA,OAAO,QAAQ;IACjB;;IAGQ,6BAA6B,GAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,UAAU,IAAI,EAAE;QAC9B;AAEA;AACyD;QACzD,MAAM,WAAW,GAAGG,8BAAqB,CACvC,IAAI,CAAC,wBAAwB,EAAE,CAChB;AAEjB,QAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,WAAW,CAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC;AAEA;;AAEqE;AACrE,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B;AAEA,QAAA,OAAO,QAAQ;IACjB;;AAGQ,IAAA,qBAAqB,CAAC,KAAmB,EAAA;AAC/C,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC3B,YAAA,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE;AACrB,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,IAAI;YACb;YAEA,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC;AAC5D,gBAAA,OAAO,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1C;YAEA,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC;AAC5D,YAAA,QACE,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI;AAEvE,QAAA,CAAC,CAAC;IACJ;AACD;;;;"}
@@ -89,19 +89,19 @@ exports.Providers = void 0;
89
89
  exports.EdgeType = void 0;
90
90
  (function (EdgeType) {
91
91
  /**
92
- * Upstream-aligned handoff: one-way routing where the parent agent exits
92
+ * handoff: one-way routing where the parent agent exits
93
93
  * via a `lc_transfer_to_<destination>` tool call, the child takes over,
94
94
  * and the child responds directly to the user. Replaces what used to be
95
- * called "TRANSFER" in earlier Ranger versions; the parent-calls-child
95
+ * called "TRANSFER" in older versions; the parent-calls-child
96
96
  * supervisor pattern (formerly `EdgeType.HANDOFF`) is gone — use the
97
97
  * Subagent primitive (Tier 5) for deep delegation instead.
98
98
  */
99
99
  EdgeType["HANDOFF"] = "handoff";
100
100
  /**
101
- * Fixed graph edges for automatic transitions. Naming matches upstream.
102
- * Ranger keeps its enriched wiring on top of this edge type:
103
- * fan-in with prompt + {results}, parallel groups, ApprovalGateNode
104
- * insertion, and the `excludeResults` agentMessages channel.
101
+ * Fixed graph edges for automatic transitions. Standard naming.
102
+ * Downstream consumers may layer additional wiring on top of this edge
103
+ * type: fan-in with prompt + {results}, parallel groups, approval-gate
104
+ * node insertion, and the `excludeResults` agentMessages channel.
105
105
  */
106
106
  EdgeType["DIRECT"] = "direct";
107
107
  })(exports.EdgeType || (exports.EdgeType = {}));
@@ -181,15 +181,15 @@ exports.Constants = void 0;
181
181
  (function (Constants) {
182
182
  Constants["OFFICIAL_CODE_BASEURL"] = "https://api.illuma.ai/v1";
183
183
  Constants["EXECUTE_CODE"] = "execute_code";
184
- /** Tool name for the bash execution primitive (upstream Tier 3). */
184
+ /** Tool name for the bash execution primitive (Tier 3). */
185
185
  Constants["BASH_TOOL"] = "execute_bash";
186
- /** Tool name for the bash programmatic-tool-calling variant (upstream Tier 3). */
186
+ /** Tool name for the bash programmatic-tool-calling variant (Tier 3). */
187
187
  Constants["BASH_PROGRAMMATIC_TOOL_CALLING"] = "run_tools_with_bash";
188
- /** Tool name for the read-file primitive (upstream Tier 3). */
188
+ /** Tool name for the read-file primitive (Tier 3). */
189
189
  Constants["READ_FILE"] = "read_file";
190
- /** Tool name for the SkillTool primitive (upstream Tier 2). */
190
+ /** Tool name for the SkillTool primitive (Tier 2). */
191
191
  Constants["SKILL_TOOL"] = "skill";
192
- /** Tool name for the Subagent primitive (upstream Tier 5). */
192
+ /** Tool name for the Subagent primitive (Tier 5). */
193
193
  Constants["SUBAGENT"] = "subagent";
194
194
  Constants["TOOL_SEARCH"] = "tool_search";
195
195
  Constants["PROGRAMMATIC_TOOL_CALLING"] = "run_tools_with_code";
@@ -255,7 +255,7 @@ exports.MessageTypes = void 0;
255
255
  /**
256
256
  * Tool names that use the code execution environment (shared session, file
257
257
  * tracking). Used by ToolNode to inject session context + file refs into
258
- * `invokeParams` before tool execution. Upstream-aligned constant.
258
+ * `invokeParams` before tool execution. constant.
259
259
  */
260
260
  const CODE_EXECUTION_TOOLS = new Set([
261
261
  exports.Constants.EXECUTE_CODE,
@@ -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] Subagent lifecycle event (start, run_step, message_delta, stop, error) */\n ON_SUBAGENT_UPDATE = 'on_subagent_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 /** [Custom] Structured output event - emitted when agent returns structured JSON */\n ON_STRUCTURED_OUTPUT = 'on_structured_output',\n /** [Custom] Request to execute tools - dispatched by ToolNode, handled by host */\n ON_TOOL_EXECUTE = 'on_tool_execute',\n /** [Custom] Context pressure event for monitoring compaction triggers */\n ON_CONTEXT_PRESSURE = 'on_context_pressure',\n /** [Custom] Tool requires human approval before execution - dispatched by ToolNode HITL */\n ON_TOOL_APPROVAL_REQUIRED = 'on_tool_approval_required',\n /** [Custom] Agent transition event — dispatched when control passes between agents */\n ON_AGENT_TRANSITION = 'on_agent_transition',\n /** [Custom] Approval gate interrupt — dispatched by ApprovalGateNode before interrupt() */\n ON_APPROVAL_GATE = 'on_approval_gate',\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 MOONSHOT = 'moonshot',\n}\n\nexport enum EdgeType {\n /**\n * Upstream-aligned handoff: one-way routing where the parent agent exits\n * via a `lc_transfer_to_<destination>` tool call, the child takes over,\n * and the child responds directly to the user. Replaces what used to be\n * called \"TRANSFER\" in earlier Ranger versions; the parent-calls-child\n * supervisor pattern (formerly `EdgeType.HANDOFF`) is gone — use the\n * Subagent primitive (Tier 5) for deep delegation instead.\n */\n HANDOFF = 'handoff',\n /**\n * Fixed graph edges for automatic transitions. Naming matches upstream.\n * Ranger keeps its enriched wiring on top of this edge type:\n * fan-in with prompt + {results}, parallel groups, ApprovalGateNode\n * insertion, and the `excludeResults` agentMessages channel.\n */\n DIRECT = 'direct',\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 name for the bash execution primitive (upstream Tier 3). */\n BASH_TOOL = 'execute_bash',\n /** Tool name for the bash programmatic-tool-calling variant (upstream Tier 3). */\n BASH_PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_bash',\n /** Tool name for the read-file primitive (upstream Tier 3). */\n READ_FILE = 'read_file',\n /** Tool name for the SkillTool primitive (upstream Tier 2). */\n SKILL_TOOL = 'skill',\n /** Tool name for the Subagent primitive (upstream Tier 5). */\n SUBAGENT = 'subagent',\n TOOL_SEARCH = 'tool_search',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n /** Prefix for handoff tool names (parent-exits routing): lc_transfer_to_{agentId}. */\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Tool name for the AskUser structured question tool */\n ASK_USER = 'ask_user',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n /** Prefix for Anthropic-hosted server tool ids (web_search, code_execution).\n * These are issued by Anthropic, not by us, and should be ignored by\n * orphan-repair sweeps that don't have ground truth for them. */\n ANTHROPIC_SERVER_TOOL_PREFIX = 'srvtoolu_',\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 * Normalized LLM finish/stop reasons across providers.\n * Used by toolCallContinuation to detect max_tokens truncation.\n */\nexport enum FinishReasons {\n /** Anthropic / Bedrock stop reason for token limit */\n MAX_TOKENS = 'max_tokens',\n /** OpenAI / Azure finish reason for token limit */\n LENGTH = 'length',\n /** Normal completion */\n STOP = 'stop',\n /** Anthropic / Bedrock stop reason for normal completion */\n END_TURN = 'end_turn',\n /** Model chose to call tools */\n TOOL_USE = 'tool_use',\n /** OpenAI finish reason for tool calls */\n TOOL_CALLS = 'tool_calls',\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\n/**\n * Tool names that use the code execution environment (shared session, file\n * tracking). Used by ToolNode to inject session context + file refs into\n * `invokeParams` before tool execution. Upstream-aligned constant.\n */\nexport const CODE_EXECUTION_TOOLS: ReadonlySet<string> = new Set([\n Constants.EXECUTE_CODE,\n Constants.BASH_TOOL,\n Constants.PROGRAMMATIC_TOOL_CALLING,\n Constants.BASH_PROGRAMMATIC_TOOL_CALLING,\n]);\n"],"names":["GraphEvents","Providers","EdgeType","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar","FinishReasons","MessageTypes"],"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] Subagent lifecycle event (start, run_step, message_delta, stop, error) */\n ON_SUBAGENT_UPDATE = 'on_subagent_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 /** [Custom] Structured output event - emitted when agent returns structured JSON */\n ON_STRUCTURED_OUTPUT = 'on_structured_output',\n /** [Custom] Request to execute tools - dispatched by ToolNode, handled by host */\n ON_TOOL_EXECUTE = 'on_tool_execute',\n /** [Custom] Context pressure event for monitoring compaction triggers */\n ON_CONTEXT_PRESSURE = 'on_context_pressure',\n /** [Custom] Tool requires human approval before execution - dispatched by ToolNode HITL */\n ON_TOOL_APPROVAL_REQUIRED = 'on_tool_approval_required',\n /** [Custom] Agent transition event — dispatched when control passes between agents */\n ON_AGENT_TRANSITION = 'on_agent_transition',\n /** [Custom] Approval gate interrupt — dispatched by ApprovalGateNode before interrupt() */\n ON_APPROVAL_GATE = 'on_approval_gate',\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 MOONSHOT = 'moonshot',\n}\n\nexport enum EdgeType {\n /**\n * handoff: one-way routing where the parent agent exits\n * via a `lc_transfer_to_<destination>` tool call, the child takes over,\n * and the child responds directly to the user. Replaces what used to be\n * called \"TRANSFER\" in older versions; the parent-calls-child\n * supervisor pattern (formerly `EdgeType.HANDOFF`) is gone — use the\n * Subagent primitive (Tier 5) for deep delegation instead.\n */\n HANDOFF = 'handoff',\n /**\n * Fixed graph edges for automatic transitions. Standard naming.\n * Downstream consumers may layer additional wiring on top of this edge\n * type: fan-in with prompt + {results}, parallel groups, approval-gate\n * node insertion, and the `excludeResults` agentMessages channel.\n */\n DIRECT = 'direct',\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 name for the bash execution primitive (Tier 3). */\n BASH_TOOL = 'execute_bash',\n /** Tool name for the bash programmatic-tool-calling variant (Tier 3). */\n BASH_PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_bash',\n /** Tool name for the read-file primitive (Tier 3). */\n READ_FILE = 'read_file',\n /** Tool name for the SkillTool primitive (Tier 2). */\n SKILL_TOOL = 'skill',\n /** Tool name for the Subagent primitive (Tier 5). */\n SUBAGENT = 'subagent',\n TOOL_SEARCH = 'tool_search',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n /** Prefix for handoff tool names (parent-exits routing): lc_transfer_to_{agentId}. */\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Tool name for the AskUser structured question tool */\n ASK_USER = 'ask_user',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n /** Prefix for Anthropic-hosted server tool ids (web_search, code_execution).\n * These are issued by Anthropic, not by us, and should be ignored by\n * orphan-repair sweeps that don't have ground truth for them. */\n ANTHROPIC_SERVER_TOOL_PREFIX = 'srvtoolu_',\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 * Normalized LLM finish/stop reasons across providers.\n * Used by toolCallContinuation to detect max_tokens truncation.\n */\nexport enum FinishReasons {\n /** Anthropic / Bedrock stop reason for token limit */\n MAX_TOKENS = 'max_tokens',\n /** OpenAI / Azure finish reason for token limit */\n LENGTH = 'length',\n /** Normal completion */\n STOP = 'stop',\n /** Anthropic / Bedrock stop reason for normal completion */\n END_TURN = 'end_turn',\n /** Model chose to call tools */\n TOOL_USE = 'tool_use',\n /** OpenAI finish reason for tool calls */\n TOOL_CALLS = 'tool_calls',\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\n/**\n * Tool names that use the code execution environment (shared session, file\n * tracking). Used by ToolNode to inject session context + file refs into\n * `invokeParams` before tool execution. constant.\n */\nexport const CODE_EXECUTION_TOOLS: ReadonlySet<string> = new Set([\n Constants.EXECUTE_CODE,\n Constants.BASH_TOOL,\n Constants.PROGRAMMATIC_TOOL_CALLING,\n Constants.BASH_PROGRAMMATIC_TOOL_CALLING,\n]);\n"],"names":["GraphEvents","Providers","EdgeType","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar","FinishReasons","MessageTypes"],"mappings":"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"}
@@ -69,7 +69,7 @@ class Graph {
69
69
  hookRegistry;
70
70
  /**
71
71
  * Optional tool-output reference registry threaded down from Run
72
- * (upstream PR #114). When set, every ToolNode built by this graph
72
+ * (PR #114). When set, every ToolNode built by this graph
73
73
  * stores successful outputs here and resolves `{{tool<i>turn<n>}}`
74
74
  * placeholders in args before invoking the tool.
75
75
  *
@@ -80,7 +80,7 @@ class Graph {
80
80
  */
81
81
  toolOutputRegistry;
82
82
  /**
83
- * Run-scoped tool output reference configuration (upstream PR #117).
83
+ * Run-scoped tool output reference configuration (PR #117).
84
84
  * When `enabled` is true, the graph lazily allocates a single
85
85
  * `ToolOutputReferenceRegistry` on first `getOrCreateToolOutputRegistry()`
86
86
  * call and shares it with every ToolNode the graph compiles, so
@@ -798,7 +798,7 @@ class StandardGraph extends Graph {
798
798
  throw new Error('No model found');
799
799
  }
800
800
  /**
801
- * Lazy tool-output reference annotation (upstream PR #117). Right
801
+ * Lazy tool-output reference annotation (PR #117). Right
802
802
  * before the message array hits the provider, walk it and apply
803
803
  * `[ref: tool<i>turn<n>]` prefixes / `_ref` JSON fields to a
804
804
  * transient copy. The persisted ToolMessages stay clean — only what
@@ -1229,7 +1229,7 @@ class StandardGraph extends Graph {
1229
1229
  * Fire PreCompact (#103) before the LLM call. Observational —
1230
1230
  * hosts may use the input to schedule auxiliary work, but a
1231
1231
  * deny/ask decision does NOT block compaction here because
1232
- * Ranger's summarizer runs in the background and a refusal
1232
+ * the summarizer runs in the background and a refusal
1233
1233
  * has nowhere to go: pruning still needs to happen at 100%
1234
1234
  * regardless. Errors are swallowed so a hook bug cannot
1235
1235
  * masquerade as a context-overflow failure.
@@ -1996,7 +1996,7 @@ If I seem to be missing something we discussed earlier, just give me a quick rem
1996
1996
  throw new Error(`Agent context not found for agentId: ${agentId}`);
1997
1997
  }
1998
1998
  /**
1999
- * Subagent injection (upstream Tier 5): when the agent has SubagentConfig
1999
+ * Subagent injection (Tier 5): when the agent has SubagentConfig
2000
2000
  * entries and depth budget remaining, inject a `subagent` DynamicStructuredTool
2001
2001
  * into graphTools. The tool's executor receives this graph's hookRegistry and
2002
2002
  * a lazy handler-registry getter (Run wires handlerRegistry AFTER createWorkflow,