@librechat/agents 3.1.77 → 3.1.78
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.
- package/dist/cjs/common/enum.cjs +54 -0
- package/dist/cjs/common/enum.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +155 -4
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/hooks/createWorkspacePolicyHook.cjs +291 -0
- package/dist/cjs/hooks/createWorkspacePolicyHook.cjs.map +1 -0
- package/dist/cjs/main.cjs +90 -0
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/messages/anthropicToolCache.cjs +102 -0
- package/dist/cjs/messages/anthropicToolCache.cjs.map +1 -0
- package/dist/cjs/messages/prune.cjs +27 -0
- package/dist/cjs/messages/prune.cjs.map +1 -1
- package/dist/cjs/messages/recency.cjs +99 -0
- package/dist/cjs/messages/recency.cjs.map +1 -0
- package/dist/cjs/run.cjs +30 -0
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/summarization/node.cjs +100 -6
- package/dist/cjs/summarization/node.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +635 -23
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/local/CompileCheckTool.cjs +227 -0
- package/dist/cjs/tools/local/CompileCheckTool.cjs.map +1 -0
- package/dist/cjs/tools/local/FileCheckpointer.cjs +90 -0
- package/dist/cjs/tools/local/FileCheckpointer.cjs.map +1 -0
- package/dist/cjs/tools/local/LocalCodingTools.cjs +1098 -0
- package/dist/cjs/tools/local/LocalCodingTools.cjs.map +1 -0
- package/dist/cjs/tools/local/LocalExecutionEngine.cjs +1042 -0
- package/dist/cjs/tools/local/LocalExecutionEngine.cjs.map +1 -0
- package/dist/cjs/tools/local/LocalExecutionTools.cjs +122 -0
- package/dist/cjs/tools/local/LocalExecutionTools.cjs.map +1 -0
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +453 -0
- package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -0
- package/dist/cjs/tools/local/attachments.cjs +183 -0
- package/dist/cjs/tools/local/attachments.cjs.map +1 -0
- package/dist/cjs/tools/local/bashAst.cjs +129 -0
- package/dist/cjs/tools/local/bashAst.cjs.map +1 -0
- package/dist/cjs/tools/local/editStrategies.cjs +188 -0
- package/dist/cjs/tools/local/editStrategies.cjs.map +1 -0
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs +141 -0
- package/dist/cjs/tools/local/resolveLocalExecutionTools.cjs.map +1 -0
- package/dist/cjs/tools/local/syntaxCheck.cjs +182 -0
- package/dist/cjs/tools/local/syntaxCheck.cjs.map +1 -0
- package/dist/cjs/tools/local/textEncoding.cjs +30 -0
- package/dist/cjs/tools/local/textEncoding.cjs.map +1 -0
- package/dist/cjs/tools/local/workspaceFS.cjs +51 -0
- package/dist/cjs/tools/local/workspaceFS.cjs.map +1 -0
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs +31 -0
- package/dist/cjs/tools/subagent/SubagentExecutor.cjs.map +1 -1
- package/dist/esm/common/enum.mjs +53 -1
- package/dist/esm/common/enum.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +156 -5
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/hooks/createWorkspacePolicyHook.mjs +289 -0
- package/dist/esm/hooks/createWorkspacePolicyHook.mjs.map +1 -0
- package/dist/esm/main.mjs +17 -2
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/messages/anthropicToolCache.mjs +99 -0
- package/dist/esm/messages/anthropicToolCache.mjs.map +1 -0
- package/dist/esm/messages/prune.mjs +26 -1
- package/dist/esm/messages/prune.mjs.map +1 -1
- package/dist/esm/messages/recency.mjs +97 -0
- package/dist/esm/messages/recency.mjs.map +1 -0
- package/dist/esm/run.mjs +30 -0
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/summarization/node.mjs +100 -6
- package/dist/esm/summarization/node.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +635 -23
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/local/CompileCheckTool.mjs +223 -0
- package/dist/esm/tools/local/CompileCheckTool.mjs.map +1 -0
- package/dist/esm/tools/local/FileCheckpointer.mjs +87 -0
- package/dist/esm/tools/local/FileCheckpointer.mjs.map +1 -0
- package/dist/esm/tools/local/LocalCodingTools.mjs +1075 -0
- package/dist/esm/tools/local/LocalCodingTools.mjs.map +1 -0
- package/dist/esm/tools/local/LocalExecutionEngine.mjs +1022 -0
- package/dist/esm/tools/local/LocalExecutionEngine.mjs.map +1 -0
- package/dist/esm/tools/local/LocalExecutionTools.mjs +117 -0
- package/dist/esm/tools/local/LocalExecutionTools.mjs.map +1 -0
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +448 -0
- package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -0
- package/dist/esm/tools/local/attachments.mjs +180 -0
- package/dist/esm/tools/local/attachments.mjs.map +1 -0
- package/dist/esm/tools/local/bashAst.mjs +126 -0
- package/dist/esm/tools/local/bashAst.mjs.map +1 -0
- package/dist/esm/tools/local/editStrategies.mjs +185 -0
- package/dist/esm/tools/local/editStrategies.mjs.map +1 -0
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs +137 -0
- package/dist/esm/tools/local/resolveLocalExecutionTools.mjs.map +1 -0
- package/dist/esm/tools/local/syntaxCheck.mjs +179 -0
- package/dist/esm/tools/local/syntaxCheck.mjs.map +1 -0
- package/dist/esm/tools/local/textEncoding.mjs +27 -0
- package/dist/esm/tools/local/textEncoding.mjs.map +1 -0
- package/dist/esm/tools/local/workspaceFS.mjs +49 -0
- package/dist/esm/tools/local/workspaceFS.mjs.map +1 -0
- package/dist/esm/tools/subagent/SubagentExecutor.mjs +31 -0
- package/dist/esm/tools/subagent/SubagentExecutor.mjs.map +1 -1
- package/dist/types/common/enum.d.ts +39 -1
- package/dist/types/graphs/Graph.d.ts +34 -0
- package/dist/types/hooks/createWorkspacePolicyHook.d.ts +95 -0
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/messages/anthropicToolCache.d.ts +51 -0
- package/dist/types/messages/index.d.ts +2 -0
- package/dist/types/messages/prune.d.ts +11 -0
- package/dist/types/messages/recency.d.ts +64 -0
- package/dist/types/run.d.ts +21 -0
- package/dist/types/tools/ToolNode.d.ts +145 -2
- package/dist/types/tools/local/CompileCheckTool.d.ts +31 -0
- package/dist/types/tools/local/FileCheckpointer.d.ts +39 -0
- package/dist/types/tools/local/LocalCodingTools.d.ts +57 -0
- package/dist/types/tools/local/LocalExecutionEngine.d.ts +149 -0
- package/dist/types/tools/local/LocalExecutionTools.d.ts +9 -0
- package/dist/types/tools/local/LocalProgrammaticToolCalling.d.ts +21 -0
- package/dist/types/tools/local/attachments.d.ts +84 -0
- package/dist/types/tools/local/bashAst.d.ts +11 -0
- package/dist/types/tools/local/editStrategies.d.ts +28 -0
- package/dist/types/tools/local/index.d.ts +12 -0
- package/dist/types/tools/local/resolveLocalExecutionTools.d.ts +38 -0
- package/dist/types/tools/local/syntaxCheck.d.ts +42 -0
- package/dist/types/tools/local/textEncoding.d.ts +21 -0
- package/dist/types/tools/local/workspaceFS.d.ts +49 -0
- package/dist/types/tools/subagent/SubagentExecutor.d.ts +29 -0
- package/dist/types/types/hitl.d.ts +56 -27
- package/dist/types/types/run.d.ts +8 -1
- package/dist/types/types/summarize.d.ts +30 -0
- package/dist/types/types/tools.d.ts +341 -6
- package/package.json +21 -2
- package/src/common/enum.ts +54 -0
- package/src/graphs/Graph.ts +173 -6
- package/src/hooks/__tests__/compactHooks.test.ts +38 -2
- package/src/hooks/__tests__/createWorkspacePolicyHook.test.ts +393 -0
- package/src/hooks/createWorkspacePolicyHook.ts +355 -0
- package/src/hooks/index.ts +6 -0
- package/src/index.ts +1 -0
- package/src/messages/__tests__/anthropicToolCache.test.ts +125 -0
- package/src/messages/__tests__/recency.test.ts +267 -0
- package/src/messages/anthropicToolCache.ts +116 -0
- package/src/messages/index.ts +2 -0
- package/src/messages/prune.ts +27 -1
- package/src/messages/recency.ts +155 -0
- package/src/run.ts +31 -0
- package/src/scripts/compare_pi_vs_ours.ts +840 -0
- package/src/scripts/local_engine.ts +166 -0
- package/src/scripts/local_engine_checkpointer.ts +205 -0
- package/src/scripts/local_engine_compile.ts +263 -0
- package/src/scripts/local_engine_hooks.ts +226 -0
- package/src/scripts/local_engine_image.ts +201 -0
- package/src/scripts/local_engine_ptc.ts +151 -0
- package/src/scripts/local_engine_workspace.ts +258 -0
- package/src/scripts/subagent-configurable-inheritance.ts +252 -0
- package/src/scripts/summarization-recency.ts +462 -0
- package/src/specs/prune.test.ts +39 -0
- package/src/summarization/__tests__/node.test.ts +499 -3
- package/src/summarization/node.ts +124 -7
- package/src/tools/ToolNode.ts +769 -20
- package/src/tools/__tests__/LocalExecutionTools.test.ts +2647 -0
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +175 -0
- package/src/tools/__tests__/SubagentExecutor.test.ts +148 -0
- package/src/tools/__tests__/ToolNode.outputReferences.test.ts +114 -0
- package/src/tools/__tests__/ToolNode.session.test.ts +84 -0
- package/src/tools/__tests__/directToolHITLResumeScope.test.ts +467 -0
- package/src/tools/__tests__/directToolHooks.test.ts +411 -0
- package/src/tools/__tests__/localToolNames.test.ts +73 -0
- package/src/tools/__tests__/workspaceSeam.test.ts +134 -0
- package/src/tools/local/CompileCheckTool.ts +278 -0
- package/src/tools/local/FileCheckpointer.ts +93 -0
- package/src/tools/local/LocalCodingTools.ts +1342 -0
- package/src/tools/local/LocalExecutionEngine.ts +1329 -0
- package/src/tools/local/LocalExecutionTools.ts +167 -0
- package/src/tools/local/LocalProgrammaticToolCalling.ts +594 -0
- package/src/tools/local/__tests__/FileCheckpointer.test.ts +120 -0
- package/src/tools/local/__tests__/editStrategies.test.ts +134 -0
- package/src/tools/local/attachments.ts +251 -0
- package/src/tools/local/bashAst.ts +151 -0
- package/src/tools/local/editStrategies.ts +188 -0
- package/src/tools/local/index.ts +12 -0
- package/src/tools/local/resolveLocalExecutionTools.ts +208 -0
- package/src/tools/local/syntaxCheck.ts +243 -0
- package/src/tools/local/textEncoding.ts +37 -0
- package/src/tools/local/workspaceFS.ts +89 -0
- package/src/tools/subagent/SubagentExecutor.ts +60 -0
- package/src/types/hitl.ts +56 -27
- package/src/types/run.ts +12 -1
- package/src/types/summarize.ts +31 -0
- package/src/types/tools.ts +359 -7
package/dist/cjs/common/enum.cjs
CHANGED
|
@@ -175,6 +175,22 @@ exports.Constants = void 0;
|
|
|
175
175
|
Constants["BASH_TOOL"] = "bash_tool";
|
|
176
176
|
Constants["BASH_PROGRAMMATIC_TOOL_CALLING"] = "run_tools_with_bash";
|
|
177
177
|
Constants["SUBAGENT"] = "subagent";
|
|
178
|
+
/**
|
|
179
|
+
* Local-engine coding tool names. Promoted to `Constants.*` (rather
|
|
180
|
+
* than left as per-file `*ToolName` consts) so consumer UIs — most
|
|
181
|
+
* importantly LibreChat's `getToolIconType` map — can match against
|
|
182
|
+
* canonical strings instead of guessing. Existing matched names:
|
|
183
|
+
* `bash_tool`, `read_file`, `execute_code`, `run_tools_with_code`.
|
|
184
|
+
* The rest below are new and currently fall through to the generic
|
|
185
|
+
* tool icon; once LibreChat adds icons keyed on the same names, the
|
|
186
|
+
* wiring will work without an SDK change.
|
|
187
|
+
*/
|
|
188
|
+
Constants["WRITE_FILE"] = "write_file";
|
|
189
|
+
Constants["EDIT_FILE"] = "edit_file";
|
|
190
|
+
Constants["GREP_SEARCH"] = "grep_search";
|
|
191
|
+
Constants["GLOB_SEARCH"] = "glob_search";
|
|
192
|
+
Constants["LIST_DIRECTORY"] = "list_directory";
|
|
193
|
+
Constants["COMPILE_CHECK"] = "compile_check";
|
|
178
194
|
})(exports.Constants || (exports.Constants = {}));
|
|
179
195
|
/** Tool names that use the code execution environment (shared session, file tracking). */
|
|
180
196
|
const CODE_EXECUTION_TOOLS = new Set([
|
|
@@ -183,6 +199,42 @@ const CODE_EXECUTION_TOOLS = new Set([
|
|
|
183
199
|
exports.Constants.PROGRAMMATIC_TOOL_CALLING,
|
|
184
200
|
exports.Constants.BASH_PROGRAMMATIC_TOOL_CALLING,
|
|
185
201
|
]);
|
|
202
|
+
/**
|
|
203
|
+
* Canonical names of the local-engine-specific coding tools — the
|
|
204
|
+
* file/edit/search/typecheck surface that doesn't exist in the
|
|
205
|
+
* remote (sandbox-API) engine. Single source of truth; the per-tool
|
|
206
|
+
* factories, registry definitions, and `createWorkspacePolicyHook`
|
|
207
|
+
* default extractors all key off these.
|
|
208
|
+
*
|
|
209
|
+
* `read_file` is on this list (the existing ReadFile tool is
|
|
210
|
+
* remote-specific; the local engine's `read_file` is a parallel
|
|
211
|
+
* implementation that shares the canonical name so consumer UIs
|
|
212
|
+
* — most importantly LibreChat's `getToolIconType` — render both
|
|
213
|
+
* with the same icon).
|
|
214
|
+
*/
|
|
215
|
+
const LOCAL_CODING_TOOL_NAMES = [
|
|
216
|
+
exports.Constants.READ_FILE,
|
|
217
|
+
exports.Constants.WRITE_FILE,
|
|
218
|
+
exports.Constants.EDIT_FILE,
|
|
219
|
+
exports.Constants.GREP_SEARCH,
|
|
220
|
+
exports.Constants.GLOB_SEARCH,
|
|
221
|
+
exports.Constants.LIST_DIRECTORY,
|
|
222
|
+
exports.Constants.COMPILE_CHECK,
|
|
223
|
+
];
|
|
224
|
+
/**
|
|
225
|
+
* Every tool name the local coding bundle (`createLocalCodingTools`)
|
|
226
|
+
* exposes — the local-specific tools above plus the bash/code/PTC
|
|
227
|
+
* pair that the local engine wraps around the existing factories.
|
|
228
|
+
* Tests pin against this so any addition/removal in the bundle is
|
|
229
|
+
* accompanied by a deliberate canonical-name update here.
|
|
230
|
+
*/
|
|
231
|
+
const LOCAL_CODING_BUNDLE_NAMES = [
|
|
232
|
+
...LOCAL_CODING_TOOL_NAMES,
|
|
233
|
+
exports.Constants.BASH_TOOL,
|
|
234
|
+
exports.Constants.EXECUTE_CODE,
|
|
235
|
+
exports.Constants.PROGRAMMATIC_TOOL_CALLING,
|
|
236
|
+
exports.Constants.BASH_PROGRAMMATIC_TOOL_CALLING,
|
|
237
|
+
];
|
|
186
238
|
exports.TitleMethod = void 0;
|
|
187
239
|
(function (TitleMethod) {
|
|
188
240
|
TitleMethod["STRUCTURED"] = "structured";
|
|
@@ -195,4 +247,6 @@ exports.EnvVar = void 0;
|
|
|
195
247
|
})(exports.EnvVar || (exports.EnvVar = {}));
|
|
196
248
|
|
|
197
249
|
exports.CODE_EXECUTION_TOOLS = CODE_EXECUTION_TOOLS;
|
|
250
|
+
exports.LOCAL_CODING_BUNDLE_NAMES = LOCAL_CODING_BUNDLE_NAMES;
|
|
251
|
+
exports.LOCAL_CODING_TOOL_NAMES = LOCAL_CODING_TOOL_NAMES;
|
|
198
252
|
//# sourceMappingURL=enum.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.cjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n /** [Custom] Request to execute tools - dispatched by ToolNode, handled by host */\n ON_TOOL_EXECUTE = 'on_tool_execute',\n /** [Custom] Emitted when the summarize node begins generating a summary */\n ON_SUMMARIZE_START = 'on_summarize_start',\n /** [Custom] Delta event carrying the completed summary content */\n ON_SUMMARIZE_DELTA = 'on_summarize_delta',\n /** [Custom] Emitted when the summarize node completes with the final summary */\n ON_SUMMARIZE_COMPLETE = 'on_summarize_complete',\n /** [Custom] Progress update from a running subagent (wraps child-graph events so hosts can display activity separately from parent). */\n ON_SUBAGENT_UPDATE = 'on_subagent_update',\n /** [Custom] Diagnostic logging event for context management observability */\n ON_AGENT_LOG = 'on_agent_log',\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 GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n SUMMARIZE = 'summarize=',\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 /** Framework-level conversation summary block */\n SUMMARY = 'summary',\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.librechat.ai/v1',\n EXECUTE_CODE = 'execute_code',\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 LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n /** Anthropic server tool ID prefix (web_search, code_execution, etc.) */\n ANTHROPIC_SERVER_TOOL_PREFIX = 'srvtoolu_',\n SKILL_TOOL = 'skill',\n READ_FILE = 'read_file',\n BASH_TOOL = 'bash_tool',\n BASH_PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_bash',\n SUBAGENT = 'subagent',\n}\n\n/** Tool names that use the code execution environment (shared session, file tracking). */\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\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_BASEURL = 'LIBRECHAT_CODE_BASEURL',\n}\n"],"names":["GraphEvents","Providers","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enum.cjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n /** [Custom] Request to execute tools - dispatched by ToolNode, handled by host */\n ON_TOOL_EXECUTE = 'on_tool_execute',\n /** [Custom] Emitted when the summarize node begins generating a summary */\n ON_SUMMARIZE_START = 'on_summarize_start',\n /** [Custom] Delta event carrying the completed summary content */\n ON_SUMMARIZE_DELTA = 'on_summarize_delta',\n /** [Custom] Emitted when the summarize node completes with the final summary */\n ON_SUMMARIZE_COMPLETE = 'on_summarize_complete',\n /** [Custom] Progress update from a running subagent (wraps child-graph events so hosts can display activity separately from parent). */\n ON_SUBAGENT_UPDATE = 'on_subagent_update',\n /** [Custom] Diagnostic logging event for context management observability */\n ON_AGENT_LOG = 'on_agent_log',\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 GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n SUMMARIZE = 'summarize=',\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 /** Framework-level conversation summary block */\n SUMMARY = 'summary',\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.librechat.ai/v1',\n EXECUTE_CODE = 'execute_code',\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 LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n /** Anthropic server tool ID prefix (web_search, code_execution, etc.) */\n ANTHROPIC_SERVER_TOOL_PREFIX = 'srvtoolu_',\n SKILL_TOOL = 'skill',\n READ_FILE = 'read_file',\n BASH_TOOL = 'bash_tool',\n BASH_PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_bash',\n SUBAGENT = 'subagent',\n /**\n * Local-engine coding tool names. Promoted to `Constants.*` (rather\n * than left as per-file `*ToolName` consts) so consumer UIs — most\n * importantly LibreChat's `getToolIconType` map — can match against\n * canonical strings instead of guessing. Existing matched names:\n * `bash_tool`, `read_file`, `execute_code`, `run_tools_with_code`.\n * The rest below are new and currently fall through to the generic\n * tool icon; once LibreChat adds icons keyed on the same names, the\n * wiring will work without an SDK change.\n */\n WRITE_FILE = 'write_file',\n EDIT_FILE = 'edit_file',\n GREP_SEARCH = 'grep_search',\n GLOB_SEARCH = 'glob_search',\n LIST_DIRECTORY = 'list_directory',\n COMPILE_CHECK = 'compile_check',\n}\n\n/** Tool names that use the code execution environment (shared session, file tracking). */\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\n/**\n * Canonical names of the local-engine-specific coding tools — the\n * file/edit/search/typecheck surface that doesn't exist in the\n * remote (sandbox-API) engine. Single source of truth; the per-tool\n * factories, registry definitions, and `createWorkspacePolicyHook`\n * default extractors all key off these.\n *\n * `read_file` is on this list (the existing ReadFile tool is\n * remote-specific; the local engine's `read_file` is a parallel\n * implementation that shares the canonical name so consumer UIs\n * — most importantly LibreChat's `getToolIconType` — render both\n * with the same icon).\n */\nexport const LOCAL_CODING_TOOL_NAMES: readonly string[] = [\n Constants.READ_FILE,\n Constants.WRITE_FILE,\n Constants.EDIT_FILE,\n Constants.GREP_SEARCH,\n Constants.GLOB_SEARCH,\n Constants.LIST_DIRECTORY,\n Constants.COMPILE_CHECK,\n];\n\n/**\n * Every tool name the local coding bundle (`createLocalCodingTools`)\n * exposes — the local-specific tools above plus the bash/code/PTC\n * pair that the local engine wraps around the existing factories.\n * Tests pin against this so any addition/removal in the bundle is\n * accompanied by a deliberate canonical-name update here.\n */\nexport const LOCAL_CODING_BUNDLE_NAMES: readonly string[] = [\n ...LOCAL_CODING_TOOL_NAMES,\n Constants.BASH_TOOL,\n Constants.EXECUTE_CODE,\n Constants.PROGRAMMATIC_TOOL_CALLING,\n Constants.BASH_PROGRAMMATIC_TOOL_CALLING,\n];\n\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_BASEURL = 'LIBRECHAT_CODE_BASEURL',\n}\n"],"names":["GraphEvents","Providers","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ var ids = require('../messages/ids.cjs');
|
|
|
9
9
|
var prune = require('../messages/prune.cjs');
|
|
10
10
|
var format = require('../messages/format.cjs');
|
|
11
11
|
var cache = require('../messages/cache.cjs');
|
|
12
|
+
var anthropicToolCache = require('../messages/anthropicToolCache.cjs');
|
|
12
13
|
var content = require('../messages/content.cjs');
|
|
13
14
|
var tools = require('../messages/tools.cjs');
|
|
14
15
|
var reducer = require('../messages/reducer.cjs');
|
|
@@ -30,6 +31,16 @@ var node = require('../summarization/node.cjs');
|
|
|
30
31
|
var schema = require('../tools/schema.cjs');
|
|
31
32
|
var AgentContext = require('../agents/AgentContext.cjs');
|
|
32
33
|
var fake = require('../llm/fake.cjs');
|
|
34
|
+
require('../tools/local/CompileCheckTool.cjs');
|
|
35
|
+
require('path');
|
|
36
|
+
require('fs/promises');
|
|
37
|
+
var LocalCodingTools = require('../tools/local/LocalCodingTools.cjs');
|
|
38
|
+
require('../tools/local/LocalExecutionEngine.cjs');
|
|
39
|
+
require('../tools/CodeExecutor.cjs');
|
|
40
|
+
require('../tools/BashExecutor.cjs');
|
|
41
|
+
require('../tools/local/LocalProgrammaticToolCalling.cjs');
|
|
42
|
+
var resolveLocalExecutionTools = require('../tools/local/resolveLocalExecutionTools.cjs');
|
|
43
|
+
require('../tools/local/attachments.cjs');
|
|
33
44
|
var request = require('../llm/request.cjs');
|
|
34
45
|
var init = require('../llm/init.cjs');
|
|
35
46
|
|
|
@@ -70,6 +81,11 @@ class Graph {
|
|
|
70
81
|
* graph compiles.
|
|
71
82
|
*/
|
|
72
83
|
toolOutputReferences;
|
|
84
|
+
/**
|
|
85
|
+
* Run-scoped execution backend for built-in code tools. Defaults to the
|
|
86
|
+
* remote Code API sandbox when unset.
|
|
87
|
+
*/
|
|
88
|
+
toolExecution;
|
|
73
89
|
/**
|
|
74
90
|
* Shared registry instance used by every ToolNode compiled from this
|
|
75
91
|
* graph. Lazily constructed on first access so multi-agent graphs
|
|
@@ -103,6 +119,7 @@ class Graph {
|
|
|
103
119
|
this.hookRegistry = undefined;
|
|
104
120
|
this.humanInTheLoop = undefined;
|
|
105
121
|
this.toolOutputReferences = undefined;
|
|
122
|
+
this.toolExecution = undefined;
|
|
106
123
|
/**
|
|
107
124
|
* ToolNodes compiled from this graph captured the registry
|
|
108
125
|
* instance at construction time, so simply dropping the Graph's
|
|
@@ -113,8 +130,34 @@ class Graph {
|
|
|
113
130
|
*/
|
|
114
131
|
this._toolOutputRegistry?.clear();
|
|
115
132
|
this._toolOutputRegistry = undefined;
|
|
133
|
+
// NB: `_fileCheckpointer` is intentionally NOT cleared here.
|
|
134
|
+
// `Run.processStream()` calls `clearHeavyState()` in its
|
|
135
|
+
// finally block on natural-completion / error paths — exactly
|
|
136
|
+
// when the host is most likely to want `Run.rewindFiles()` (for
|
|
137
|
+
// rollback after a failed batch). Per-Run isolation is already
|
|
138
|
+
// automatic because each `Run.create()` constructs a brand-new
|
|
139
|
+
// Graph instance, so the next Run gets its own checkpointer
|
|
140
|
+
// without us needing to reset this field. Codex P1 #32: pre-fix
|
|
141
|
+
// the checkpointer was nulled before the caller could reach it.
|
|
142
|
+
// Flush each compiled ToolNode's direct-path turn cache so it
|
|
143
|
+
// doesn't leak across Runs (Codex P2 #33). The cache survives
|
|
144
|
+
// `run()` re-entry by design (resume-stable), but end-of-Run
|
|
145
|
+
// is the right point to reset it.
|
|
146
|
+
for (const node of this._compiledToolNodes) {
|
|
147
|
+
node.clearDirectPathTurns();
|
|
148
|
+
}
|
|
149
|
+
this._compiledToolNodes.clear();
|
|
116
150
|
this.sessions.clear();
|
|
117
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Subclass hook to register a freshly compiled ToolNode so
|
|
154
|
+
* `clearHeavyState` can flush its per-Run direct-path turn cache
|
|
155
|
+
* at end-of-Run. Internal — called from `initializeTools` in the
|
|
156
|
+
* concrete graph subclasses.
|
|
157
|
+
*/
|
|
158
|
+
registerCompiledToolNode(node) {
|
|
159
|
+
this._compiledToolNodes.add(node);
|
|
160
|
+
}
|
|
118
161
|
/**
|
|
119
162
|
* Returns the shared `ToolOutputReferenceRegistry` for this run,
|
|
120
163
|
* constructing it on first access. Returns `undefined` when the
|
|
@@ -140,6 +183,47 @@ class Graph {
|
|
|
140
183
|
}
|
|
141
184
|
return this._toolOutputRegistry;
|
|
142
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Single per-Run file checkpointer shared across every ToolNode the
|
|
188
|
+
* graph compiles. Lazily constructed when
|
|
189
|
+
* `toolExecution.local.fileCheckpointing === true` so multi-agent
|
|
190
|
+
* graphs see ONE snapshot store, not one-per-agent. Returns
|
|
191
|
+
* undefined when checkpointing is disabled or the local engine
|
|
192
|
+
* isn't selected. Exposed via `Run.getFileCheckpointer()` /
|
|
193
|
+
* `Run.rewindFiles()`.
|
|
194
|
+
*/
|
|
195
|
+
_fileCheckpointer;
|
|
196
|
+
/**
|
|
197
|
+
* ToolNodes compiled into this Graph's workflow. Tracked so
|
|
198
|
+
* `clearHeavyState()` can flush their per-Run direct-path turn
|
|
199
|
+
* cache (`directPathTurns`) at end-of-Run — that map intentionally
|
|
200
|
+
* survives `run()` re-entry (resume-stable per Codex P2 #30) but
|
|
201
|
+
* would otherwise grow linearly with tool calls and could collide
|
|
202
|
+
* across Runs if a provider reuses call ids (Codex P2 #33).
|
|
203
|
+
*/
|
|
204
|
+
_compiledToolNodes = new Set();
|
|
205
|
+
getOrCreateFileCheckpointer() {
|
|
206
|
+
// Return the cached instance unconditionally if one exists. The
|
|
207
|
+
// toolExecution check below decides whether to *create* a new
|
|
208
|
+
// one — `clearHeavyState` nulls `this.toolExecution` at end-of-
|
|
209
|
+
// Run, but we want post-Run `Run.rewindFiles()` to still resolve
|
|
210
|
+
// to the checkpointer that captured the writes. Codex P1 #32.
|
|
211
|
+
if (this._fileCheckpointer != null) {
|
|
212
|
+
return this._fileCheckpointer;
|
|
213
|
+
}
|
|
214
|
+
if (this.toolExecution?.engine !== 'local' ||
|
|
215
|
+
this.toolExecution.local?.fileCheckpointing !== true) {
|
|
216
|
+
return undefined;
|
|
217
|
+
}
|
|
218
|
+
// Eagerly create via the bundle factory so the construction path
|
|
219
|
+
// matches the bundle-only callers (and future bundle-internal
|
|
220
|
+
// cleanup hooks fire). The bundle factory itself accepts a pre-
|
|
221
|
+
// supplied checkpointer when present, so re-injecting this one
|
|
222
|
+
// into every ToolNode is idempotent.
|
|
223
|
+
const bundle = LocalCodingTools.createLocalCodingToolBundle(this.toolExecution.local ?? {});
|
|
224
|
+
this._fileCheckpointer = bundle.checkpointer;
|
|
225
|
+
return this._fileCheckpointer;
|
|
226
|
+
}
|
|
143
227
|
}
|
|
144
228
|
class StandardGraph extends Graph {
|
|
145
229
|
overrideModel;
|
|
@@ -408,7 +492,7 @@ class StandardGraph extends Graph {
|
|
|
408
492
|
}
|
|
409
493
|
}
|
|
410
494
|
}
|
|
411
|
-
|
|
495
|
+
const node = new ToolNode.ToolNode({
|
|
412
496
|
tools: allTools,
|
|
413
497
|
toolMap: allToolMap,
|
|
414
498
|
eventDrivenMode: true,
|
|
@@ -419,12 +503,16 @@ class StandardGraph extends Graph {
|
|
|
419
503
|
toolRegistry: agentContext?.toolRegistry,
|
|
420
504
|
hookRegistry: this.hookRegistry,
|
|
421
505
|
humanInTheLoop: this.humanInTheLoop,
|
|
506
|
+
toolExecution: this.toolExecution,
|
|
422
507
|
directToolNames: directToolNames.size > 0 ? directToolNames : undefined,
|
|
423
508
|
maxContextTokens: agentContext?.maxContextTokens,
|
|
424
509
|
maxToolResultChars: agentContext?.maxToolResultChars,
|
|
425
510
|
toolOutputRegistry: this.getOrCreateToolOutputRegistry(),
|
|
511
|
+
fileCheckpointer: this.getOrCreateFileCheckpointer(),
|
|
426
512
|
errorHandler: (data, metadata) => StandardGraph.handleToolCallErrorStatic(this, data, metadata),
|
|
427
513
|
});
|
|
514
|
+
this.registerCompiledToolNode(node);
|
|
515
|
+
return node;
|
|
428
516
|
}
|
|
429
517
|
const graphTools = agentContext?.graphTools;
|
|
430
518
|
const baseTools = currentTools ?? [];
|
|
@@ -439,17 +527,23 @@ class StandardGraph extends Graph {
|
|
|
439
527
|
.map((t) => [t.name, t]),
|
|
440
528
|
])
|
|
441
529
|
: currentToolMap;
|
|
442
|
-
|
|
530
|
+
const node = new ToolNode.ToolNode({
|
|
443
531
|
tools: allTraditionalTools,
|
|
444
532
|
toolMap: traditionalToolMap,
|
|
445
533
|
toolCallStepIds: this.toolCallStepIds,
|
|
446
534
|
errorHandler: (data, metadata) => StandardGraph.handleToolCallErrorStatic(this, data, metadata),
|
|
447
535
|
toolRegistry: agentContext?.toolRegistry,
|
|
448
536
|
sessions: this.sessions,
|
|
537
|
+
toolExecution: this.toolExecution,
|
|
538
|
+
hookRegistry: this.hookRegistry,
|
|
539
|
+
humanInTheLoop: this.humanInTheLoop,
|
|
449
540
|
maxContextTokens: agentContext?.maxContextTokens,
|
|
450
541
|
maxToolResultChars: agentContext?.maxToolResultChars,
|
|
451
542
|
toolOutputRegistry: this.getOrCreateToolOutputRegistry(),
|
|
543
|
+
fileCheckpointer: this.getOrCreateFileCheckpointer(),
|
|
452
544
|
});
|
|
545
|
+
this.registerCompiledToolNode(node);
|
|
546
|
+
return node;
|
|
453
547
|
}
|
|
454
548
|
overrideTestModel(responses, sleep, toolCalls) {
|
|
455
549
|
this.overrideModel = fake.createFakeStreamingLLM({
|
|
@@ -494,7 +588,30 @@ class StandardGraph extends Graph {
|
|
|
494
588
|
if (discoveredNames.length > 0) {
|
|
495
589
|
agentContext.markToolsAsDiscovered(discoveredNames);
|
|
496
590
|
}
|
|
497
|
-
const
|
|
591
|
+
const rawToolsForBinding = resolveLocalExecutionTools.resolveLocalToolsForBinding({
|
|
592
|
+
tools: agentContext.getToolsForBinding(),
|
|
593
|
+
toolExecution: this.toolExecution,
|
|
594
|
+
});
|
|
595
|
+
/**
|
|
596
|
+
* Anthropic prompt-cache breakpoint on the tool definitions.
|
|
597
|
+
*
|
|
598
|
+
* Without this, the (often static) tool inventory shows up as
|
|
599
|
+
* fresh input on every turn — measured at ~28k tokens/turn for
|
|
600
|
+
* the local engine's coding-tool bundle, dominating per-turn
|
|
601
|
+
* cost even when message-level caching is on.
|
|
602
|
+
*
|
|
603
|
+
* Strategy: partition tools into [static, deferred] and stamp
|
|
604
|
+
* `cache_control: ephemeral` on the last static tool.
|
|
605
|
+
* Discovered deferred tools that arrive across turns sit *after*
|
|
606
|
+
* the breakpoint and don't invalidate the prefix.
|
|
607
|
+
*/
|
|
608
|
+
let toolsForBinding = rawToolsForBinding;
|
|
609
|
+
if (agentContext.provider === _enum.Providers.ANTHROPIC &&
|
|
610
|
+
agentContext.clientOptions
|
|
611
|
+
?.promptCache === true) {
|
|
612
|
+
toolsForBinding =
|
|
613
|
+
anthropicToolCache.partitionAndMarkAnthropicToolCache(rawToolsForBinding, anthropicToolCache.makeIsDeferred(agentContext.toolDefinitions)) ?? rawToolsForBinding;
|
|
614
|
+
}
|
|
498
615
|
let model = this.overrideModel ??
|
|
499
616
|
init.initializeModel({
|
|
500
617
|
tools: toolsForBinding,
|
|
@@ -578,7 +695,34 @@ class StandardGraph extends Graph {
|
|
|
578
695
|
});
|
|
579
696
|
if (triggerResult) {
|
|
580
697
|
if (originalToolContent != null && originalToolContent.size > 0) {
|
|
581
|
-
|
|
698
|
+
/**
|
|
699
|
+
* Merge — never overwrite — the pruner's masking record
|
|
700
|
+
* into pendingOriginalToolContent. Carry-over entries
|
|
701
|
+
* from a prior summarize (preserved by the recency
|
|
702
|
+
* window for masked tool messages still in the tail) and
|
|
703
|
+
* the current pruner's new entries are both keyed by
|
|
704
|
+
* indices in the current `state.messages`, so a key-wise
|
|
705
|
+
* union is correct. Overwriting would discard the
|
|
706
|
+
* carry-over and reduce summary fidelity when those
|
|
707
|
+
* masked tail messages eventually move into the head.
|
|
708
|
+
*/
|
|
709
|
+
if (agentContext.pendingOriginalToolContent == null) {
|
|
710
|
+
agentContext.pendingOriginalToolContent = originalToolContent;
|
|
711
|
+
}
|
|
712
|
+
else {
|
|
713
|
+
for (const [idx, content] of originalToolContent) {
|
|
714
|
+
agentContext.pendingOriginalToolContent.set(idx, content);
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* Re-apply the per-store char cap after the union. The
|
|
718
|
+
* pruner enforces ORIGINAL_CONTENT_MAX_CHARS inside its
|
|
719
|
+
* own map via the onContentStored callback, but a
|
|
720
|
+
* key-wise merge with recency carry-over bypasses that
|
|
721
|
+
* accounting and could let the merged map grow without
|
|
722
|
+
* bound across long sessions.
|
|
723
|
+
*/
|
|
724
|
+
prune.enforceOriginalContentCap(agentContext.pendingOriginalToolContent);
|
|
725
|
+
}
|
|
582
726
|
}
|
|
583
727
|
events.emitAgentLog(config, 'info', 'graph', 'Summarization triggered', undefined, { runId: this.runId, agentId });
|
|
584
728
|
events.emitAgentLog(config, 'debug', 'graph', 'Summarization trigger details', {
|
|
@@ -934,6 +1078,13 @@ class StandardGraph extends Graph {
|
|
|
934
1078
|
subagentType,
|
|
935
1079
|
threadId,
|
|
936
1080
|
parentToolCallId,
|
|
1081
|
+
/**
|
|
1082
|
+
* Forward the parent's `configurable` so host-set fields
|
|
1083
|
+
* (`requestBody`, `user`, etc.) propagate into the child
|
|
1084
|
+
* workflow. The executor scrubs run-identity fields before
|
|
1085
|
+
* forwarding — see `SubagentExecuteParams.parentConfigurable`.
|
|
1086
|
+
*/
|
|
1087
|
+
parentConfigurable: config.configurable,
|
|
937
1088
|
});
|
|
938
1089
|
return result.content;
|
|
939
1090
|
}, SubagentTool.buildSubagentToolParams(resolvedConfigs));
|