@librechat/agents 3.7.2 → 3.7.3
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/tools/BashProgrammaticToolCalling.cjs +6 -1
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs +6 -1
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
- package/package.json +1 -1
- package/src/tools/BashProgrammaticToolCalling.ts +11 -1
|
@@ -10,6 +10,7 @@ let _langchain_core_tools = require("@langchain/core/tools");
|
|
|
10
10
|
(0, require("dotenv").config)();
|
|
11
11
|
const DEFAULT_MAX_ROUND_TRIPS = 20;
|
|
12
12
|
const DEFAULT_RUN_TIMEOUT_MS = require_ptcTimeout.resolveCodeApiRunTimeoutMs();
|
|
13
|
+
const BASH_LAST_BACKGROUND_PID_GUARD = ": &\nwait \"$!\"";
|
|
13
14
|
const BASH_RESERVED = new Set([
|
|
14
15
|
"if",
|
|
15
16
|
"then",
|
|
@@ -112,6 +113,9 @@ const BashProgrammaticToolCallingDefinition = {
|
|
|
112
113
|
description: BashProgrammaticToolCallingDescription,
|
|
113
114
|
schema: BashProgrammaticToolCallingSchema
|
|
114
115
|
};
|
|
116
|
+
function prepareBashProgrammaticCode(code) {
|
|
117
|
+
return `${BASH_LAST_BACKGROUND_PID_GUARD}\n${code}`;
|
|
118
|
+
}
|
|
115
119
|
function maybeParseJsonResultString(result) {
|
|
116
120
|
if (typeof result !== "string") return result;
|
|
117
121
|
const trimmed = result.trim();
|
|
@@ -173,6 +177,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
173
177
|
return (0, _langchain_core_tools.tool)(async (rawParams, config) => {
|
|
174
178
|
const params = rawParams;
|
|
175
179
|
const { code } = params;
|
|
180
|
+
const preparedCode = prepareBashProgrammaticCode(code);
|
|
176
181
|
const timeout = require_ptcTimeout.clampCodeApiRunTimeoutMs(params.timeout, maxRunTimeoutMs);
|
|
177
182
|
const toolCall = config.toolCall ?? {};
|
|
178
183
|
const { toolMap, disallowedToolDefs, session_id, _injected_files, _runtime_session_hint } = toolCall;
|
|
@@ -197,7 +202,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
197
202
|
const runtimeSessionHint = initParams.executionProfile !== "default" && typeof selectedRuntimeSessionHint === "string" && selectedRuntimeSessionHint !== "" ? selectedRuntimeSessionHint : void 0;
|
|
198
203
|
let response = await require_ProgrammaticToolCalling.makeRequest(EXEC_ENDPOINT, {
|
|
199
204
|
lang: "bash",
|
|
200
|
-
code,
|
|
205
|
+
code: preparedCode,
|
|
201
206
|
tools: effectiveTools,
|
|
202
207
|
session_id,
|
|
203
208
|
timeout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashProgrammaticToolCalling.cjs","names":["resolveCodeApiRunTimeoutMs","CODE_ARTIFACT_PATH_GUIDANCE","BASH_SHELL_GUIDANCE","INTENT_PROPERTY","createCodeApiRunTimeoutSchema","getCodeBaseURL","buildCodeApiEndpoint","clampCodeApiRunTimeoutMs","resolveProgrammaticToolDefinitions","selectProgrammaticTools","projectProgrammaticToolMap","selectRuntimeSessionHint","makeRequest","executeTools","formatCompletedResponse","buildCodeApiExecutionErrorMessage","CodeApiRequestError","appendFailedExecutionFileReminder"],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":";;;;;;;;;8BAkCO;AAMP,MAAM,0BAA0B;AAChC,MAAM,yBAAyBA,mBAAAA,2BAA2B;
|
|
1
|
+
{"version":3,"file":"BashProgrammaticToolCalling.cjs","names":["resolveCodeApiRunTimeoutMs","CODE_ARTIFACT_PATH_GUIDANCE","BASH_SHELL_GUIDANCE","INTENT_PROPERTY","createCodeApiRunTimeoutSchema","getCodeBaseURL","buildCodeApiEndpoint","clampCodeApiRunTimeoutMs","resolveProgrammaticToolDefinitions","selectProgrammaticTools","projectProgrammaticToolMap","selectRuntimeSessionHint","makeRequest","executeTools","formatCompletedResponse","buildCodeApiExecutionErrorMessage","CodeApiRequestError","appendFailedExecutionFileReminder"],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import { config } from "dotenv";
|
|
|
11
11
|
config();
|
|
12
12
|
const DEFAULT_MAX_ROUND_TRIPS = 20;
|
|
13
13
|
const DEFAULT_RUN_TIMEOUT_MS = resolveCodeApiRunTimeoutMs();
|
|
14
|
+
const BASH_LAST_BACKGROUND_PID_GUARD = ": &\nwait \"$!\"";
|
|
14
15
|
const BASH_RESERVED = new Set([
|
|
15
16
|
"if",
|
|
16
17
|
"then",
|
|
@@ -113,6 +114,9 @@ const BashProgrammaticToolCallingDefinition = {
|
|
|
113
114
|
description: BashProgrammaticToolCallingDescription,
|
|
114
115
|
schema: BashProgrammaticToolCallingSchema
|
|
115
116
|
};
|
|
117
|
+
function prepareBashProgrammaticCode(code) {
|
|
118
|
+
return `${BASH_LAST_BACKGROUND_PID_GUARD}\n${code}`;
|
|
119
|
+
}
|
|
116
120
|
function maybeParseJsonResultString(result) {
|
|
117
121
|
if (typeof result !== "string") return result;
|
|
118
122
|
const trimmed = result.trim();
|
|
@@ -174,6 +178,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
174
178
|
return tool(async (rawParams, config) => {
|
|
175
179
|
const params = rawParams;
|
|
176
180
|
const { code } = params;
|
|
181
|
+
const preparedCode = prepareBashProgrammaticCode(code);
|
|
177
182
|
const timeout = clampCodeApiRunTimeoutMs(params.timeout, maxRunTimeoutMs);
|
|
178
183
|
const toolCall = config.toolCall ?? {};
|
|
179
184
|
const { toolMap, disallowedToolDefs, session_id, _injected_files, _runtime_session_hint } = toolCall;
|
|
@@ -198,7 +203,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
198
203
|
const runtimeSessionHint = initParams.executionProfile !== "default" && typeof selectedRuntimeSessionHint === "string" && selectedRuntimeSessionHint !== "" ? selectedRuntimeSessionHint : void 0;
|
|
199
204
|
let response = await makeRequest(EXEC_ENDPOINT, {
|
|
200
205
|
lang: "bash",
|
|
201
|
-
code,
|
|
206
|
+
code: preparedCode,
|
|
202
207
|
tools: effectiveTools,
|
|
203
208
|
session_id,
|
|
204
209
|
timeout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashProgrammaticToolCalling.mjs","names":[],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":";;;;;;;;;;AAkCA,OAAO;AAMP,MAAM,0BAA0B;AAChC,MAAM,yBAAyB,2BAA2B;
|
|
1
|
+
{"version":3,"file":"BashProgrammaticToolCalling.mjs","names":[],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -40,6 +40,7 @@ config();
|
|
|
40
40
|
|
|
41
41
|
const DEFAULT_MAX_ROUND_TRIPS = 20;
|
|
42
42
|
const DEFAULT_RUN_TIMEOUT_MS = resolveCodeApiRunTimeoutMs();
|
|
43
|
+
const BASH_LAST_BACKGROUND_PID_GUARD = ': &\nwait "$!"';
|
|
43
44
|
|
|
44
45
|
/** Bash reserved words that get `_tool` suffix when used as function names */
|
|
45
46
|
const BASH_RESERVED = new Set([
|
|
@@ -171,6 +172,14 @@ export const BashProgrammaticToolCallingDefinition = {
|
|
|
171
172
|
schema: BashProgrammaticToolCallingSchema,
|
|
172
173
|
} as const;
|
|
173
174
|
|
|
175
|
+
function prepareBashProgrammaticCode(code: string): string {
|
|
176
|
+
/* The Code API's generated Bash wrapper reads `$!` after user code. A user
|
|
177
|
+
* `set -u` makes that expansion fail when no background process has run.
|
|
178
|
+
* Seed and reap a no-op job before user code so strict mode remains active
|
|
179
|
+
* for the payload while the wrapper can safely read its special parameter. */
|
|
180
|
+
return `${BASH_LAST_BACKGROUND_PID_GUARD}\n${code}`;
|
|
181
|
+
}
|
|
182
|
+
|
|
174
183
|
function maybeParseJsonResultString(result: unknown): unknown {
|
|
175
184
|
if (typeof result !== 'string') {
|
|
176
185
|
return result;
|
|
@@ -320,6 +329,7 @@ export function createBashProgrammaticToolCallingTool(
|
|
|
320
329
|
async (rawParams, config) => {
|
|
321
330
|
const params = rawParams as ProgrammaticInvocationParams;
|
|
322
331
|
const { code } = params;
|
|
332
|
+
const preparedCode = prepareBashProgrammaticCode(code);
|
|
323
333
|
const timeout = clampCodeApiRunTimeoutMs(params.timeout, maxRunTimeoutMs);
|
|
324
334
|
|
|
325
335
|
const toolCall = (config.toolCall ?? {}) as ToolCall &
|
|
@@ -417,7 +427,7 @@ export function createBashProgrammaticToolCallingTool(
|
|
|
417
427
|
EXEC_ENDPOINT,
|
|
418
428
|
{
|
|
419
429
|
lang: 'bash',
|
|
420
|
-
code,
|
|
430
|
+
code: preparedCode,
|
|
421
431
|
tools: effectiveTools,
|
|
422
432
|
session_id,
|
|
423
433
|
timeout,
|