@librechat/agents 3.2.32 → 3.2.34

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 (597) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  2. package/dist/cjs/agents/AgentContext.cjs +844 -1046
  3. package/dist/cjs/agents/AgentContext.cjs.map +1 -1
  4. package/dist/cjs/common/constants.cjs +13 -13
  5. package/dist/cjs/common/constants.cjs.map +1 -1
  6. package/dist/cjs/common/enum.cjs +233 -240
  7. package/dist/cjs/common/enum.cjs.map +1 -1
  8. package/dist/cjs/common/index.cjs +2 -0
  9. package/dist/cjs/events.cjs +121 -169
  10. package/dist/cjs/events.cjs.map +1 -1
  11. package/dist/cjs/graphs/Graph.cjs +1389 -1807
  12. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  13. package/dist/cjs/graphs/MultiAgentGraph.cjs +713 -945
  14. package/dist/cjs/graphs/MultiAgentGraph.cjs.map +1 -1
  15. package/dist/cjs/graphs/index.cjs +2 -0
  16. package/dist/cjs/hitl/askUserQuestion.cjs +60 -62
  17. package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -1
  18. package/dist/cjs/hitl/index.cjs +1 -0
  19. package/dist/cjs/hooks/HookRegistry.cjs +176 -202
  20. package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
  21. package/dist/cjs/hooks/createToolPolicyHook.cjs +71 -101
  22. package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -1
  23. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +170 -273
  24. package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -1
  25. package/dist/cjs/hooks/executeHooks.cjs +227 -282
  26. package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
  27. package/dist/cjs/hooks/index.cjs +6 -0
  28. package/dist/cjs/hooks/matchers.cjs +196 -230
  29. package/dist/cjs/hooks/matchers.cjs.map +1 -1
  30. package/dist/cjs/hooks/types.cjs +24 -24
  31. package/dist/cjs/hooks/types.cjs.map +1 -1
  32. package/dist/cjs/instrumentation.cjs +110 -137
  33. package/dist/cjs/instrumentation.cjs.map +1 -1
  34. package/dist/cjs/langchain/google-common.cjs +0 -3
  35. package/dist/cjs/langchain/index.cjs +80 -43
  36. package/dist/cjs/langchain/language_models/chat_models.cjs +0 -3
  37. package/dist/cjs/langchain/messages/tool.cjs +0 -3
  38. package/dist/cjs/langchain/messages.cjs +35 -18
  39. package/dist/cjs/langchain/openai.cjs +0 -3
  40. package/dist/cjs/langchain/prompts.cjs +5 -8
  41. package/dist/cjs/langchain/runnables.cjs +11 -10
  42. package/dist/cjs/langchain/tools.cjs +14 -11
  43. package/dist/cjs/langchain/utils/env.cjs +5 -8
  44. package/dist/cjs/langfuse.cjs +60 -79
  45. package/dist/cjs/langfuse.cjs.map +1 -1
  46. package/dist/cjs/langfuseToolOutputTracing.cjs +267 -399
  47. package/dist/cjs/langfuseToolOutputTracing.cjs.map +1 -1
  48. package/dist/cjs/llm/anthropic/index.cjs +432 -562
  49. package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
  50. package/dist/cjs/llm/anthropic/types.cjs +23 -47
  51. package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
  52. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +441 -731
  53. package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
  54. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +171 -256
  55. package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
  56. package/dist/cjs/llm/anthropic/utils/output_parsers.cjs +2 -0
  57. package/dist/cjs/llm/anthropic/utils/tools.cjs +12 -26
  58. package/dist/cjs/llm/anthropic/utils/tools.cjs.map +1 -1
  59. package/dist/cjs/llm/bedrock/index.cjs +214 -240
  60. package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
  61. package/dist/cjs/llm/bedrock/toolCache.cjs +84 -106
  62. package/dist/cjs/llm/bedrock/toolCache.cjs.map +1 -1
  63. package/dist/cjs/llm/bedrock/utils/index.cjs +2 -0
  64. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +357 -620
  65. package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
  66. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +141 -149
  67. package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
  68. package/dist/cjs/llm/fake.cjs +86 -96
  69. package/dist/cjs/llm/fake.cjs.map +1 -1
  70. package/dist/cjs/llm/google/index.cjs +183 -237
  71. package/dist/cjs/llm/google/index.cjs.map +1 -1
  72. package/dist/cjs/llm/google/utils/common.cjs +404 -674
  73. package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
  74. package/dist/cjs/llm/google/utils/zod_to_genai_parameters.cjs +2 -0
  75. package/dist/cjs/llm/init.cjs +44 -53
  76. package/dist/cjs/llm/init.cjs.map +1 -1
  77. package/dist/cjs/llm/invoke.cjs +142 -182
  78. package/dist/cjs/llm/invoke.cjs.map +1 -1
  79. package/dist/cjs/llm/openai/index.cjs +1035 -1273
  80. package/dist/cjs/llm/openai/index.cjs.map +1 -1
  81. package/dist/cjs/llm/openai/utils/index.cjs +189 -316
  82. package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
  83. package/dist/cjs/llm/openrouter/index.cjs +102 -153
  84. package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
  85. package/dist/cjs/llm/openrouter/toolCache.cjs +35 -44
  86. package/dist/cjs/llm/openrouter/toolCache.cjs.map +1 -1
  87. package/dist/cjs/llm/providers.cjs +29 -37
  88. package/dist/cjs/llm/providers.cjs.map +1 -1
  89. package/dist/cjs/llm/request.cjs +20 -33
  90. package/dist/cjs/llm/request.cjs.map +1 -1
  91. package/dist/cjs/llm/vertexai/index.cjs +446 -453
  92. package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
  93. package/dist/cjs/main.cjs +547 -528
  94. package/dist/cjs/messages/anthropicToolCache.cjs +68 -119
  95. package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -1
  96. package/dist/cjs/messages/cache.cjs +305 -418
  97. package/dist/cjs/messages/cache.cjs.map +1 -1
  98. package/dist/cjs/messages/content.cjs +36 -49
  99. package/dist/cjs/messages/content.cjs.map +1 -1
  100. package/dist/cjs/messages/contextPruning.cjs +112 -145
  101. package/dist/cjs/messages/contextPruning.cjs.map +1 -1
  102. package/dist/cjs/messages/contextPruningSettings.cjs +36 -46
  103. package/dist/cjs/messages/contextPruningSettings.cjs.map +1 -1
  104. package/dist/cjs/messages/core.cjs +256 -397
  105. package/dist/cjs/messages/core.cjs.map +1 -1
  106. package/dist/cjs/messages/format.cjs +904 -1387
  107. package/dist/cjs/messages/format.cjs.map +1 -1
  108. package/dist/cjs/messages/ids.cjs +16 -20
  109. package/dist/cjs/messages/ids.cjs.map +1 -1
  110. package/dist/cjs/messages/index.cjs +12 -0
  111. package/dist/cjs/messages/langchain.cjs +18 -18
  112. package/dist/cjs/messages/langchain.cjs.map +1 -1
  113. package/dist/cjs/messages/prune.cjs +1054 -1517
  114. package/dist/cjs/messages/prune.cjs.map +1 -1
  115. package/dist/cjs/messages/recency.cjs +77 -95
  116. package/dist/cjs/messages/recency.cjs.map +1 -1
  117. package/dist/cjs/messages/reducer.cjs +63 -78
  118. package/dist/cjs/messages/reducer.cjs.map +1 -1
  119. package/dist/cjs/messages/tools.cjs +51 -79
  120. package/dist/cjs/messages/tools.cjs.map +1 -1
  121. package/dist/cjs/openai/index.cjs +171 -217
  122. package/dist/cjs/openai/index.cjs.map +1 -1
  123. package/dist/cjs/responses/index.cjs +302 -391
  124. package/dist/cjs/responses/index.cjs.map +1 -1
  125. package/dist/cjs/run.cjs +903 -1113
  126. package/dist/cjs/run.cjs.map +1 -1
  127. package/dist/cjs/session/AgentSession.cjs +805 -986
  128. package/dist/cjs/session/AgentSession.cjs.map +1 -1
  129. package/dist/cjs/session/JsonlSessionStore.cjs +327 -410
  130. package/dist/cjs/session/JsonlSessionStore.cjs.map +1 -1
  131. package/dist/cjs/session/handlers.cjs +192 -208
  132. package/dist/cjs/session/handlers.cjs.map +1 -1
  133. package/dist/cjs/session/ids.cjs +9 -10
  134. package/dist/cjs/session/ids.cjs.map +1 -1
  135. package/dist/cjs/session/index.cjs +4 -0
  136. package/dist/cjs/session/messageSerialization.cjs +94 -156
  137. package/dist/cjs/session/messageSerialization.cjs.map +1 -1
  138. package/dist/cjs/splitStream.cjs +147 -206
  139. package/dist/cjs/splitStream.cjs.map +1 -1
  140. package/dist/cjs/stream.cjs +874 -1344
  141. package/dist/cjs/stream.cjs.map +1 -1
  142. package/dist/cjs/summarization/index.cjs +57 -101
  143. package/dist/cjs/summarization/index.cjs.map +1 -1
  144. package/dist/cjs/summarization/node.cjs +643 -796
  145. package/dist/cjs/summarization/node.cjs.map +1 -1
  146. package/dist/cjs/tools/BashExecutor.cjs +110 -136
  147. package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
  148. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +165 -245
  149. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  150. package/dist/cjs/tools/Calculator.cjs +36 -57
  151. package/dist/cjs/tools/Calculator.cjs.map +1 -1
  152. package/dist/cjs/tools/CodeExecutor.cjs +126 -168
  153. package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
  154. package/dist/cjs/tools/CodeSessionFileSummary.cjs +36 -46
  155. package/dist/cjs/tools/CodeSessionFileSummary.cjs.map +1 -1
  156. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +459 -649
  157. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  158. package/dist/cjs/tools/ReadFile.cjs +17 -20
  159. package/dist/cjs/tools/ReadFile.cjs.map +1 -1
  160. package/dist/cjs/tools/SkillTool.cjs +26 -27
  161. package/dist/cjs/tools/SkillTool.cjs.map +1 -1
  162. package/dist/cjs/tools/SubagentTool.cjs +59 -61
  163. package/dist/cjs/tools/SubagentTool.cjs.map +1 -1
  164. package/dist/cjs/tools/ToolNode.cjs +2146 -2686
  165. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  166. package/dist/cjs/tools/ToolSearch.cjs +663 -825
  167. package/dist/cjs/tools/ToolSearch.cjs.map +1 -1
  168. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs +248 -340
  169. package/dist/cjs/tools/cloudflare/CloudflareBridgeRuntime.cjs.map +1 -1
  170. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs +170 -197
  171. package/dist/cjs/tools/cloudflare/CloudflareProgrammaticToolCalling.cjs.map +1 -1
  172. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs +425 -520
  173. package/dist/cjs/tools/cloudflare/CloudflareSandboxExecutionEngine.cjs.map +1 -1
  174. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs +91 -124
  175. package/dist/cjs/tools/cloudflare/CloudflareSandboxTools.cjs.map +1 -1
  176. package/dist/cjs/tools/cloudflare/index.cjs +4 -0
  177. package/dist/cjs/tools/eagerEventExecution.cjs +75 -99
  178. package/dist/cjs/tools/eagerEventExecution.cjs.map +1 -1
  179. package/dist/cjs/tools/handlers.cjs +200 -262
  180. package/dist/cjs/tools/handlers.cjs.map +1 -1
  181. package/dist/cjs/tools/local/CompileCheckTool.cjs +150 -212
  182. package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -1
  183. package/dist/cjs/tools/local/FileCheckpointer.cjs +77 -85
  184. package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -1
  185. package/dist/cjs/tools/local/LocalCodingTools.cjs +763 -1022
  186. package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -1
  187. package/dist/cjs/tools/local/LocalExecutionEngine.cjs +666 -941
  188. package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -1
  189. package/dist/cjs/tools/local/LocalExecutionTools.cjs +49 -92
  190. package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -1
  191. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +286 -354
  192. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  193. package/dist/cjs/tools/local/attachments.cjs +108 -165
  194. package/dist/cjs/tools/local/attachments.cjs.map +1 -1
  195. package/dist/cjs/tools/local/bashAst.cjs +99 -113
  196. package/dist/cjs/tools/local/bashAst.cjs.map +1 -1
  197. package/dist/cjs/tools/local/editStrategies.cjs +126 -169
  198. package/dist/cjs/tools/local/editStrategies.cjs.map +1 -1
  199. package/dist/cjs/tools/local/index.cjs +12 -0
  200. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +136 -218
  201. package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -1
  202. package/dist/cjs/tools/local/syntaxCheck.cjs +142 -161
  203. package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -1
  204. package/dist/cjs/tools/local/textEncoding.cjs +25 -23
  205. package/dist/cjs/tools/local/textEncoding.cjs.map +1 -1
  206. package/dist/cjs/tools/local/workspaceFS.cjs +38 -46
  207. package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -1
  208. package/dist/cjs/tools/ptcTimeout.cjs +27 -47
  209. package/dist/cjs/tools/ptcTimeout.cjs.map +1 -1
  210. package/dist/cjs/tools/schema.cjs +24 -23
  211. package/dist/cjs/tools/schema.cjs.map +1 -1
  212. package/dist/cjs/tools/search/anthropic.cjs +24 -33
  213. package/dist/cjs/tools/search/anthropic.cjs.map +1 -1
  214. package/dist/cjs/tools/search/content.cjs +95 -137
  215. package/dist/cjs/tools/search/content.cjs.map +1 -1
  216. package/dist/cjs/tools/search/firecrawl.cjs +141 -172
  217. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  218. package/dist/cjs/tools/search/format.cjs +128 -196
  219. package/dist/cjs/tools/search/format.cjs.map +1 -1
  220. package/dist/cjs/tools/search/highlights.cjs +165 -232
  221. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  222. package/dist/cjs/tools/search/index.cjs +2 -0
  223. package/dist/cjs/tools/search/rerankers.cjs +151 -174
  224. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  225. package/dist/cjs/tools/search/schema.cjs +40 -39
  226. package/dist/cjs/tools/search/schema.cjs.map +1 -1
  227. package/dist/cjs/tools/search/search.cjs +428 -530
  228. package/dist/cjs/tools/search/search.cjs.map +1 -1
  229. package/dist/cjs/tools/search/serper-scraper.cjs +106 -127
  230. package/dist/cjs/tools/search/serper-scraper.cjs.map +1 -1
  231. package/dist/cjs/tools/search/tavily-scraper.cjs +129 -181
  232. package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -1
  233. package/dist/cjs/tools/search/tavily-search.cjs +295 -359
  234. package/dist/cjs/tools/search/tavily-search.cjs.map +1 -1
  235. package/dist/cjs/tools/search/tool.cjs +260 -299
  236. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  237. package/dist/cjs/tools/search/utils.cjs +74 -117
  238. package/dist/cjs/tools/search/utils.cjs.map +1 -1
  239. package/dist/cjs/tools/skillCatalog.cjs +54 -72
  240. package/dist/cjs/tools/skillCatalog.cjs.map +1 -1
  241. package/dist/cjs/tools/streamedToolCallSeals.cjs +46 -34
  242. package/dist/cjs/tools/streamedToolCallSeals.cjs.map +1 -1
  243. package/dist/cjs/tools/subagent/SubagentExecutor.cjs +612 -771
  244. package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
  245. package/dist/cjs/tools/subagent/index.cjs +1 -0
  246. package/dist/cjs/tools/toolOutputReferences.cjs +523 -630
  247. package/dist/cjs/tools/toolOutputReferences.cjs.map +1 -1
  248. package/dist/cjs/utils/callbacks.cjs +11 -21
  249. package/dist/cjs/utils/callbacks.cjs.map +1 -1
  250. package/dist/cjs/utils/errors.cjs +70 -95
  251. package/dist/cjs/utils/errors.cjs.map +1 -1
  252. package/dist/cjs/utils/events.cjs +32 -42
  253. package/dist/cjs/utils/events.cjs.map +1 -1
  254. package/dist/cjs/utils/graph.cjs +8 -12
  255. package/dist/cjs/utils/graph.cjs.map +1 -1
  256. package/dist/cjs/utils/handlers.cjs +60 -82
  257. package/dist/cjs/utils/handlers.cjs.map +1 -1
  258. package/dist/cjs/utils/index.cjs +9 -0
  259. package/dist/cjs/utils/llm.cjs +19 -27
  260. package/dist/cjs/utils/llm.cjs.map +1 -1
  261. package/dist/cjs/utils/misc.cjs +30 -46
  262. package/dist/cjs/utils/misc.cjs.map +1 -1
  263. package/dist/cjs/utils/run.cjs +50 -66
  264. package/dist/cjs/utils/run.cjs.map +1 -1
  265. package/dist/cjs/utils/schema.cjs +11 -19
  266. package/dist/cjs/utils/schema.cjs.map +1 -1
  267. package/dist/cjs/utils/title.cjs +71 -106
  268. package/dist/cjs/utils/title.cjs.map +1 -1
  269. package/dist/cjs/utils/tokens.cjs +186 -283
  270. package/dist/cjs/utils/tokens.cjs.map +1 -1
  271. package/dist/cjs/utils/truncation.cjs +95 -114
  272. package/dist/cjs/utils/truncation.cjs.map +1 -1
  273. package/dist/esm/agents/AgentContext.mjs +844 -1044
  274. package/dist/esm/agents/AgentContext.mjs.map +1 -1
  275. package/dist/esm/common/constants.mjs +13 -11
  276. package/dist/esm/common/constants.mjs.map +1 -1
  277. package/dist/esm/common/enum.mjs +221 -238
  278. package/dist/esm/common/enum.mjs.map +1 -1
  279. package/dist/esm/common/index.mjs +3 -0
  280. package/dist/esm/events.mjs +121 -167
  281. package/dist/esm/events.mjs.map +1 -1
  282. package/dist/esm/graphs/Graph.mjs +1388 -1804
  283. package/dist/esm/graphs/Graph.mjs.map +1 -1
  284. package/dist/esm/graphs/MultiAgentGraph.mjs +713 -943
  285. package/dist/esm/graphs/MultiAgentGraph.mjs.map +1 -1
  286. package/dist/esm/graphs/index.mjs +3 -0
  287. package/dist/esm/hitl/askUserQuestion.mjs +60 -60
  288. package/dist/esm/hitl/askUserQuestion.mjs.map +1 -1
  289. package/dist/esm/hitl/index.mjs +2 -0
  290. package/dist/esm/hooks/HookRegistry.mjs +176 -200
  291. package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
  292. package/dist/esm/hooks/createToolPolicyHook.mjs +71 -99
  293. package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -1
  294. package/dist/esm/hooks/createWorkspacePolicyHook.mjs +170 -271
  295. package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -1
  296. package/dist/esm/hooks/executeHooks.mjs +227 -280
  297. package/dist/esm/hooks/executeHooks.mjs.map +1 -1
  298. package/dist/esm/hooks/index.mjs +7 -0
  299. package/dist/esm/hooks/matchers.mjs +196 -228
  300. package/dist/esm/hooks/matchers.mjs.map +1 -1
  301. package/dist/esm/hooks/types.mjs +24 -22
  302. package/dist/esm/hooks/types.mjs.map +1 -1
  303. package/dist/esm/instrumentation.mjs +109 -132
  304. package/dist/esm/instrumentation.mjs.map +1 -1
  305. package/dist/esm/langchain/google-common.mjs +1 -2
  306. package/dist/esm/langchain/index.mjs +5 -5
  307. package/dist/esm/langchain/language_models/chat_models.mjs +1 -2
  308. package/dist/esm/langchain/messages/tool.mjs +1 -2
  309. package/dist/esm/langchain/messages.mjs +2 -2
  310. package/dist/esm/langchain/openai.mjs +1 -2
  311. package/dist/esm/langchain/prompts.mjs +2 -2
  312. package/dist/esm/langchain/runnables.mjs +2 -2
  313. package/dist/esm/langchain/tools.mjs +2 -2
  314. package/dist/esm/langchain/utils/env.mjs +2 -2
  315. package/dist/esm/langfuse.mjs +60 -76
  316. package/dist/esm/langfuse.mjs.map +1 -1
  317. package/dist/esm/langfuseToolOutputTracing.mjs +267 -395
  318. package/dist/esm/langfuseToolOutputTracing.mjs.map +1 -1
  319. package/dist/esm/llm/anthropic/index.mjs +432 -559
  320. package/dist/esm/llm/anthropic/index.mjs.map +1 -1
  321. package/dist/esm/llm/anthropic/types.mjs +23 -45
  322. package/dist/esm/llm/anthropic/types.mjs.map +1 -1
  323. package/dist/esm/llm/anthropic/utils/message_inputs.mjs +439 -725
  324. package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
  325. package/dist/esm/llm/anthropic/utils/message_outputs.mjs +171 -253
  326. package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
  327. package/dist/esm/llm/anthropic/utils/output_parsers.mjs +3 -0
  328. package/dist/esm/llm/anthropic/utils/tools.mjs +12 -24
  329. package/dist/esm/llm/anthropic/utils/tools.mjs.map +1 -1
  330. package/dist/esm/llm/bedrock/index.mjs +214 -238
  331. package/dist/esm/llm/bedrock/index.mjs.map +1 -1
  332. package/dist/esm/llm/bedrock/toolCache.mjs +84 -104
  333. package/dist/esm/llm/bedrock/toolCache.mjs.map +1 -1
  334. package/dist/esm/llm/bedrock/utils/index.mjs +3 -0
  335. package/dist/esm/llm/bedrock/utils/message_inputs.mjs +357 -618
  336. package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
  337. package/dist/esm/llm/bedrock/utils/message_outputs.mjs +140 -147
  338. package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
  339. package/dist/esm/llm/fake.mjs +86 -94
  340. package/dist/esm/llm/fake.mjs.map +1 -1
  341. package/dist/esm/llm/google/index.mjs +183 -235
  342. package/dist/esm/llm/google/index.mjs.map +1 -1
  343. package/dist/esm/llm/google/utils/common.mjs +403 -666
  344. package/dist/esm/llm/google/utils/common.mjs.map +1 -1
  345. package/dist/esm/llm/google/utils/zod_to_genai_parameters.mjs +3 -0
  346. package/dist/esm/llm/init.mjs +44 -51
  347. package/dist/esm/llm/init.mjs.map +1 -1
  348. package/dist/esm/llm/invoke.mjs +142 -180
  349. package/dist/esm/llm/invoke.mjs.map +1 -1
  350. package/dist/esm/llm/openai/index.mjs +1035 -1268
  351. package/dist/esm/llm/openai/index.mjs.map +1 -1
  352. package/dist/esm/llm/openai/utils/index.mjs +188 -312
  353. package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
  354. package/dist/esm/llm/openrouter/index.mjs +102 -151
  355. package/dist/esm/llm/openrouter/index.mjs.map +1 -1
  356. package/dist/esm/llm/openrouter/toolCache.mjs +35 -42
  357. package/dist/esm/llm/openrouter/toolCache.mjs.map +1 -1
  358. package/dist/esm/llm/providers.mjs +29 -34
  359. package/dist/esm/llm/providers.mjs.map +1 -1
  360. package/dist/esm/llm/request.mjs +20 -31
  361. package/dist/esm/llm/request.mjs.map +1 -1
  362. package/dist/esm/llm/vertexai/index.mjs +446 -449
  363. package/dist/esm/llm/vertexai/index.mjs.map +1 -1
  364. package/dist/esm/main.mjs +99 -87
  365. package/dist/esm/messages/anthropicToolCache.mjs +68 -117
  366. package/dist/esm/messages/anthropicToolCache.mjs.map +1 -1
  367. package/dist/esm/messages/cache.mjs +305 -416
  368. package/dist/esm/messages/cache.mjs.map +1 -1
  369. package/dist/esm/messages/content.mjs +36 -47
  370. package/dist/esm/messages/content.mjs.map +1 -1
  371. package/dist/esm/messages/contextPruning.mjs +112 -143
  372. package/dist/esm/messages/contextPruning.mjs.map +1 -1
  373. package/dist/esm/messages/contextPruningSettings.mjs +36 -44
  374. package/dist/esm/messages/contextPruningSettings.mjs.map +1 -1
  375. package/dist/esm/messages/core.mjs +254 -393
  376. package/dist/esm/messages/core.mjs.map +1 -1
  377. package/dist/esm/messages/format.mjs +902 -1383
  378. package/dist/esm/messages/format.mjs.map +1 -1
  379. package/dist/esm/messages/ids.mjs +16 -18
  380. package/dist/esm/messages/ids.mjs.map +1 -1
  381. package/dist/esm/messages/index.mjs +13 -0
  382. package/dist/esm/messages/langchain.mjs +18 -16
  383. package/dist/esm/messages/langchain.mjs.map +1 -1
  384. package/dist/esm/messages/prune.mjs +1053 -1514
  385. package/dist/esm/messages/prune.mjs.map +1 -1
  386. package/dist/esm/messages/recency.mjs +77 -93
  387. package/dist/esm/messages/recency.mjs.map +1 -1
  388. package/dist/esm/messages/reducer.mjs +63 -76
  389. package/dist/esm/messages/reducer.mjs.map +1 -1
  390. package/dist/esm/messages/tools.mjs +49 -75
  391. package/dist/esm/messages/tools.mjs.map +1 -1
  392. package/dist/esm/openai/index.mjs +170 -215
  393. package/dist/esm/openai/index.mjs.map +1 -1
  394. package/dist/esm/responses/index.mjs +301 -389
  395. package/dist/esm/responses/index.mjs.map +1 -1
  396. package/dist/esm/run.mjs +903 -1111
  397. package/dist/esm/run.mjs.map +1 -1
  398. package/dist/esm/session/AgentSession.mjs +806 -985
  399. package/dist/esm/session/AgentSession.mjs.map +1 -1
  400. package/dist/esm/session/JsonlSessionStore.mjs +326 -407
  401. package/dist/esm/session/JsonlSessionStore.mjs.map +1 -1
  402. package/dist/esm/session/handlers.mjs +192 -206
  403. package/dist/esm/session/handlers.mjs.map +1 -1
  404. package/dist/esm/session/ids.mjs +9 -8
  405. package/dist/esm/session/ids.mjs.map +1 -1
  406. package/dist/esm/session/index.mjs +5 -0
  407. package/dist/esm/session/messageSerialization.mjs +94 -154
  408. package/dist/esm/session/messageSerialization.mjs.map +1 -1
  409. package/dist/esm/splitStream.mjs +147 -204
  410. package/dist/esm/splitStream.mjs.map +1 -1
  411. package/dist/esm/stream.mjs +872 -1341
  412. package/dist/esm/stream.mjs.map +1 -1
  413. package/dist/esm/summarization/index.mjs +57 -99
  414. package/dist/esm/summarization/index.mjs.map +1 -1
  415. package/dist/esm/summarization/node.mjs +640 -790
  416. package/dist/esm/summarization/node.mjs.map +1 -1
  417. package/dist/esm/tools/BashExecutor.mjs +103 -129
  418. package/dist/esm/tools/BashExecutor.mjs.map +1 -1
  419. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +162 -239
  420. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  421. package/dist/esm/tools/Calculator.mjs +34 -36
  422. package/dist/esm/tools/Calculator.mjs.map +1 -1
  423. package/dist/esm/tools/CodeExecutor.mjs +123 -164
  424. package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
  425. package/dist/esm/tools/CodeSessionFileSummary.mjs +36 -44
  426. package/dist/esm/tools/CodeSessionFileSummary.mjs.map +1 -1
  427. package/dist/esm/tools/ProgrammaticToolCalling.mjs +454 -644
  428. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  429. package/dist/esm/tools/ReadFile.mjs +17 -18
  430. package/dist/esm/tools/ReadFile.mjs.map +1 -1
  431. package/dist/esm/tools/SkillTool.mjs +26 -25
  432. package/dist/esm/tools/SkillTool.mjs.map +1 -1
  433. package/dist/esm/tools/SubagentTool.mjs +59 -59
  434. package/dist/esm/tools/SubagentTool.mjs.map +1 -1
  435. package/dist/esm/tools/ToolNode.mjs +2144 -2684
  436. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  437. package/dist/esm/tools/ToolSearch.mjs +659 -804
  438. package/dist/esm/tools/ToolSearch.mjs.map +1 -1
  439. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs +248 -338
  440. package/dist/esm/tools/cloudflare/CloudflareBridgeRuntime.mjs.map +1 -1
  441. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs +170 -195
  442. package/dist/esm/tools/cloudflare/CloudflareProgrammaticToolCalling.mjs.map +1 -1
  443. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs +424 -517
  444. package/dist/esm/tools/cloudflare/CloudflareSandboxExecutionEngine.mjs.map +1 -1
  445. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs +91 -122
  446. package/dist/esm/tools/cloudflare/CloudflareSandboxTools.mjs.map +1 -1
  447. package/dist/esm/tools/cloudflare/index.mjs +5 -0
  448. package/dist/esm/tools/eagerEventExecution.mjs +75 -96
  449. package/dist/esm/tools/eagerEventExecution.mjs.map +1 -1
  450. package/dist/esm/tools/handlers.mjs +200 -260
  451. package/dist/esm/tools/handlers.mjs.map +1 -1
  452. package/dist/esm/tools/local/CompileCheckTool.mjs +150 -210
  453. package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -1
  454. package/dist/esm/tools/local/FileCheckpointer.mjs +77 -83
  455. package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -1
  456. package/dist/esm/tools/local/LocalCodingTools.mjs +760 -1017
  457. package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -1
  458. package/dist/esm/tools/local/LocalExecutionEngine.mjs +663 -936
  459. package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -1
  460. package/dist/esm/tools/local/LocalExecutionTools.mjs +49 -90
  461. package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -1
  462. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +283 -349
  463. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  464. package/dist/esm/tools/local/attachments.mjs +108 -163
  465. package/dist/esm/tools/local/attachments.mjs.map +1 -1
  466. package/dist/esm/tools/local/bashAst.mjs +99 -111
  467. package/dist/esm/tools/local/bashAst.mjs.map +1 -1
  468. package/dist/esm/tools/local/editStrategies.mjs +126 -167
  469. package/dist/esm/tools/local/editStrategies.mjs.map +1 -1
  470. package/dist/esm/tools/local/index.mjs +13 -0
  471. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +136 -216
  472. package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -1
  473. package/dist/esm/tools/local/syntaxCheck.mjs +138 -155
  474. package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -1
  475. package/dist/esm/tools/local/textEncoding.mjs +25 -21
  476. package/dist/esm/tools/local/textEncoding.mjs.map +1 -1
  477. package/dist/esm/tools/local/workspaceFS.mjs +38 -44
  478. package/dist/esm/tools/local/workspaceFS.mjs.map +1 -1
  479. package/dist/esm/tools/ptcTimeout.mjs +27 -42
  480. package/dist/esm/tools/ptcTimeout.mjs.map +1 -1
  481. package/dist/esm/tools/schema.mjs +24 -21
  482. package/dist/esm/tools/schema.mjs.map +1 -1
  483. package/dist/esm/tools/search/anthropic.mjs +24 -31
  484. package/dist/esm/tools/search/anthropic.mjs.map +1 -1
  485. package/dist/esm/tools/search/content.mjs +93 -116
  486. package/dist/esm/tools/search/content.mjs.map +1 -1
  487. package/dist/esm/tools/search/firecrawl.mjs +139 -169
  488. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  489. package/dist/esm/tools/search/format.mjs +128 -194
  490. package/dist/esm/tools/search/format.mjs.map +1 -1
  491. package/dist/esm/tools/search/highlights.mjs +165 -230
  492. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  493. package/dist/esm/tools/search/index.mjs +3 -0
  494. package/dist/esm/tools/search/rerankers.mjs +149 -168
  495. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  496. package/dist/esm/tools/search/schema.mjs +39 -37
  497. package/dist/esm/tools/search/schema.mjs.map +1 -1
  498. package/dist/esm/tools/search/search.mjs +426 -528
  499. package/dist/esm/tools/search/search.mjs.map +1 -1
  500. package/dist/esm/tools/search/serper-scraper.mjs +104 -124
  501. package/dist/esm/tools/search/serper-scraper.mjs.map +1 -1
  502. package/dist/esm/tools/search/tavily-scraper.mjs +127 -178
  503. package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -1
  504. package/dist/esm/tools/search/tavily-search.mjs +293 -357
  505. package/dist/esm/tools/search/tavily-search.mjs.map +1 -1
  506. package/dist/esm/tools/search/tool.mjs +259 -297
  507. package/dist/esm/tools/search/tool.mjs.map +1 -1
  508. package/dist/esm/tools/search/utils.mjs +74 -115
  509. package/dist/esm/tools/search/utils.mjs.map +1 -1
  510. package/dist/esm/tools/skillCatalog.mjs +54 -70
  511. package/dist/esm/tools/skillCatalog.mjs.map +1 -1
  512. package/dist/esm/tools/streamedToolCallSeals.mjs +42 -31
  513. package/dist/esm/tools/streamedToolCallSeals.mjs.map +1 -1
  514. package/dist/esm/tools/subagent/SubagentExecutor.mjs +612 -768
  515. package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
  516. package/dist/esm/tools/subagent/index.mjs +2 -0
  517. package/dist/esm/tools/toolOutputReferences.mjs +523 -624
  518. package/dist/esm/tools/toolOutputReferences.mjs.map +1 -1
  519. package/dist/esm/utils/callbacks.mjs +11 -19
  520. package/dist/esm/utils/callbacks.mjs.map +1 -1
  521. package/dist/esm/utils/errors.mjs +70 -93
  522. package/dist/esm/utils/errors.mjs.map +1 -1
  523. package/dist/esm/utils/events.mjs +32 -40
  524. package/dist/esm/utils/events.mjs.map +1 -1
  525. package/dist/esm/utils/graph.mjs +8 -10
  526. package/dist/esm/utils/graph.mjs.map +1 -1
  527. package/dist/esm/utils/handlers.mjs +60 -80
  528. package/dist/esm/utils/handlers.mjs.map +1 -1
  529. package/dist/esm/utils/index.mjs +10 -0
  530. package/dist/esm/utils/llm.mjs +19 -25
  531. package/dist/esm/utils/llm.mjs.map +1 -1
  532. package/dist/esm/utils/misc.mjs +30 -44
  533. package/dist/esm/utils/misc.mjs.map +1 -1
  534. package/dist/esm/utils/run.mjs +50 -64
  535. package/dist/esm/utils/run.mjs.map +1 -1
  536. package/dist/esm/utils/schema.mjs +11 -17
  537. package/dist/esm/utils/schema.mjs.map +1 -1
  538. package/dist/esm/utils/title.mjs +71 -104
  539. package/dist/esm/utils/title.mjs.map +1 -1
  540. package/dist/esm/utils/tokens.mjs +186 -281
  541. package/dist/esm/utils/tokens.mjs.map +1 -1
  542. package/dist/esm/utils/truncation.mjs +95 -112
  543. package/dist/esm/utils/truncation.mjs.map +1 -1
  544. package/dist/types/llm/bedrock/utils/index.d.ts +1 -1
  545. package/dist/types/llm/bedrock/utils/message_outputs.d.ts +9 -0
  546. package/dist/types/llm/vertexai/index.d.ts +10 -0
  547. package/dist/types/tools/ToolNode.d.ts +8 -0
  548. package/dist/types/tools/search/tool.d.ts +17 -0
  549. package/dist/types/tools/search/types.d.ts +4 -0
  550. package/dist/types/tools/streamedToolCallSeals.d.ts +5 -1
  551. package/dist/types/types/tools.d.ts +10 -0
  552. package/package.json +4 -10
  553. package/src/__tests__/stream.eagerEventExecution.test.ts +703 -0
  554. package/src/llm/bedrock/index.ts +40 -0
  555. package/src/llm/bedrock/streamSealDispatch.test.ts +158 -0
  556. package/src/llm/bedrock/utils/index.ts +1 -0
  557. package/src/llm/bedrock/utils/message_outputs.test.ts +85 -0
  558. package/src/llm/bedrock/utils/message_outputs.ts +43 -0
  559. package/src/llm/google/utils/common.test.ts +64 -0
  560. package/src/llm/google/utils/common.ts +18 -0
  561. package/src/llm/openai/index.ts +95 -1
  562. package/src/llm/openai/sequentialToolCallSeals.test.ts +199 -0
  563. package/src/llm/vertexai/index.ts +31 -0
  564. package/src/llm/vertexai/sealStreamedToolCalls.test.ts +88 -0
  565. package/src/llm/vertexai/streamSealDispatch.test.ts +148 -0
  566. package/src/stream.ts +40 -6
  567. package/src/tools/ToolNode.ts +85 -3
  568. package/src/tools/__tests__/ToolNode.onResultCompletion.test.ts +368 -0
  569. package/src/tools/search/highlights.ts +9 -1
  570. package/src/tools/search/search.ts +41 -3
  571. package/src/tools/search/source-processing.test.ts +373 -0
  572. package/src/tools/search/tool.ts +22 -2
  573. package/src/tools/search/types.ts +4 -0
  574. package/src/tools/streamedToolCallSeals.ts +37 -9
  575. package/src/types/tools.ts +10 -0
  576. package/dist/cjs/langchain/google-common.cjs.map +0 -1
  577. package/dist/cjs/langchain/index.cjs.map +0 -1
  578. package/dist/cjs/langchain/language_models/chat_models.cjs.map +0 -1
  579. package/dist/cjs/langchain/messages/tool.cjs.map +0 -1
  580. package/dist/cjs/langchain/messages.cjs.map +0 -1
  581. package/dist/cjs/langchain/openai.cjs.map +0 -1
  582. package/dist/cjs/langchain/prompts.cjs.map +0 -1
  583. package/dist/cjs/langchain/runnables.cjs.map +0 -1
  584. package/dist/cjs/langchain/tools.cjs.map +0 -1
  585. package/dist/cjs/langchain/utils/env.cjs.map +0 -1
  586. package/dist/cjs/main.cjs.map +0 -1
  587. package/dist/esm/langchain/google-common.mjs.map +0 -1
  588. package/dist/esm/langchain/index.mjs.map +0 -1
  589. package/dist/esm/langchain/language_models/chat_models.mjs.map +0 -1
  590. package/dist/esm/langchain/messages/tool.mjs.map +0 -1
  591. package/dist/esm/langchain/messages.mjs.map +0 -1
  592. package/dist/esm/langchain/openai.mjs.map +0 -1
  593. package/dist/esm/langchain/prompts.mjs.map +0 -1
  594. package/dist/esm/langchain/runnables.mjs.map +0 -1
  595. package/dist/esm/langchain/tools.mjs.map +0 -1
  596. package/dist/esm/langchain/utils/env.mjs.map +0 -1
  597. package/dist/esm/main.mjs.map +0 -1
@@ -1,294 +1,236 @@
1
- 'use strict';
2
-
3
- var http = require('http');
4
- var tools = require('@langchain/core/tools');
5
- var crypto = require('crypto');
6
- var ProgrammaticToolCalling = require('../ProgrammaticToolCalling.cjs');
7
- var BashProgrammaticToolCalling = require('../BashProgrammaticToolCalling.cjs');
8
- var LocalExecutionEngine = require('./LocalExecutionEngine.cjs');
9
- var executeHooks = require('../../hooks/executeHooks.cjs');
10
- require('../../hooks/createWorkspacePolicyHook.cjs');
11
- var _enum = require('../../common/enum.cjs');
12
-
13
- const DEFAULT_TIMEOUT = 60000;
14
- const LOCAL_MIN_TIMEOUT = 1000;
15
- const LOCAL_MAX_TIMEOUT = 300000;
1
+ require("../../common/enum.cjs");
2
+ require("../../common/index.cjs");
3
+ const require_LocalExecutionEngine = require("./LocalExecutionEngine.cjs");
4
+ const require_ProgrammaticToolCalling = require("../ProgrammaticToolCalling.cjs");
5
+ const require_BashProgrammaticToolCalling = require("../BashProgrammaticToolCalling.cjs");
6
+ const require_executeHooks = require("../../hooks/executeHooks.cjs");
7
+ require("../../hooks/index.cjs");
8
+ let _langchain_core_tools = require("@langchain/core/tools");
9
+ let crypto = require("crypto");
10
+ let http = require("http");
11
+ //#region src/tools/local/LocalProgrammaticToolCalling.ts
12
+ const DEFAULT_TIMEOUT = 6e4;
13
+ const LOCAL_MIN_TIMEOUT = 1e3;
14
+ const LOCAL_MAX_TIMEOUT = 3e5;
16
15
  function normalizeLocalTimeout(timeoutMs) {
17
- if (timeoutMs == null || !Number.isFinite(timeoutMs)) {
18
- return DEFAULT_TIMEOUT;
19
- }
20
- return Math.max(LOCAL_MIN_TIMEOUT, Math.floor(timeoutMs));
16
+ if (timeoutMs == null || !Number.isFinite(timeoutMs)) return DEFAULT_TIMEOUT;
17
+ return Math.max(LOCAL_MIN_TIMEOUT, Math.floor(timeoutMs));
21
18
  }
22
19
  function formatLocalTimeout(timeoutMs) {
23
- return timeoutMs % 1000 === 0
24
- ? `${timeoutMs / 1000} seconds`
25
- : `${timeoutMs} milliseconds`;
20
+ return timeoutMs % 1e3 === 0 ? `${timeoutMs / 1e3} seconds` : `${timeoutMs} milliseconds`;
26
21
  }
27
22
  function createLocalTimeoutSchema(timeoutMs) {
28
- const defaultTimeout = normalizeLocalTimeout(timeoutMs);
29
- const maxTimeout = Math.max(LOCAL_MAX_TIMEOUT, defaultTimeout);
30
- const formattedDefault = formatLocalTimeout(defaultTimeout);
31
- const formattedMax = formatLocalTimeout(maxTimeout);
32
- return {
33
- type: 'integer',
34
- minimum: LOCAL_MIN_TIMEOUT,
35
- maximum: maxTimeout,
36
- default: defaultTimeout,
37
- description: 'Maximum local execution time in milliseconds. ' +
38
- `Default: ${formattedDefault}. Max: ${formattedMax}.`,
39
- };
23
+ const defaultTimeout = normalizeLocalTimeout(timeoutMs);
24
+ const maxTimeout = Math.max(LOCAL_MAX_TIMEOUT, defaultTimeout);
25
+ return {
26
+ type: "integer",
27
+ minimum: LOCAL_MIN_TIMEOUT,
28
+ maximum: maxTimeout,
29
+ default: defaultTimeout,
30
+ description: `Maximum local execution time in milliseconds. Default: ${formatLocalTimeout(defaultTimeout)}. Max: ${formatLocalTimeout(maxTimeout)}.`
31
+ };
40
32
  }
41
33
  function createLocalProgrammaticToolCallingSchema(localConfig = {}) {
42
- return {
43
- ...ProgrammaticToolCalling.ProgrammaticToolCallingSchema,
44
- properties: {
45
- ...ProgrammaticToolCalling.ProgrammaticToolCallingSchema.properties,
46
- timeout: createLocalTimeoutSchema(localConfig.timeoutMs),
47
- lang: {
48
- type: 'string',
49
- enum: ['py', 'python', 'bash', 'sh'],
50
- default: 'bash',
51
- description: 'Local engine runtime for orchestration code. Defaults to bash; use py/python for Python orchestration.',
52
- },
53
- },
54
- };
34
+ return {
35
+ ...require_ProgrammaticToolCalling.ProgrammaticToolCallingSchema,
36
+ properties: {
37
+ ...require_ProgrammaticToolCalling.ProgrammaticToolCallingSchema.properties,
38
+ timeout: createLocalTimeoutSchema(localConfig.timeoutMs),
39
+ lang: {
40
+ type: "string",
41
+ enum: [
42
+ "py",
43
+ "python",
44
+ "bash",
45
+ "sh"
46
+ ],
47
+ default: "bash",
48
+ description: "Local engine runtime for orchestration code. Defaults to bash; use py/python for Python orchestration."
49
+ }
50
+ }
51
+ };
55
52
  }
56
53
  function createLocalBashProgrammaticToolCallingSchema(localConfig = {}) {
57
- return {
58
- ...BashProgrammaticToolCalling.BashProgrammaticToolCallingSchema,
59
- properties: {
60
- ...BashProgrammaticToolCalling.BashProgrammaticToolCallingSchema.properties,
61
- timeout: createLocalTimeoutSchema(localConfig.timeoutMs),
62
- },
63
- };
54
+ return {
55
+ ...require_BashProgrammaticToolCalling.BashProgrammaticToolCallingSchema,
56
+ properties: {
57
+ ...require_BashProgrammaticToolCalling.BashProgrammaticToolCallingSchema.properties,
58
+ timeout: createLocalTimeoutSchema(localConfig.timeoutMs)
59
+ }
60
+ };
64
61
  }
65
- const BRIDGE_AUTH_HEADER = 'x-librechat-bridge-token';
62
+ const BRIDGE_AUTH_HEADER = "x-librechat-bridge-token";
66
63
  function constantTimeEquals(a, b) {
67
- const aBuf = Buffer.from(a, 'utf8');
68
- const bBuf = Buffer.from(b, 'utf8');
69
- if (aBuf.length !== bBuf.length) {
70
- return false;
71
- }
72
- return crypto.timingSafeEqual(aBuf, bBuf);
64
+ const aBuf = Buffer.from(a, "utf8");
65
+ const bBuf = Buffer.from(b, "utf8");
66
+ if (aBuf.length !== bBuf.length) return false;
67
+ return (0, crypto.timingSafeEqual)(aBuf, bBuf);
73
68
  }
74
69
  function resolveRuntime(params) {
75
- const rawRuntime = params.lang ?? params.runtime ?? params.language ?? 'bash';
76
- return rawRuntime === 'py' || rawRuntime === 'python' ? 'python' : 'bash';
70
+ const rawRuntime = params.lang ?? params.runtime ?? params.language ?? "bash";
71
+ return rawRuntime === "py" || rawRuntime === "python" ? "python" : "bash";
77
72
  }
78
73
  function toSerializable(value) {
79
- if (value === undefined) {
80
- return null;
81
- }
82
- return value;
74
+ if (value === void 0) return null;
75
+ return value;
83
76
  }
84
77
  async function readRequestBody(req) {
85
- const chunks = [];
86
- for await (const chunk of req) {
87
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
88
- }
89
- const raw = Buffer.concat(chunks).toString('utf8');
90
- if (raw === '') {
91
- return {};
92
- }
93
- return JSON.parse(raw);
78
+ const chunks = [];
79
+ for await (const chunk of req) chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
80
+ const raw = Buffer.concat(chunks).toString("utf8");
81
+ if (raw === "") return {};
82
+ return JSON.parse(raw);
94
83
  }
95
84
  function writeJson(res, status, value) {
96
- res.writeHead(status, { 'Content-Type': 'application/json' });
97
- res.end(JSON.stringify(value));
85
+ res.writeHead(status, { "Content-Type": "application/json" });
86
+ res.end(JSON.stringify(value));
98
87
  }
99
88
  /**
100
- * Run the host's `PreToolUse` hook chain for a single bridge call.
101
- * Returns the (possibly rewritten) input and a `denyReason` if any
102
- * matcher returned `decision: 'deny'` or `'ask'`. `'ask'` collapses
103
- * to deny because the bridge can't raise a LangGraph interrupt from
104
- * inside an HTTP handler — fail-closed matches the rest of the SDK
105
- * when HITL is unavailable.
106
- *
107
- * @internal Exported for tests so the deny / allow / updatedInput /
108
- * ask branches can be exercised without standing up the full HTTP
109
- * bridge.
110
- */
89
+ * Run the host's `PreToolUse` hook chain for a single bridge call.
90
+ * Returns the (possibly rewritten) input and a `denyReason` if any
91
+ * matcher returned `decision: 'deny'` or `'ask'`. `'ask'` collapses
92
+ * to deny because the bridge can't raise a LangGraph interrupt from
93
+ * inside an HTTP handler — fail-closed matches the rest of the SDK
94
+ * when HITL is unavailable.
95
+ *
96
+ * @internal Exported for tests so the deny / allow / updatedInput /
97
+ * ask branches can be exercised without standing up the full HTTP
98
+ * bridge.
99
+ */
111
100
  async function applyPreToolUseHooksForBridge(hookContext, toolName, toolUseId, toolInput) {
112
- if (hookContext.registry == null) {
113
- return { input: toolInput };
114
- }
115
- const result = await executeHooks.executeHooks({
116
- registry: hookContext.registry,
117
- input: {
118
- hook_event_name: 'PreToolUse',
119
- runId: hookContext.runId,
120
- threadId: hookContext.threadId,
121
- agentId: hookContext.agentId,
122
- executingAgentId: hookContext.executingAgentId,
123
- toolName,
124
- toolInput,
125
- toolUseId,
126
- stepId: '',
127
- turn: 0,
128
- },
129
- sessionId: hookContext.runId,
130
- matchQuery: toolName,
131
- }).catch(() => undefined);
132
- if (result == null) {
133
- return { input: toolInput };
134
- }
135
- const nextInput = result.updatedInput != null
136
- ? result.updatedInput
137
- : toolInput;
138
- if (result.decision === 'deny' || result.decision === 'ask') {
139
- return {
140
- input: nextInput,
141
- denyReason: result.reason ??
142
- (result.decision === 'ask'
143
- ? `Tool "${toolName}" requires human approval; bridge cannot raise an interrupt — denying.`
144
- : `Tool "${toolName}" denied by PreToolUse hook.`),
145
- };
146
- }
147
- return { input: nextInput };
101
+ if (hookContext.registry == null) return { input: toolInput };
102
+ const result = await require_executeHooks.executeHooks({
103
+ registry: hookContext.registry,
104
+ input: {
105
+ hook_event_name: "PreToolUse",
106
+ runId: hookContext.runId,
107
+ threadId: hookContext.threadId,
108
+ agentId: hookContext.agentId,
109
+ executingAgentId: hookContext.executingAgentId,
110
+ toolName,
111
+ toolInput,
112
+ toolUseId,
113
+ stepId: "",
114
+ turn: 0
115
+ },
116
+ sessionId: hookContext.runId,
117
+ matchQuery: toolName
118
+ }).catch(() => void 0);
119
+ if (result == null) return { input: toolInput };
120
+ const nextInput = result.updatedInput != null ? result.updatedInput : toolInput;
121
+ if (result.decision === "deny" || result.decision === "ask") return {
122
+ input: nextInput,
123
+ denyReason: result.reason ?? (result.decision === "ask" ? `Tool "${toolName}" requires human approval; bridge cannot raise an interrupt — denying.` : `Tool "${toolName}" denied by PreToolUse hook.`)
124
+ };
125
+ return { input: nextInput };
148
126
  }
149
127
  async function createToolBridge(toolMap, hookContext) {
150
- const token = crypto.randomBytes(32).toString('hex');
151
- const server = http.createServer((req, res) => {
152
- // `?mode=text` returns the already-serialized result as the body
153
- // (or the error message at non-2xx). Python/Node callers stay on
154
- // JSON; bash callers using curl can avoid pulling in a JSON
155
- // parser dependency (Codex P2 #19 — `python3` was a hard
156
- // requirement for the bash bridge, breaking minimal containers).
157
- const url = new URL(req.url ?? '/', 'http://127.0.0.1');
158
- const isTextMode = url.searchParams.get('mode') === 'text';
159
- if (req.method !== 'POST' || url.pathname !== '/tool') {
160
- if (isTextMode) {
161
- res.writeHead(404, { 'Content-Type': 'text/plain' });
162
- res.end('Not found');
163
- }
164
- else {
165
- writeJson(res, 404, { error: 'Not found' });
166
- }
167
- return;
168
- }
169
- const presented = req.headers[BRIDGE_AUTH_HEADER];
170
- const presentedToken = Array.isArray(presented) ? presented[0] : presented;
171
- if (typeof presentedToken !== 'string' ||
172
- !constantTimeEquals(presentedToken, token)) {
173
- if (isTextMode) {
174
- res.writeHead(401, { 'Content-Type': 'text/plain' });
175
- res.end('Unauthorized');
176
- }
177
- else {
178
- writeJson(res, 401, { error: 'Unauthorized' });
179
- }
180
- return;
181
- }
182
- readRequestBody(req)
183
- .then(async (body) => {
184
- if (typeof body.name !== 'string' || body.name === '') {
185
- const message = 'Tool request is missing a tool name.';
186
- if (isTextMode) {
187
- res.writeHead(400, { 'Content-Type': 'text/plain' });
188
- res.end(message);
189
- }
190
- else {
191
- writeJson(res, 400, {
192
- call_id: body.id ?? 'invalid',
193
- result: null,
194
- is_error: true,
195
- error_message: message,
196
- });
197
- }
198
- return;
199
- }
200
- const callId = body.id ?? `local_call_${crypto.randomUUID()}`;
201
- let effectiveInput = body.input ?? {};
202
- if (hookContext != null) {
203
- const gate = await applyPreToolUseHooksForBridge(hookContext, body.name, callId, effectiveInput);
204
- if (gate.denyReason != null) {
205
- const denyMsg = gate.denyReason;
206
- if (isTextMode) {
207
- res.writeHead(500, { 'Content-Type': 'text/plain' });
208
- res.end(denyMsg);
209
- }
210
- else {
211
- writeJson(res, 500, {
212
- call_id: callId,
213
- result: null,
214
- is_error: true,
215
- error_message: denyMsg,
216
- });
217
- }
218
- return;
219
- }
220
- effectiveInput = gate.input;
221
- }
222
- const [result] = await ProgrammaticToolCalling.executeTools([
223
- {
224
- id: callId,
225
- name: body.name,
226
- input: effectiveInput,
227
- },
228
- ], toolMap);
229
- if (isTextMode) {
230
- if (result.is_error === true) {
231
- res.writeHead(500, { 'Content-Type': 'text/plain' });
232
- res.end(result.error_message ?? `Tool ${body.name} failed`);
233
- }
234
- else {
235
- const value = toSerializable(result.result);
236
- const text = typeof value === 'string' ? value : JSON.stringify(value);
237
- res.writeHead(200, { 'Content-Type': 'text/plain' });
238
- res.end(text);
239
- }
240
- return;
241
- }
242
- writeJson(res, 200, {
243
- ...result,
244
- result: toSerializable(result.result),
245
- });
246
- })
247
- .catch((error) => {
248
- if (isTextMode) {
249
- res.writeHead(500, { 'Content-Type': 'text/plain' });
250
- res.end(error.message);
251
- }
252
- else {
253
- writeJson(res, 500, {
254
- call_id: 'error',
255
- result: null,
256
- is_error: true,
257
- error_message: error.message,
258
- });
259
- }
260
- });
261
- });
262
- await new Promise((resolve, reject) => {
263
- server.once('error', reject);
264
- server.listen(0, '127.0.0.1', resolve);
265
- });
266
- const address = server.address();
267
- return {
268
- url: `http://127.0.0.1:${address.port}/tool`,
269
- token,
270
- close: () => new Promise((resolve, reject) => {
271
- server.close((error) => (error ? reject(error) : resolve()));
272
- }),
273
- };
128
+ const token = (0, crypto.randomBytes)(32).toString("hex");
129
+ const server = (0, http.createServer)((req, res) => {
130
+ const url = new URL(req.url ?? "/", "http://127.0.0.1");
131
+ const isTextMode = url.searchParams.get("mode") === "text";
132
+ if (req.method !== "POST" || url.pathname !== "/tool") {
133
+ if (isTextMode) {
134
+ res.writeHead(404, { "Content-Type": "text/plain" });
135
+ res.end("Not found");
136
+ } else writeJson(res, 404, { error: "Not found" });
137
+ return;
138
+ }
139
+ const presented = req.headers[BRIDGE_AUTH_HEADER];
140
+ const presentedToken = Array.isArray(presented) ? presented[0] : presented;
141
+ if (typeof presentedToken !== "string" || !constantTimeEquals(presentedToken, token)) {
142
+ if (isTextMode) {
143
+ res.writeHead(401, { "Content-Type": "text/plain" });
144
+ res.end("Unauthorized");
145
+ } else writeJson(res, 401, { error: "Unauthorized" });
146
+ return;
147
+ }
148
+ readRequestBody(req).then(async (body) => {
149
+ if (typeof body.name !== "string" || body.name === "") {
150
+ const message = "Tool request is missing a tool name.";
151
+ if (isTextMode) {
152
+ res.writeHead(400, { "Content-Type": "text/plain" });
153
+ res.end(message);
154
+ } else writeJson(res, 400, {
155
+ call_id: body.id ?? "invalid",
156
+ result: null,
157
+ is_error: true,
158
+ error_message: message
159
+ });
160
+ return;
161
+ }
162
+ const callId = body.id ?? `local_call_${(0, crypto.randomUUID)()}`;
163
+ let effectiveInput = body.input ?? {};
164
+ if (hookContext != null) {
165
+ const gate = await applyPreToolUseHooksForBridge(hookContext, body.name, callId, effectiveInput);
166
+ if (gate.denyReason != null) {
167
+ const denyMsg = gate.denyReason;
168
+ if (isTextMode) {
169
+ res.writeHead(500, { "Content-Type": "text/plain" });
170
+ res.end(denyMsg);
171
+ } else writeJson(res, 500, {
172
+ call_id: callId,
173
+ result: null,
174
+ is_error: true,
175
+ error_message: denyMsg
176
+ });
177
+ return;
178
+ }
179
+ effectiveInput = gate.input;
180
+ }
181
+ const [result] = await require_ProgrammaticToolCalling.executeTools([{
182
+ id: callId,
183
+ name: body.name,
184
+ input: effectiveInput
185
+ }], toolMap);
186
+ if (isTextMode) {
187
+ if (result.is_error === true) {
188
+ res.writeHead(500, { "Content-Type": "text/plain" });
189
+ res.end(result.error_message ?? `Tool ${body.name} failed`);
190
+ } else {
191
+ const value = toSerializable(result.result);
192
+ const text = typeof value === "string" ? value : JSON.stringify(value);
193
+ res.writeHead(200, { "Content-Type": "text/plain" });
194
+ res.end(text);
195
+ }
196
+ return;
197
+ }
198
+ writeJson(res, 200, {
199
+ ...result,
200
+ result: toSerializable(result.result)
201
+ });
202
+ }).catch((error) => {
203
+ if (isTextMode) {
204
+ res.writeHead(500, { "Content-Type": "text/plain" });
205
+ res.end(error.message);
206
+ } else writeJson(res, 500, {
207
+ call_id: "error",
208
+ result: null,
209
+ is_error: true,
210
+ error_message: error.message
211
+ });
212
+ });
213
+ });
214
+ await new Promise((resolve, reject) => {
215
+ server.once("error", reject);
216
+ server.listen(0, "127.0.0.1", resolve);
217
+ });
218
+ return {
219
+ url: `http://127.0.0.1:${server.address().port}/tool`,
220
+ token,
221
+ close: () => new Promise((resolve, reject) => {
222
+ server.close((error) => error ? reject(error) : resolve());
223
+ })
224
+ };
274
225
  }
275
226
  function indent(code) {
276
- return code
277
- .split('\n')
278
- .map((line) => ` ${line}`)
279
- .join('\n');
227
+ return code.split("\n").map((line) => ` ${line}`).join("\n");
280
228
  }
281
229
  function createPythonProgram(code, toolDefs, bridgeUrl, bridgeToken) {
282
- const functionDefs = toolDefs
283
- .map((def) => {
284
- const pythonName = ProgrammaticToolCalling.normalizeToPythonIdentifier(def.name);
285
- return [
286
- `async def ${pythonName}(**kwargs):`,
287
- ` return await __librechat_call_tool(${JSON.stringify(def.name)}, kwargs)`,
288
- ].join('\n');
289
- })
290
- .join('\n\n');
291
- return `
230
+ const functionDefs = toolDefs.map((def) => {
231
+ return [`async def ${require_ProgrammaticToolCalling.normalizeToPythonIdentifier(def.name)}(**kwargs):`, ` return await __librechat_call_tool(${JSON.stringify(def.name)}, kwargs)`].join("\n");
232
+ }).join("\n\n");
233
+ return `
292
234
  import asyncio
293
235
  import json
294
236
  import urllib.request
@@ -323,25 +265,22 @@ asyncio.run(__librechat_main())
323
265
  `.trimStart();
324
266
  }
325
267
  function _createBashProgramForTests(code, toolDefs, bridgeUrl, bridgeToken) {
326
- return createBashProgram(code, toolDefs, bridgeUrl, bridgeToken);
268
+ return createBashProgram(code, toolDefs, bridgeUrl, bridgeToken);
327
269
  }
328
270
  function createBashProgram(code, toolDefs, bridgeUrl, bridgeToken) {
329
- const functions = toolDefs
330
- .map((def) => {
331
- const bashName = BashProgrammaticToolCalling.normalizeToBashIdentifier(def.name);
332
- return [
333
- `${bashName}() {`,
334
- ' local payload="${1:-}"',
335
- ' if [ -z "$payload" ]; then payload=\'{}\'; fi',
336
- ` __librechat_call_tool ${LocalExecutionEngine.shellQuote(def.name)} "$payload"`,
337
- '}',
338
- ].join('\n');
339
- })
340
- .join('\n\n');
341
- return `
342
- __LIBRECHAT_TOOL_BRIDGE=${LocalExecutionEngine.shellQuote(bridgeUrl)}
343
- __LIBRECHAT_TOOL_HEADER=${LocalExecutionEngine.shellQuote(BRIDGE_AUTH_HEADER)}
344
- __LIBRECHAT_TOOL_TOKEN=${LocalExecutionEngine.shellQuote(bridgeToken)}
271
+ const functions = toolDefs.map((def) => {
272
+ return [
273
+ `${require_BashProgrammaticToolCalling.normalizeToBashIdentifier(def.name)}() {`,
274
+ " local payload=\"${1:-}\"",
275
+ " if [ -z \"$payload\" ]; then payload='{}'; fi",
276
+ ` __librechat_call_tool ${require_LocalExecutionEngine.shellQuote(def.name)} "$payload"`,
277
+ "}"
278
+ ].join("\n");
279
+ }).join("\n\n");
280
+ return `
281
+ __LIBRECHAT_TOOL_BRIDGE=${require_LocalExecutionEngine.shellQuote(bridgeUrl)}
282
+ __LIBRECHAT_TOOL_HEADER=${require_LocalExecutionEngine.shellQuote(BRIDGE_AUTH_HEADER)}
283
+ __LIBRECHAT_TOOL_TOKEN=${require_LocalExecutionEngine.shellQuote(bridgeToken)}
345
284
 
346
285
  # Bridge call helper. Tries curl first (universally available, no
347
286
  # JSON parser needed thanks to the bridge's ?mode=text endpoint),
@@ -404,90 +343,83 @@ ${code}
404
343
  `.trimStart();
405
344
  }
406
345
  function getProgrammaticContext(config) {
407
- return (config?.toolCall ?? {});
346
+ return config?.toolCall ?? {};
408
347
  }
409
348
  function createEffectiveToolMap(toolMap, toolDefs, code, filterTools) {
410
- const effectiveTools = filterTools(toolDefs, code);
411
- const effectiveMap = new Map(effectiveTools
412
- .map((def) => {
413
- const executable = toolMap.get(def.name);
414
- return executable == null
415
- ? undefined
416
- : [def.name, executable];
417
- })
418
- .filter((entry) => entry != null));
419
- return { effectiveTools, effectiveMap };
349
+ const effectiveTools = filterTools(toolDefs, code);
350
+ return {
351
+ effectiveTools,
352
+ effectiveMap: new Map(effectiveTools.map((def) => {
353
+ const executable = toolMap.get(def.name);
354
+ return executable == null ? void 0 : [def.name, executable];
355
+ }).filter((entry) => entry != null))
356
+ };
420
357
  }
421
358
  async function runLocalProgrammaticTool(args) {
422
- const { toolMap, toolDefs, hookContext } = getProgrammaticContext(args.config);
423
- if (toolMap == null || toolMap.size === 0) {
424
- throw new Error('No toolMap provided for local programmatic execution.');
425
- }
426
- if (toolDefs == null || toolDefs.length === 0) {
427
- throw new Error('No tool definitions provided for local programmatic execution.');
428
- }
429
- const { effectiveTools, effectiveMap } = createEffectiveToolMap(toolMap, toolDefs, args.params.code, args.runtime === 'bash' ? BashProgrammaticToolCalling.filterBashToolsByUsage : ProgrammaticToolCalling.filterToolsByUsage);
430
- const bridge = await createToolBridge(effectiveMap, hookContext);
431
- try {
432
- const timeoutMs = args.params.timeout ?? args.localConfig.timeoutMs ?? DEFAULT_TIMEOUT;
433
- const result = args.runtime === 'bash'
434
- ? await LocalExecutionEngine.executeLocalBash(createBashProgram(args.params.code, effectiveTools, bridge.url, bridge.token), { ...args.localConfig, timeoutMs })
435
- : await LocalExecutionEngine.executeLocalCode({
436
- lang: 'py',
437
- code: createPythonProgram(args.params.code, effectiveTools, bridge.url, bridge.token),
438
- }, { ...args.localConfig, timeoutMs });
439
- if (result.exitCode !== 0 || result.timedOut) {
440
- throw new Error(result.stderr !== ''
441
- ? result.stderr
442
- : `Local ${args.runtime} programmatic execution exited with code ${result.exitCode ?? 'unknown'}`);
443
- }
444
- return ProgrammaticToolCalling.formatCompletedResponse({
445
- status: 'completed',
446
- session_id: LocalExecutionEngine.getLocalSessionId(args.localConfig),
447
- stdout: result.stdout,
448
- stderr: result.stderr,
449
- files: [],
450
- });
451
- }
452
- finally {
453
- await bridge.close();
454
- }
359
+ const { toolMap, toolDefs, hookContext } = getProgrammaticContext(args.config);
360
+ if (toolMap == null || toolMap.size === 0) throw new Error("No toolMap provided for local programmatic execution.");
361
+ if (toolDefs == null || toolDefs.length === 0) throw new Error("No tool definitions provided for local programmatic execution.");
362
+ const { effectiveTools, effectiveMap } = createEffectiveToolMap(toolMap, toolDefs, args.params.code, args.runtime === "bash" ? require_BashProgrammaticToolCalling.filterBashToolsByUsage : require_ProgrammaticToolCalling.filterToolsByUsage);
363
+ const bridge = await createToolBridge(effectiveMap, hookContext);
364
+ try {
365
+ const timeoutMs = args.params.timeout ?? args.localConfig.timeoutMs ?? DEFAULT_TIMEOUT;
366
+ const result = args.runtime === "bash" ? await require_LocalExecutionEngine.executeLocalBash(createBashProgram(args.params.code, effectiveTools, bridge.url, bridge.token), {
367
+ ...args.localConfig,
368
+ timeoutMs
369
+ }) : await require_LocalExecutionEngine.executeLocalCode({
370
+ lang: "py",
371
+ code: createPythonProgram(args.params.code, effectiveTools, bridge.url, bridge.token)
372
+ }, {
373
+ ...args.localConfig,
374
+ timeoutMs
375
+ });
376
+ if (result.exitCode !== 0 || result.timedOut) throw new Error(result.stderr !== "" ? result.stderr : `Local ${args.runtime} programmatic execution exited with code ${result.exitCode ?? "unknown"}`);
377
+ return require_ProgrammaticToolCalling.formatCompletedResponse({
378
+ status: "completed",
379
+ session_id: require_LocalExecutionEngine.getLocalSessionId(args.localConfig),
380
+ stdout: result.stdout,
381
+ stderr: result.stderr,
382
+ files: []
383
+ });
384
+ } finally {
385
+ await bridge.close();
386
+ }
455
387
  }
456
388
  function createLocalProgrammaticToolCallingTool(localConfig = {}) {
457
- return tools.tool(async (rawParams, config) => {
458
- const params = rawParams;
459
- return runLocalProgrammaticTool({
460
- params,
461
- config,
462
- localConfig,
463
- runtime: resolveRuntime(params),
464
- });
465
- }, {
466
- name: ProgrammaticToolCalling.ProgrammaticToolCallingName,
467
- description: `${ProgrammaticToolCalling.ProgrammaticToolCallingDescription}\n\nLocal engine: runs bash by default, or Python when \`lang\` is \`py\` or \`python\`, on the host machine and calls tools through an in-process localhost bridge.`,
468
- schema: createLocalProgrammaticToolCallingSchema(localConfig),
469
- responseFormat: _enum.Constants.CONTENT_AND_ARTIFACT,
470
- });
389
+ return (0, _langchain_core_tools.tool)(async (rawParams, config) => {
390
+ const params = rawParams;
391
+ return runLocalProgrammaticTool({
392
+ params,
393
+ config,
394
+ localConfig,
395
+ runtime: resolveRuntime(params)
396
+ });
397
+ }, {
398
+ name: require_ProgrammaticToolCalling.ProgrammaticToolCallingName,
399
+ description: `${require_ProgrammaticToolCalling.ProgrammaticToolCallingDescription}\n\nLocal engine: runs bash by default, or Python when \`lang\` is \`py\` or \`python\`, on the host machine and calls tools through an in-process localhost bridge.`,
400
+ schema: createLocalProgrammaticToolCallingSchema(localConfig),
401
+ responseFormat: "content_and_artifact"
402
+ });
471
403
  }
472
404
  function createLocalBashProgrammaticToolCallingTool(localConfig = {}) {
473
- return tools.tool(async (rawParams, config) => {
474
- const params = rawParams;
475
- return runLocalProgrammaticTool({
476
- params,
477
- config,
478
- localConfig,
479
- runtime: 'bash',
480
- });
481
- }, {
482
- name: _enum.Constants.BASH_PROGRAMMATIC_TOOL_CALLING,
483
- description: `${BashProgrammaticToolCalling.BashProgrammaticToolCallingDescription}\n\nLocal engine: runs this bash orchestration code on the host machine and calls tools through an in-process localhost bridge.`,
484
- schema: createLocalBashProgrammaticToolCallingSchema(localConfig),
485
- responseFormat: _enum.Constants.CONTENT_AND_ARTIFACT,
486
- });
405
+ return (0, _langchain_core_tools.tool)(async (rawParams, config) => {
406
+ return runLocalProgrammaticTool({
407
+ params: rawParams,
408
+ config,
409
+ localConfig,
410
+ runtime: "bash"
411
+ });
412
+ }, {
413
+ name: "run_tools_with_bash",
414
+ description: `${require_BashProgrammaticToolCalling.BashProgrammaticToolCallingDescription}\n\nLocal engine: runs this bash orchestration code on the host machine and calls tools through an in-process localhost bridge.`,
415
+ schema: createLocalBashProgrammaticToolCallingSchema(localConfig),
416
+ responseFormat: "content_and_artifact"
417
+ });
487
418
  }
488
-
419
+ //#endregion
489
420
  exports._createBashProgramForTests = _createBashProgramForTests;
490
421
  exports.applyPreToolUseHooksForBridge = applyPreToolUseHooksForBridge;
491
422
  exports.createLocalBashProgrammaticToolCallingTool = createLocalBashProgrammaticToolCallingTool;
492
423
  exports.createLocalProgrammaticToolCallingTool = createLocalProgrammaticToolCallingTool;
493
- //# sourceMappingURL=LocalProgrammaticToolCalling.cjs.map
424
+
425
+ //# sourceMappingURL=LocalProgrammaticToolCalling.cjs.map