@librechat/agents 3.7.11 → 3.7.12

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 (31) hide show
  1. package/dist/cjs/main.cjs +2 -0
  2. package/dist/cjs/messages/format.cjs +6 -34
  3. package/dist/cjs/messages/format.cjs.map +1 -1
  4. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +22 -6
  5. package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
  6. package/dist/cjs/tools/ProgrammaticCallerPolicy.cjs +10 -0
  7. package/dist/cjs/tools/ProgrammaticCallerPolicy.cjs.map +1 -1
  8. package/dist/cjs/tools/ProgrammaticToolCalling.cjs +43 -6
  9. package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -1
  10. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs +5 -3
  11. package/dist/cjs/tools/local/LocalProgrammaticToolCalling.cjs.map +1 -1
  12. package/dist/esm/main.mjs +2 -2
  13. package/dist/esm/messages/format.mjs +6 -34
  14. package/dist/esm/messages/format.mjs.map +1 -1
  15. package/dist/esm/tools/BashProgrammaticToolCalling.mjs +23 -7
  16. package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
  17. package/dist/esm/tools/ProgrammaticCallerPolicy.mjs +10 -1
  18. package/dist/esm/tools/ProgrammaticCallerPolicy.mjs.map +1 -1
  19. package/dist/esm/tools/ProgrammaticToolCalling.mjs +42 -7
  20. package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -1
  21. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs +5 -3
  22. package/dist/esm/tools/local/LocalProgrammaticToolCalling.mjs.map +1 -1
  23. package/dist/types/messages/format.d.ts +2 -1
  24. package/dist/types/tools/ProgrammaticCallerPolicy.d.ts +12 -0
  25. package/dist/types/tools/ProgrammaticToolCalling.d.ts +35 -0
  26. package/package.json +1 -1
  27. package/src/messages/format.ts +23 -70
  28. package/src/tools/BashProgrammaticToolCalling.ts +57 -19
  29. package/src/tools/ProgrammaticCallerPolicy.ts +31 -0
  30. package/src/tools/ProgrammaticToolCalling.ts +132 -19
  31. package/src/tools/local/LocalProgrammaticToolCalling.ts +19 -8
@@ -4,8 +4,8 @@ import { resolveFetchProxyAgent } from "../utils/proxy.mjs";
4
4
  import { INTENT_PROPERTY } from "./intentArg.mjs";
5
5
  import { appendCodeSessionFileSummary } from "./CodeSessionFileSummary.mjs";
6
6
  import { CODE_ARTIFACT_PATH_GUIDANCE, CodeApiRequestError, addCodeApiExecutionProfileHeader, appendFailedExecutionFileReminder, appendTmpScratchReminder, buildCodeApiEndpoint, buildCodeApiExecutionErrorMessage, buildCodeApiHttpErrorMessage, emptyOutputMessage, getCodeBaseURL, normalizeCodeApiRequestError, resolveCodeApiAuthHeaders, selectRuntimeSessionHint } from "./CodeExecutor.mjs";
7
+ import { assertUnambiguousIdentifiers, projectProgrammaticToolMap, resolveProgrammaticToolDefinitions, selectProgrammaticTools } from "./ProgrammaticCallerPolicy.mjs";
7
8
  import { clampCodeApiRunTimeoutMs, createCodeApiRunTimeoutSchema, resolveCodeApiRunTimeoutMs } from "./ptcTimeout.mjs";
8
- import { projectProgrammaticToolMap, resolveProgrammaticToolDefinitions, selectProgrammaticTools } from "./ProgrammaticCallerPolicy.mjs";
9
9
  import { tool } from "@langchain/core/tools";
10
10
  import { config } from "dotenv";
11
11
  import fetch from "node-fetch";
@@ -49,7 +49,7 @@ Your code is auto-wrapped in async context. Just write logic with await—no boi
49
49
  ${EXAMPLES}
50
50
 
51
51
  ${CORE_RULES}`;
52
- const TOOL_MANIFEST_DESCRIPTION = "Exact registered tool names used by the code. Required when direct-only tools are configured; validated before execution starts.";
52
+ const TOOL_MANIFEST_DESCRIPTION = "Exact registered tool names used by the code. Required when direct-only tools are configured; validated before execution starts. Pass [] when the code calls no tools at all.";
53
53
  function createProgrammaticToolCallingSchema(maxRunTimeoutMs = DEFAULT_RUN_TIMEOUT_MS) {
54
54
  return {
55
55
  type: "object",
@@ -415,6 +415,25 @@ function formatCompletedResponse(response, sourceCode = "") {
415
415
  } : {}
416
416
  }];
417
417
  }
418
+ function wrapPythonForPlainExecution(userCode) {
419
+ return `async def __user_main__():
420
+ """Auto-generated wrapper for user code to support top-level await"""
421
+ ${userCode.split("\n").map((line) => line.trim() === "" ? "" : ` ${line}`).join("\n")}\n
422
+ if __name__ == "__main__":
423
+ import asyncio
424
+ asyncio.run(__user_main__())
425
+ `;
426
+ }
427
+ async function runPlainExecution(args) {
428
+ return formatCompletedResponse(await makeRequest(buildCodeApiEndpoint(args.baseUrl, "exec"), {
429
+ lang: args.lang,
430
+ code: args.lang === "py" ? wrapPythonForPlainExecution(args.code) : args.code,
431
+ ...args.timeout != null ? { timeout: args.timeout } : {},
432
+ ...args.sessionId != null && args.sessionId !== "" ? { session_id: args.sessionId } : {},
433
+ ...args.files != null && args.files.length > 0 ? { files: args.files } : {},
434
+ ...args.runtimeSessionHint != null ? { runtime_session_hint: args.runtimeSessionHint } : {}
435
+ }, args.proxy, args.authHeaders, args.executionProfile), args.code);
436
+ }
418
437
  function createProgrammaticToolCallingTool(initParams = {}) {
419
438
  const baseUrl = initParams.baseUrl ?? getCodeBaseURL();
420
439
  const maxRoundTrips = initParams.maxRoundTrips ?? DEFAULT_MAX_ROUND_TRIPS;
@@ -436,17 +455,33 @@ function createProgrammaticToolCallingTool(initParams = {}) {
436
455
  disallowedToolDefs,
437
456
  programmaticToolName
438
457
  });
439
- if (toolMap == null || toolMap.size === 0) throw new Error("No toolMap provided. ToolNode should inject this from AgentContext when invoked through the graph.");
440
- if (toolDefs == null || toolDefs.length === 0) throw new Error("No tool definitions provided. Either pass tools in the input or ensure ToolNode injects toolDefs.");
441
- const effectiveToolMap = projectProgrammaticToolMap(toolMap, effectiveTools);
458
+ const needsNoTools = effectiveTools.length === 0 && (params.tool_manifest?.length === 0 || toolDefs != null || disallowedToolDefs != null);
459
+ if (!needsNoTools) {
460
+ if (toolMap == null || toolMap.size === 0) throw new Error("No toolMap provided. ToolNode should inject this from AgentContext when invoked through the graph.");
461
+ if (toolDefs == null || toolDefs.length === 0) throw new Error("No tool definitions provided. Either pass tools in the input or ensure ToolNode injects toolDefs.");
462
+ }
463
+ assertUnambiguousIdentifiers(effectiveTools, normalizeToPythonIdentifier, programmaticToolName);
464
+ const effectiveToolMap = projectProgrammaticToolMap(toolMap ?? /* @__PURE__ */ new Map(), effectiveTools);
442
465
  let roundTrip = 0;
443
466
  try {
444
- if (debug) console.log(`[PTC Debug] Sending ${effectiveTools.length} tools to API (selected from ${toolDefs.length})`);
467
+ if (debug) console.log(`[PTC Debug] Sending ${effectiveTools.length} tools to API (selected from ${toolDefs?.length ?? 0})`);
445
468
  let files;
446
469
  if (_injected_files && _injected_files.length > 0) files = _injected_files;
447
470
  else if (session_id != null && session_id.length > 0) console.debug(`[ProgrammaticToolCalling] No injected files for session_id=${session_id} — exec will run without input files`);
448
471
  const selectedRuntimeSessionHint = selectRuntimeSessionHint(initParams.runtimeSessionHint, _runtime_session_hint);
449
472
  const runtimeSessionHint = initParams.executionProfile !== "default" && typeof selectedRuntimeSessionHint === "string" && selectedRuntimeSessionHint !== "" ? selectedRuntimeSessionHint : void 0;
473
+ if (needsNoTools) return await runPlainExecution({
474
+ baseUrl,
475
+ lang: "py",
476
+ code,
477
+ timeout,
478
+ sessionId: session_id,
479
+ files,
480
+ runtimeSessionHint,
481
+ proxy,
482
+ authHeaders: initParams.authHeaders,
483
+ executionProfile: initParams.executionProfile
484
+ });
450
485
  let response = await makeRequest(EXEC_ENDPOINT, {
451
486
  code,
452
487
  tools: effectiveTools,
@@ -480,6 +515,6 @@ function createProgrammaticToolCallingTool(initParams = {}) {
480
515
  });
481
516
  }
482
517
  //#endregion
483
- export { ProgrammaticToolCallingDefinition, ProgrammaticToolCallingDescription, ProgrammaticToolCallingName, ProgrammaticToolCallingSchema, createProgrammaticToolCallingSchema, createProgrammaticToolCallingTool, executeTools, extractUsedToolNames, fetchSessionFiles, filterToolsByUsage, formatCompletedResponse, makeRequest, normalizeToPythonIdentifier, unwrapToolResponse };
518
+ export { ProgrammaticToolCallingDefinition, ProgrammaticToolCallingDescription, ProgrammaticToolCallingName, ProgrammaticToolCallingSchema, createProgrammaticToolCallingSchema, createProgrammaticToolCallingTool, executeTools, extractUsedToolNames, fetchSessionFiles, filterToolsByUsage, formatCompletedResponse, makeRequest, normalizeToPythonIdentifier, runPlainExecution, unwrapToolResponse, wrapPythonForPlainExecution };
484
519
 
485
520
  //# sourceMappingURL=ProgrammaticToolCalling.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgrammaticToolCalling.mjs","names":["obj"],"sources":["../../../src/tools/ProgrammaticToolCalling.ts"],"mappings":"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"}
1
+ {"version":3,"file":"ProgrammaticToolCalling.mjs","names":["obj"],"sources":["../../../src/tools/ProgrammaticToolCalling.ts"],"mappings":"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"}
@@ -354,9 +354,11 @@ async function runLocalProgrammaticTool(args) {
354
354
  disallowedToolDefs,
355
355
  programmaticToolName: runnerName
356
356
  });
357
- if (toolMap == null || toolMap.size === 0) throw new Error("No toolMap provided for local programmatic execution.");
358
- if (toolDefs == null || toolDefs.length === 0) throw new Error("No tool definitions provided for local programmatic execution.");
359
- const { effectiveTools, effectiveMap } = createEffectiveToolMap(toolMap, selectedTools);
357
+ if (!(selectedTools.length === 0 && (args.params.tool_manifest?.length === 0 || toolDefs != null || disallowedToolDefs != null))) {
358
+ if (toolMap == null || toolMap.size === 0) throw new Error("No toolMap provided for local programmatic execution.");
359
+ if (toolDefs == null || toolDefs.length === 0) throw new Error("No tool definitions provided for local programmatic execution.");
360
+ }
361
+ const { effectiveTools, effectiveMap } = createEffectiveToolMap(toolMap ?? /* @__PURE__ */ new Map(), selectedTools);
360
362
  const bridge = await createToolBridge(effectiveMap, hookContext);
361
363
  try {
362
364
  const timeoutMs = args.params.timeout ?? args.localConfig.timeoutMs ?? DEFAULT_TIMEOUT;
@@ -1 +1 @@
1
- {"version":3,"file":"LocalProgrammaticToolCalling.mjs","names":[],"sources":["../../../../src/tools/local/LocalProgrammaticToolCalling.ts"],"mappings":"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"}
1
+ {"version":3,"file":"LocalProgrammaticToolCalling.mjs","names":[],"sources":["../../../../src/tools/local/LocalProgrammaticToolCalling.ts"],"mappings":"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"}
@@ -142,7 +142,8 @@ type SummaryTokenAdjustment = {
142
142
  *
143
143
  * @param payload - The array of messages to format.
144
144
  * @param indexTokenCountMap - Optional map of message indices to token counts.
145
- * @param tools - Optional set of tool names that are allowed in the request.
145
+ * @param tools - Optional set of host-managed tool names allowed in the request. SDK-managed tool
146
+ * names are preserved independently.
146
147
  * @param skills - Optional map of skill name to body for reconstructing skill HumanMessages.
147
148
  * @param options - Optional formatting options (provider, skipSkillBodyNames).
148
149
  * @returns - Object containing formatted messages and updated indexTokenCountMap if provided.
@@ -12,6 +12,18 @@ export declare function resolveProgrammaticToolDefinitions(context: Partial<t.Pr
12
12
  }): t.LCTool[] | undefined;
13
13
  export declare function projectProgrammaticToolMap(toolMap: t.ToolMap, selectedToolDefs: readonly t.LCTool[]): t.ToolMap;
14
14
  export declare function assertDisallowedToolUsage(disallowedNames: ReadonlySet<string>, programmaticToolName: string): void;
15
+ /**
16
+ * Rejects a stub set holding two tools that collapse to one runtime identifier.
17
+ *
18
+ * Stub generation binds by identifier, so such tools are indistinguishable once
19
+ * emitted — the generated program defines both and the later one wins. Failing
20
+ * beats dispatching by declaration order.
21
+ *
22
+ * Called on the set each backend actually emits, not on the selection: a
23
+ * definition dropped before codegen never binds an identifier, so a collision
24
+ * among such definitions is not a conflict.
25
+ */
26
+ export declare function assertUnambiguousIdentifiers(selectedToolDefs: readonly t.LCTool[], normalizeIdentifier: (name: string) => string, programmaticToolName: string): void;
15
27
  export declare function selectProgrammaticTools(args: {
16
28
  requestedToolNames?: string[];
17
29
  allowedToolDefs?: t.LCTool[];
@@ -95,6 +95,41 @@ export declare function executeTools(toolCalls: t.PTCToolCall[], toolMap: t.Tool
95
95
  * @returns Tuple of [formatted string, artifact]
96
96
  */
97
97
  export declare function formatCompletedResponse(response: t.ProgrammaticExecutionResponse, sourceCode?: string): [string, t.ProgrammaticExecutionArtifact];
98
+ /**
99
+ * Mirrors the Code API's programmatic Python wrapper (`wrapUserCodeInAsync`).
100
+ *
101
+ * The programmatic contract promises top-level `await` works; plain `/exec`
102
+ * applies no wrapper, so forwarding source unchanged would turn valid
103
+ * programmatic input into a SyntaxError. The wrapper is self-contained, so a
104
+ * later divergence in the Code API's own copy cannot break this path.
105
+ */
106
+ export declare function wrapPythonForPlainExecution(userCode: string): string;
107
+ /**
108
+ * Runs code that selected no tools through plain `/exec`.
109
+ *
110
+ * `/exec/programmatic` rejects an empty tool manifest outright, and the sandbox
111
+ * has nothing to inject for such a call anyway — no stubs, no replay round
112
+ * trips. Routing it here makes a tool-free programmatic call behave exactly like
113
+ * the equivalent `execute_code`, against every deployed Code API, instead of
114
+ * failing with a rejection the model cannot act on.
115
+ */
116
+ export declare function runPlainExecution(args: {
117
+ baseUrl: string;
118
+ lang: 'bash' | 'py';
119
+ code: string;
120
+ /**
121
+ * Forwarded so the model-supplied cap applies as soon as the Code API honors
122
+ * it on `/exec`, which does not read `timeout` today. Session affinity and
123
+ * input files are honored there, so those ride the same body.
124
+ */
125
+ timeout?: number;
126
+ sessionId?: string;
127
+ files?: t.CodeEnvFile[];
128
+ runtimeSessionHint?: string;
129
+ proxy?: string;
130
+ authHeaders?: t.CodeApiAuthHeaders;
131
+ executionProfile?: t.CodeApiExecutionProfile;
132
+ }): Promise<[string, t.ProgrammaticExecutionArtifact]>;
98
133
  /**
99
134
  * Creates a Programmatic Tool Calling tool for complex multi-tool workflows.
100
135
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@librechat/agents",
3
- "version": "3.7.11",
3
+ "version": "3.7.12",
4
4
  "reova": {
5
5
  "enabled": true,
6
6
  "endpoint": "https://telemetry.reo.dev/data"
@@ -2771,12 +2771,22 @@ function extractSkillName(args: unknown): string | undefined {
2771
2771
  return typeof name === 'string' && name !== '' ? name : undefined;
2772
2772
  }
2773
2773
 
2774
+ function isSdkManagedToolName(name: unknown): name is string {
2775
+ return (
2776
+ typeof name === 'string' &&
2777
+ (name === Constants.SUBAGENT ||
2778
+ name === 'conditional_transfer' ||
2779
+ name.startsWith(Constants.LC_TRANSFER_TO_))
2780
+ );
2781
+ }
2782
+
2774
2783
  /**
2775
2784
  * Formats an array of messages for LangChain, handling tool calls and creating ToolMessage instances.
2776
2785
  *
2777
2786
  * @param payload - The array of messages to format.
2778
2787
  * @param indexTokenCountMap - Optional map of message indices to token counts.
2779
- * @param tools - Optional set of tool names that are allowed in the request.
2788
+ * @param tools - Optional set of host-managed tool names allowed in the request. SDK-managed tool
2789
+ * names are preserved independently.
2780
2790
  * @param skills - Optional map of skill name to body for reconstructing skill HumanMessages.
2781
2791
  * @param options - Optional formatting options (provider, skipSkillBodyNames).
2782
2792
  * @returns - Object containing formatted messages and updated indexTokenCountMap if provided.
@@ -2957,8 +2967,8 @@ export const formatAgentMessages = (
2957
2967
 
2958
2968
  /**
2959
2969
  * If tools set is provided, process tool_calls:
2960
- * - Keep valid tool_calls (tools in the set or dynamically discovered)
2961
- * - Convert invalid tool_calls to string representation for context preservation
2970
+ * - Keep valid tool_calls (tools in the set, SDK-managed, or dynamically discovered)
2971
+ * - Omit invalid tool_calls without exposing their output as assistant-authored text
2962
2972
  * - Dynamically expand the set when tool_search results are encountered
2963
2973
  */
2964
2974
  let processedMessage = message;
@@ -2977,8 +2987,6 @@ export const formatAgentMessages = (
2977
2987
  const filteredContent: typeof content = [];
2978
2988
  const filteredSourceContentPartIndices: SourceContentPartIndices[] = [];
2979
2989
  const invalidToolCallIds = new Set<string>();
2980
- const invalidToolStrings: string[] = [];
2981
- const invalidToolSourceContentPartIndices: number[] = [];
2982
2990
 
2983
2991
  for (let partIndex = 0; partIndex < content.length; partIndex++) {
2984
2992
  const part = content[partIndex] as
@@ -3029,7 +3037,10 @@ export const formatAgentMessages = (
3029
3037
  }
3030
3038
  }
3031
3039
 
3032
- if (discoveredTools.has(toolName)) {
3040
+ if (
3041
+ discoveredTools.has(toolName) ||
3042
+ isSdkManagedToolName(toolName)
3043
+ ) {
3033
3044
  filteredContent.push(part);
3034
3045
  filteredSourceContentPartIndices.push(partSourceContentIndices);
3035
3046
  if (
@@ -3042,20 +3053,11 @@ export const formatAgentMessages = (
3042
3053
  (pendingSkillNames ??= new Set()).add(skillName);
3043
3054
  }
3044
3055
  }
3045
- } else {
3046
- /** Invalid tool - convert to string for context preservation */
3047
- if (
3048
- typeof part.tool_call.id === 'string' &&
3049
- part.tool_call.id !== ''
3050
- ) {
3051
- invalidToolCallIds.add(part.tool_call.id);
3052
- }
3053
- const output = part.tool_call.output ?? '';
3054
- invalidToolStrings.push(`Tool: ${toolName}, ${output}`);
3055
- appendSourceContentPartIndices(
3056
- invalidToolSourceContentPartIndices,
3057
- partSourceContentIndices
3058
- );
3056
+ } else if (
3057
+ typeof part.tool_call.id === 'string' &&
3058
+ part.tool_call.id !== ''
3059
+ ) {
3060
+ invalidToolCallIds.add(part.tool_call.id);
3059
3061
  }
3060
3062
  }
3061
3063
 
@@ -3076,57 +3078,8 @@ export const formatAgentMessages = (
3076
3078
  }
3077
3079
  }
3078
3080
 
3079
- /** Append invalid tool strings to the content for context preservation */
3080
- if (invalidToolStrings.length > 0) {
3081
- /** Find the last text part or create one */
3082
- let lastTextPartIndex = -1;
3083
- for (let j = filteredContent.length - 1; j >= 0; j--) {
3084
- if (filteredContent[j].type === ContentTypes.TEXT) {
3085
- lastTextPartIndex = j;
3086
- break;
3087
- }
3088
- }
3089
-
3090
- const invalidToolText = invalidToolStrings.join('\n');
3091
- if (lastTextPartIndex >= 0) {
3092
- const lastTextPart = filteredContent[lastTextPartIndex] as {
3093
- type: string;
3094
- [ContentTypes.TEXT]?: string;
3095
- text?: string;
3096
- };
3097
- const existingText =
3098
- lastTextPart[ContentTypes.TEXT] ?? lastTextPart.text ?? '';
3099
- filteredContent[lastTextPartIndex] = {
3100
- ...lastTextPart,
3101
- [ContentTypes.TEXT]: existingText
3102
- ? `${existingText}\n${invalidToolText}`
3103
- : invalidToolText,
3104
- };
3105
- const lastTextSourceContentPartIndices =
3106
- filteredSourceContentPartIndices[lastTextPartIndex];
3107
- filteredSourceContentPartIndices[lastTextPartIndex] = [
3108
- ...(typeof lastTextSourceContentPartIndices === 'number'
3109
- ? [lastTextSourceContentPartIndices]
3110
- : lastTextSourceContentPartIndices),
3111
- ...invalidToolSourceContentPartIndices,
3112
- ];
3113
- } else {
3114
- /** No text part exists, create one */
3115
- filteredContent.push({
3116
- type: ContentTypes.TEXT,
3117
- [ContentTypes.TEXT]: invalidToolText,
3118
- });
3119
- filteredSourceContentPartIndices.push(
3120
- invalidToolSourceContentPartIndices
3121
- );
3122
- }
3123
- }
3124
-
3125
3081
  /** Use filtered content if we made any changes */
3126
- if (
3127
- filteredContent.length !== content.length ||
3128
- invalidToolStrings.length > 0
3129
- ) {
3082
+ if (filteredContent.length !== content.length) {
3130
3083
  processedMessage = { ...message, content: filteredContent };
3131
3084
  processedSourceContentPartIndices = filteredSourceContentPartIndices;
3132
3085
  }
@@ -14,11 +14,7 @@ import {
14
14
  selectRuntimeSessionHint,
15
15
  } from './CodeExecutor';
16
16
  import {
17
- makeRequest,
18
- executeTools,
19
- formatCompletedResponse,
20
- } from './ProgrammaticToolCalling';
21
- import {
17
+ assertUnambiguousIdentifiers,
22
18
  projectProgrammaticToolMap,
23
19
  resolveProgrammaticToolDefinitions,
24
20
  selectProgrammaticTools,
@@ -29,6 +25,12 @@ import {
29
25
  createCodeApiRunTimeoutSchema,
30
26
  resolveCodeApiRunTimeoutMs,
31
27
  } from './ptcTimeout';
28
+ import {
29
+ makeRequest,
30
+ executeTools,
31
+ runPlainExecution,
32
+ formatCompletedResponse,
33
+ } from './ProgrammaticToolCalling';
32
34
  import { INTENT_PROPERTY } from '@/tools/intentArg';
33
35
  import { Constants } from '@/common';
34
36
 
@@ -117,7 +119,7 @@ ${CORE_RULES}`;
117
119
 
118
120
  const TOOL_MANIFEST_DESCRIPTION =
119
121
  'Exact registered tool names used by the code. Required when direct-only tools are configured; ' +
120
- 'validated before execution starts.';
122
+ 'validated before execution starts. Pass [] when the code calls no tools at all.';
121
123
 
122
124
  // ============================================================================
123
125
  // Schema
@@ -361,22 +363,41 @@ export function createBashProgrammaticToolCallingTool(
361
363
  programmaticToolName,
362
364
  });
363
365
 
364
- if (toolMap == null || toolMap.size === 0) {
365
- throw new Error(
366
- 'No toolMap provided. ' +
367
- 'ToolNode should inject this from AgentContext when invoked through the graph.'
368
- );
369
- }
366
+ /* These guard the replay path only. A call that selected no tools never
367
+ * replays, and event-driven ToolNode configurations legitimately inject
368
+ * an empty toolMap/toolDefs. Injected context is still required to
369
+ * conclude that with nothing injected at all, an empty selection means
370
+ * the host wired the tool up wrong. */
371
+ const needsNoTools =
372
+ effectiveTools.length === 0 &&
373
+ (params.tool_manifest?.length === 0 ||
374
+ toolDefs != null ||
375
+ disallowedToolDefs != null);
376
+
377
+ if (!needsNoTools) {
378
+ if (toolMap == null || toolMap.size === 0) {
379
+ throw new Error(
380
+ 'No toolMap provided. ' +
381
+ 'ToolNode should inject this from AgentContext when invoked through the graph.'
382
+ );
383
+ }
370
384
 
371
- if (toolDefs == null || toolDefs.length === 0) {
372
- throw new Error(
373
- 'No tool definitions provided. ' +
374
- 'Either pass tools in the input or ensure ToolNode injects toolDefs.'
375
- );
385
+ if (toolDefs == null || toolDefs.length === 0) {
386
+ throw new Error(
387
+ 'No tool definitions provided. ' +
388
+ 'Either pass tools in the input or ensure ToolNode injects toolDefs.'
389
+ );
390
+ }
376
391
  }
377
392
 
393
+ assertUnambiguousIdentifiers(
394
+ effectiveTools,
395
+ normalizeToBashIdentifier,
396
+ programmaticToolName
397
+ );
398
+
378
399
  const effectiveToolMap = projectProgrammaticToolMap(
379
- toolMap,
400
+ toolMap ?? new Map(),
380
401
  effectiveTools
381
402
  );
382
403
 
@@ -391,7 +412,7 @@ export function createBashProgrammaticToolCallingTool(
391
412
  // eslint-disable-next-line no-console
392
413
  console.log(
393
414
  `[BashPTC Debug] Sending ${effectiveTools.length} tools to API ` +
394
- `(selected from ${toolDefs.length})`
415
+ `(selected from ${toolDefs?.length ?? 0})`
395
416
  );
396
417
  }
397
418
 
@@ -423,6 +444,23 @@ export function createBashProgrammaticToolCallingTool(
423
444
  ? selectedRuntimeSessionHint
424
445
  : undefined;
425
446
 
447
+ /* Raw `code`, not `preparedCode`: the `$!` guard exists for the
448
+ * programmatic replay wrapper, which plain `/exec` never applies. */
449
+ if (needsNoTools) {
450
+ return await runPlainExecution({
451
+ baseUrl,
452
+ lang: 'bash',
453
+ code,
454
+ timeout,
455
+ sessionId: session_id,
456
+ files,
457
+ runtimeSessionHint,
458
+ proxy,
459
+ authHeaders: initParams.authHeaders,
460
+ executionProfile: initParams.executionProfile,
461
+ });
462
+ }
463
+
426
464
  let response = await makeRequest(
427
465
  EXEC_ENDPOINT,
428
466
  {
@@ -43,6 +43,37 @@ export function assertDisallowedToolUsage(
43
43
  );
44
44
  }
45
45
 
46
+ /**
47
+ * Rejects a stub set holding two tools that collapse to one runtime identifier.
48
+ *
49
+ * Stub generation binds by identifier, so such tools are indistinguishable once
50
+ * emitted — the generated program defines both and the later one wins. Failing
51
+ * beats dispatching by declaration order.
52
+ *
53
+ * Called on the set each backend actually emits, not on the selection: a
54
+ * definition dropped before codegen never binds an identifier, so a collision
55
+ * among such definitions is not a conflict.
56
+ */
57
+ export function assertUnambiguousIdentifiers(
58
+ selectedToolDefs: readonly t.LCTool[],
59
+ normalizeIdentifier: (name: string) => string,
60
+ programmaticToolName: string
61
+ ): void {
62
+ const seen = new Map<string, string>();
63
+ for (const toolDef of selectedToolDefs) {
64
+ const identifier = normalizeIdentifier(toolDef.name);
65
+ const prior = seen.get(identifier);
66
+ if (prior != null && prior !== toolDef.name) {
67
+ throw new Error(
68
+ `Tools "${prior}" and "${toolDef.name}" both become "${identifier}" in ` +
69
+ `the sandbox, so "${programmaticToolName}" cannot tell which one the ` +
70
+ 'code means. Call them directly, or rename one.'
71
+ );
72
+ }
73
+ seen.set(identifier, toolDef.name);
74
+ }
75
+ }
76
+
46
77
  export function selectProgrammaticTools(args: {
47
78
  requestedToolNames?: string[];
48
79
  allowedToolDefs?: t.LCTool[];