@librechat/agents 3.8.7 → 3.8.8
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/BashExecutor.cjs +6 -3
- package/dist/cjs/tools/BashExecutor.cjs.map +1 -1
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs +3 -0
- package/dist/cjs/tools/BashProgrammaticToolCalling.cjs.map +1 -1
- package/dist/cjs/tools/workspaceIdentity.cjs +12 -0
- package/dist/cjs/tools/workspaceIdentity.cjs.map +1 -0
- package/dist/esm/tools/BashExecutor.mjs +6 -3
- package/dist/esm/tools/BashExecutor.mjs.map +1 -1
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs +3 -0
- package/dist/esm/tools/BashProgrammaticToolCalling.mjs.map +1 -1
- package/dist/esm/tools/workspaceIdentity.mjs +12 -0
- package/dist/esm/tools/workspaceIdentity.mjs.map +1 -0
- package/dist/types/tools/workspaceIdentity.d.ts +1 -0
- package/dist/types/types/tools.d.ts +4 -0
- package/package.json +1 -1
- package/src/tools/BashExecutor.ts +13 -0
- package/src/tools/BashProgrammaticToolCalling.ts +8 -0
- package/src/tools/workspaceIdentity.ts +15 -0
- package/src/types/tools.ts +4 -0
|
@@ -8,6 +8,7 @@ const require_diagnostics = require("./diagnostics.cjs");
|
|
|
8
8
|
const require_CodeSessionFileSummary = require("./CodeSessionFileSummary.cjs");
|
|
9
9
|
const require_CodeExecutor = require("./CodeExecutor.cjs");
|
|
10
10
|
const require_ProgrammaticToolCalling = require("./ProgrammaticToolCalling.cjs");
|
|
11
|
+
const require_workspaceIdentity = require("./workspaceIdentity.cjs");
|
|
11
12
|
const require_BashProgrammaticToolCalling = require("./BashProgrammaticToolCalling.cjs");
|
|
12
13
|
let _langchain_core_tools = require("@langchain/core/tools");
|
|
13
14
|
let dotenv = require("dotenv");
|
|
@@ -127,11 +128,12 @@ const BashExecutionToolDefinition = {
|
|
|
127
128
|
function createBashExecutionTool(params = {}) {
|
|
128
129
|
const workspaceId = params?.workspaceId?.trim();
|
|
129
130
|
const hasWorkspace = workspaceId != null && workspaceId !== "";
|
|
131
|
+
const workspaceInstanceId = require_workspaceIdentity.resolveAttachedWorkspaceInstanceId(params?.workspaceInstanceId, hasWorkspace);
|
|
130
132
|
if (hasWorkspace && !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(workspaceId)) throw new Error("Invalid attached workspace identifier");
|
|
131
133
|
const execEndpoint = require_CodeExecutor.buildCodeApiEndpoint(params?.baseUrl ?? require_CodeExecutor.getCodeBaseURL(), hasWorkspace ? "exec/programmatic" : "exec");
|
|
132
134
|
return (0, _langchain_core_tools.tool)(async (rawInput, config) => {
|
|
133
|
-
const { authHeaders, baseUrl: _baseUrl, executionProfile, runtimeSessionHint, statefulSessions, workspaceId: _workspaceId, ...executionParams } = params ?? {};
|
|
134
|
-
const { command: rawCommand, intent: _ignoredIntent, runtime_session_hint: _ignoredModelHint, args, ...rest } = rawInput;
|
|
135
|
+
const { authHeaders, baseUrl: _baseUrl, executionProfile, runtimeSessionHint, statefulSessions, workspaceId: _workspaceId, workspaceInstanceId: _workspaceInstanceId, ...executionParams } = params ?? {};
|
|
136
|
+
const { command: rawCommand, intent: _ignoredIntent, runtime_session_hint: _ignoredModelHint, workspace_instance_id: _ignoredModelWorkspaceInstanceId, args, ...rest } = rawInput;
|
|
135
137
|
const command = hasWorkspace ? commandWithArguments(rawCommand, args) : rawCommand;
|
|
136
138
|
const { session_id, _injected_files, _runtime_session_hint } = config.toolCall ?? {};
|
|
137
139
|
const postData = {
|
|
@@ -140,7 +142,8 @@ function createBashExecutionTool(params = {}) {
|
|
|
140
142
|
...hasWorkspace ? { tools: [] } : {},
|
|
141
143
|
...!hasWorkspace && args != null ? { args } : {},
|
|
142
144
|
...rest,
|
|
143
|
-
...executionParams
|
|
145
|
+
...executionParams,
|
|
146
|
+
...workspaceInstanceId != null && workspaceInstanceId !== "" ? { workspace_instance_id: workspaceInstanceId } : {}
|
|
144
147
|
};
|
|
145
148
|
const effectiveRuntimeSessionHint = require_CodeExecutor.selectRuntimeSessionHint(runtimeSessionHint, _runtime_session_hint);
|
|
146
149
|
if (statefulSessions === true && executionProfile !== "default" && typeof effectiveRuntimeSessionHint === "string" && effectiveRuntimeSessionHint !== "") postData.runtime_session_hint = effectiveRuntimeSessionHint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashExecutor.cjs","names":["INTENT_PROPERTY","CODE_ARTIFACT_PATH_GUIDANCE","BASH_SHELL_GUIDANCE","buildCodeApiEndpoint","getCodeBaseURL","prepareBashProgrammaticCode","selectRuntimeSessionHint","resolveCodeApiAuthHeaders","makeRequest","addCodeApiExecutionProfileHeader","resolveFetchProxyAgent","CodeApiRequestError","buildCodeApiHttpErrorMessage","buildCodeApiExecutionErrorMessage","emptyOutputMessage","appendTmpScratchReminder","normalizeArtifactDeliveryFailure","appendArtifactDeliveryWarning","appendExecutionArtifactFileSummary","appendCodeSessionFileSummary","appendFailedExecutionFileReminder","normalizeCodeApiRequestError"],"sources":["../../../src/tools/BashExecutor.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BashExecutor.cjs","names":["INTENT_PROPERTY","CODE_ARTIFACT_PATH_GUIDANCE","BASH_SHELL_GUIDANCE","resolveAttachedWorkspaceInstanceId","buildCodeApiEndpoint","getCodeBaseURL","prepareBashProgrammaticCode","selectRuntimeSessionHint","resolveCodeApiAuthHeaders","makeRequest","addCodeApiExecutionProfileHeader","resolveFetchProxyAgent","CodeApiRequestError","buildCodeApiHttpErrorMessage","buildCodeApiExecutionErrorMessage","emptyOutputMessage","appendTmpScratchReminder","normalizeArtifactDeliveryFailure","appendArtifactDeliveryWarning","appendExecutionArtifactFileSummary","appendCodeSessionFileSummary","appendFailedExecutionFileReminder","normalizeCodeApiRequestError"],"sources":["../../../src/tools/BashExecutor.ts"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const require_CodeExecutor = require("./CodeExecutor.cjs");
|
|
|
6
6
|
const require_ProgrammaticCallerPolicy = require("./ProgrammaticCallerPolicy.cjs");
|
|
7
7
|
const require_ptcTimeout = require("./ptcTimeout.cjs");
|
|
8
8
|
const require_ProgrammaticToolCalling = require("./ProgrammaticToolCalling.cjs");
|
|
9
|
+
const require_workspaceIdentity = require("./workspaceIdentity.cjs");
|
|
9
10
|
let _langchain_core_tools = require("@langchain/core/tools");
|
|
10
11
|
//#region src/tools/BashProgrammaticToolCalling.ts
|
|
11
12
|
(0, require("dotenv").config)();
|
|
@@ -206,6 +207,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
206
207
|
const workspaceId = initParams.workspaceId?.trim();
|
|
207
208
|
const hasWorkspace = workspaceId != null && workspaceId !== "";
|
|
208
209
|
if (hasWorkspace && !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(workspaceId)) throw new Error("Invalid attached workspace identifier");
|
|
210
|
+
const workspaceInstanceId = require_workspaceIdentity.resolveAttachedWorkspaceInstanceId(initParams.workspaceInstanceId, hasWorkspace);
|
|
209
211
|
const requestAuthHeaders = hasWorkspace ? async () => ({
|
|
210
212
|
...await require_CodeExecutor.resolveCodeApiAuthHeaders(initParams.authHeaders),
|
|
211
213
|
[CODE_API_WORKSPACE_HEADER]: workspaceId
|
|
@@ -262,6 +264,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
262
264
|
tools: effectiveTools,
|
|
263
265
|
session_id,
|
|
264
266
|
timeout,
|
|
267
|
+
...workspaceInstanceId != null && workspaceInstanceId !== "" ? { workspace_instance_id: workspaceInstanceId } : {},
|
|
265
268
|
...files && files.length > 0 ? { files } : {},
|
|
266
269
|
...runtimeSessionHint != null ? { runtime_session_hint: runtimeSessionHint } : {}
|
|
267
270
|
}, proxy, requestAuthHeaders, initParams.executionProfile, config.signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashProgrammaticToolCalling.cjs","names":["resolveCodeApiRunTimeoutMs","CODE_ARTIFACT_PATH_GUIDANCE","BASH_SHELL_GUIDANCE","INTENT_PROPERTY","createCodeApiRunTimeoutSchema","getCodeBaseURL","resolveCodeApiAuthHeaders","buildCodeApiEndpoint","clampCodeApiRunTimeoutMs","resolveProgrammaticToolDefinitions","selectProgrammaticTools","projectProgrammaticToolMap","selectRuntimeSessionHint","runPlainExecution","makeRequest","executeTools","formatCompletedResponse","buildCodeApiExecutionErrorMessage","CodeApiRequestError","appendFailedExecutionFileReminder"],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BashProgrammaticToolCalling.cjs","names":["resolveCodeApiRunTimeoutMs","CODE_ARTIFACT_PATH_GUIDANCE","BASH_SHELL_GUIDANCE","INTENT_PROPERTY","createCodeApiRunTimeoutSchema","getCodeBaseURL","resolveAttachedWorkspaceInstanceId","resolveCodeApiAuthHeaders","buildCodeApiEndpoint","clampCodeApiRunTimeoutMs","resolveProgrammaticToolDefinitions","selectProgrammaticTools","projectProgrammaticToolMap","selectRuntimeSessionHint","runPlainExecution","makeRequest","executeTools","formatCompletedResponse","buildCodeApiExecutionErrorMessage","CodeApiRequestError","appendFailedExecutionFileReminder"],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/tools/workspaceIdentity.ts
|
|
2
|
+
const WORKSPACE_INSTANCE_ID_PATTERN = /^[a-f0-9]{64}$/;
|
|
3
|
+
function resolveAttachedWorkspaceInstanceId(value, hasWorkspace) {
|
|
4
|
+
const workspaceInstanceId = value?.trim();
|
|
5
|
+
if (workspaceInstanceId == null || workspaceInstanceId === "") return;
|
|
6
|
+
if (!hasWorkspace || !WORKSPACE_INSTANCE_ID_PATTERN.test(workspaceInstanceId)) throw new Error("Invalid attached workspace instance identifier");
|
|
7
|
+
return workspaceInstanceId;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
exports.resolveAttachedWorkspaceInstanceId = resolveAttachedWorkspaceInstanceId;
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=workspaceIdentity.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceIdentity.cjs","names":[],"sources":["../../../src/tools/workspaceIdentity.ts"],"mappings":";AAAA,MAAM,gCAAgC;AAEtC,SAAgB,mCACd,OACA,cACoB;CACpB,MAAM,sBAAsB,OAAO,KAAK;CACxC,IAAI,uBAAuB,QAAQ,wBAAwB,IACzD;CAEF,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,KAAK,mBAAmB,GAC1E,MAAM,IAAI,MAAM,gDAAgD;CAElE,OAAO;AACT"}
|
|
@@ -7,6 +7,7 @@ import { logCodeApiDiagnostic } from "./diagnostics.mjs";
|
|
|
7
7
|
import { appendCodeSessionFileSummary, appendExecutionArtifactFileSummary } from "./CodeSessionFileSummary.mjs";
|
|
8
8
|
import { BASH_SHELL_GUIDANCE, CODE_ARTIFACT_PATH_GUIDANCE, CodeApiRequestError, addCodeApiExecutionProfileHeader, appendFailedExecutionFileReminder, appendTmpScratchReminder, buildCodeApiEndpoint, buildCodeApiExecutionErrorMessage, buildCodeApiHttpErrorMessage, emptyOutputMessage, getCodeBaseURL, normalizeCodeApiRequestError, resolveCodeApiAuthHeaders, selectRuntimeSessionHint } from "./CodeExecutor.mjs";
|
|
9
9
|
import { makeRequest } from "./ProgrammaticToolCalling.mjs";
|
|
10
|
+
import { resolveAttachedWorkspaceInstanceId } from "./workspaceIdentity.mjs";
|
|
10
11
|
import { prepareBashProgrammaticCode } from "./BashProgrammaticToolCalling.mjs";
|
|
11
12
|
import { tool } from "@langchain/core/tools";
|
|
12
13
|
import { config } from "dotenv";
|
|
@@ -125,11 +126,12 @@ const BashExecutionToolDefinition = {
|
|
|
125
126
|
function createBashExecutionTool(params = {}) {
|
|
126
127
|
const workspaceId = params?.workspaceId?.trim();
|
|
127
128
|
const hasWorkspace = workspaceId != null && workspaceId !== "";
|
|
129
|
+
const workspaceInstanceId = resolveAttachedWorkspaceInstanceId(params?.workspaceInstanceId, hasWorkspace);
|
|
128
130
|
if (hasWorkspace && !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(workspaceId)) throw new Error("Invalid attached workspace identifier");
|
|
129
131
|
const execEndpoint = buildCodeApiEndpoint(params?.baseUrl ?? getCodeBaseURL(), hasWorkspace ? "exec/programmatic" : "exec");
|
|
130
132
|
return tool(async (rawInput, config) => {
|
|
131
|
-
const { authHeaders, baseUrl: _baseUrl, executionProfile, runtimeSessionHint, statefulSessions, workspaceId: _workspaceId, ...executionParams } = params ?? {};
|
|
132
|
-
const { command: rawCommand, intent: _ignoredIntent, runtime_session_hint: _ignoredModelHint, args, ...rest } = rawInput;
|
|
133
|
+
const { authHeaders, baseUrl: _baseUrl, executionProfile, runtimeSessionHint, statefulSessions, workspaceId: _workspaceId, workspaceInstanceId: _workspaceInstanceId, ...executionParams } = params ?? {};
|
|
134
|
+
const { command: rawCommand, intent: _ignoredIntent, runtime_session_hint: _ignoredModelHint, workspace_instance_id: _ignoredModelWorkspaceInstanceId, args, ...rest } = rawInput;
|
|
133
135
|
const command = hasWorkspace ? commandWithArguments(rawCommand, args) : rawCommand;
|
|
134
136
|
const { session_id, _injected_files, _runtime_session_hint } = config.toolCall ?? {};
|
|
135
137
|
const postData = {
|
|
@@ -138,7 +140,8 @@ function createBashExecutionTool(params = {}) {
|
|
|
138
140
|
...hasWorkspace ? { tools: [] } : {},
|
|
139
141
|
...!hasWorkspace && args != null ? { args } : {},
|
|
140
142
|
...rest,
|
|
141
|
-
...executionParams
|
|
143
|
+
...executionParams,
|
|
144
|
+
...workspaceInstanceId != null && workspaceInstanceId !== "" ? { workspace_instance_id: workspaceInstanceId } : {}
|
|
142
145
|
};
|
|
143
146
|
const effectiveRuntimeSessionHint = selectRuntimeSessionHint(runtimeSessionHint, _runtime_session_hint);
|
|
144
147
|
if (statefulSessions === true && executionProfile !== "default" && typeof effectiveRuntimeSessionHint === "string" && effectiveRuntimeSessionHint !== "") postData.runtime_session_hint = effectiveRuntimeSessionHint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashExecutor.mjs","names":[],"sources":["../../../src/tools/BashExecutor.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BashExecutor.mjs","names":[],"sources":["../../../src/tools/BashExecutor.ts"],"mappings":";;;;;;;;;;;;;;;AAkCA,OAAO;AAEP,MAAa,0BAA0B;CACrC,MAAM;CACN,YAAY;EACV,QAAQ,EAAE,GAAG,gBAAgB;EAC7B,SAAS;GACP,MAAM;GACN,aAAa;;;IAGf,4BAA4B;IAC5B,oBAAoB;;;;;EAKpB;EACA,MAAM;GACJ,MAAM;GACN,OAAO,EAAE,MAAM,SAAS;GACxB,aACE;EACJ;CACF;CACA,UAAU,CAAC,SAAS;AACtB;AAEA,MAAa,+BAA+B;;;;;;IAMxC,4BAA4B;IAC5B,oBAAoB;;EAEtB,KAAK;AAUP,MAAa,qBACX;AAEF,MAAa,uCAAuC;;;EAGlD,mBAAmB;;;;;IAKjB,4BAA4B;IAC5B,oBAAoB;;EAEtB,KAAK;AAEP,MAAM,gDAAgD;;;;;;;IAOlD,oBAAoB;;EAEtB,KAAK;AAYP,MAAa,gCAAgC;;;;;;;;;EAS3C,KAAK;AASP,SAAgB,kCAAkC,SAIvC;CACT,IAAI,OAAO;CACX,IAAI,SAAS,sBAAsB,MACjC,OAAO;MACF,IAAI,SAAS,qBAAqB,MACvC,OAAO;CAET,IAAI,SAAS,+BAA+B,MAC1C,OAAO,GAAG,KAAK,MAAM;CAEvB,OAAO;AACT;AAEA,MAAM,4BACJ;AACF,MAAM,2BACJ;AACF,MAAM,2BACJ;AACF,MAAM,uCACJ;AACF,MAAM,6BACJ;AAEF,SAAgB,6BAA6B,MAGV;CACjC,IAAI,OAAO;CACX,IAAI,MAAM,sBAAsB,MAC9B,OAAO;MACF,IAAI,MAAM,qBAAqB,MACpC,OAAO;CAET,IAAI,qBACF,wBAAwB,WAAW,QAAQ,YAAY,QACrD,2BACA,IACF;CACF,IAAI,MAAM,sBAAsB,MAC9B,qBAAqB,mBAClB,QAAQ,yEAAyE,EAAE,CAAC,CACpF,QAAQ,6BAA6B,oCAAoC;CAE9E,OAAO;EACL,GAAG;EACH,YAAY;GACV,GAAG,wBAAwB;GAC3B,SAAS;IACP,GAAG,wBAAwB,WAAW;IACtC,aAAa;GACf;EACF;CACF;AACF;AAEA,MAAa,wBAAA;AAEb,SAAS,kBAAkB,OAAuB;CAChD,OAAO,IAAI,MAAM,QAAQ,MAAM,SAAU,EAAE;AAC7C;AAEA,SAAS,qBAAqB,SAAiB,MAAoC;CACjF,IAAI,QAAQ,QAAQ,KAAK,WAAW,GAAG,OAAO;CAC9C,OAAO,WAAW,kBAAkB,OAAO,EAAE,MAAM,KAAK,IAAI,iBAAiB,CAAC,CAAC,KAAK,GAAG;AACzF;AAYA,MAAa,8BAA8B;CACzC,MAAM;CACN,aAAa;CACb,QAAQ;AACV;AAEA,SAAS,wBACP,SAA2C,CAAC,GACrB;CACvB,MAAM,cAAc,QAAQ,aAAa,KAAK;CAC9C,MAAM,eAAe,eAAe,QAAQ,gBAAgB;CAC5D,MAAM,sBAAsB,mCAC1B,QAAQ,qBACR,YACF;CACA,IACE,gBACA,CAAC,sCAAsC,KAAK,WAAW,GAEvD,MAAM,IAAI,MAAM,uCAAuC;CAEzD,MAAM,eAAe,qBACnB,QAAQ,WAAW,eAAe,GAClC,eAAe,sBAAsB,MACvC;CAEA,OAAO,KACL,OAAO,UAAU,WAAW;EAG1B,MAAM,EACJ,aACA,SAAS,UACT,kBACA,oBACA,kBACA,aAAa,cACb,qBAAqB,sBACrB,GAAG,oBACD,UAAU,CAAC;EAQf,MAAM,EACJ,SAAS,YACT,QAAQ,gBACR,sBAAsB,mBACtB,uBAAuB,kCACvB,MACA,GAAG,SACD;EAUJ,MAAM,UAAU,eACZ,qBAAqB,YAAY,IAAI,IACrC;EACJ,MAAM,EAAE,YAAY,iBAAiB,0BAClC,OAAO,YAAY,CAAC;EAMvB,MAAM,WAAoC;GACxC,MAAM;GACN,MAAM,eAAe,4BAA4B,OAAO,IAAI;GAC5D,GAAI,eAAe,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC;GACpC,GAAI,CAAC,gBAAgB,QAAQ,OAAO,EAAE,KAAK,IAAI,CAAC;GAChD,GAAG;GACH,GAAG;GACH,GAAI,uBAAuB,QAAQ,wBAAwB,KACvD,EAAE,uBAAuB,oBAAoB,IAC7C,CAAC;EACP;EAEA,MAAM,8BAA8B,yBAClC,oBACA,qBACF;EACA,IACE,qBAAqB,QACrB,qBAAqB,aACrB,OAAO,gCAAgC,YACvC,gCAAgC,IAEhC,SAAS,uBAAuB;EAMlC,IAAI,mBAAmB,gBAAgB,SAAS,GAC9C,SAAS,QAAQ;OACZ,IACL,cAAc,QACd,WAAW,SAAS,KACpB,CAAC,MAAM,QAAQ,SAAS,KAAK,GAE7B,qBACE,gBACA,SACA,wEACA,EAAE,OAAO,OAAO,CAClB;EAGF,IAAI;GACF,MAAM,sBACJ,MAAM,0BAA0B,WAAW;GAC7C,IAAI;GACJ,IAAI,cACF,SAAS,MAAM,YACb,cACA,UACA,KAAA,GACA;IACE,GAAG;IACH,iCAAiC;GACnC,GACA,kBACA,OAAO,MACT;QACK;IACL,MAAM,eAA4B;KAChC,QAAQ;KACR,SAAS;MACP,gBAAgB;MAChB,cAAc;MACd,GAAG,iCACD,qBACA,gBACF;KACF;KACA,MAAM,KAAK,UAAU,QAAQ;KAC7B,QAAQ,OAAO;IACjB;IAEA,MAAM,aAAa,uBAAuB,YAAY;IACtD,IAAI,cAAc,MAChB,aAAa,QAAQ;IAEvB,MAAM,WAAW,MAAM,MAAM,cAAc,YAAY;IACvD,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,oBACR,MAAM,6BAA6B,QAAQ,cAAc,UAAU,EACjE,SAAS,iBACX,CAAC,CACH;IAEF,SAAU,MAAM,SAAS,KAAK;GAEhC;GACA,IAAI,gBAAgB,OAAO,WAAW,aACpC,MAAM,IAAI,oBACR,kCACE,MACF,CACF;GAEF,IAAI,kBAAkB;GACtB,IAAI,OAAO,OAAO,WAAW,YAAY,OAAO,OAAO,SAAS,GAC9D,mBAAmB,YAAY,OAAO,OAAO;QAE7C,mBAAmB;GAErB,IAAI,OAAO,OAAO,WAAW,YAAY,OAAO,OAAO,SAAS,GAC9D,mBAAmB,YAAY,OAAO,OAAO;GAG/C,MAAM,qBAAqB,yBACzB,iBACA,SACA,eAAe,6BAA6B,KAAA,CAC9C;GACA,MAAM,mBAAmB,iCACvB,OAAO,iBACT;GACA,MAAM,4BAA4B,8BAChC,oBACA,gBACF;GACA,MAAM,WAAW,OAAO,SAAS,QAAQ,OAAO,MAAM,SAAS;GAC/D,MAAM,eACJ,OAAO,iBAAiB,OACpB,EAAE,eAAe,OAAO,cAAc,IACtC,CAAC;GACP,MAAM,cACJ,OAAO,sBAAsB,OACzB;IACA,oBAAoB,OAAO;IAC3B,gBAAgB,OAAO;GACzB,IACE,CAAC;GACP,OAAO,CACL,eACI,mCACA,2BACA,OAAO,KACT,IACE,6BACA,2BACA,OAAO,KACT,GACD,WACG;IACA,YAAY,OAAO;IACnB,OAAO,OAAO;IACd,GAAI,oBAAoB,OACpB,EAAE,mBAAmB,iBAAiB,IACtC,CAAC;IACL,GAAG;IACH,GAAG;GACL,IACE;IACA,YAAY,OAAO;IACnB,GAAI,oBAAoB,OACpB,EAAE,mBAAmB,iBAAiB,IACtC,CAAC;IACL,GAAG;IACH,GAAG;GACL,CACJ;EACF,SAAS,OAAO;GAKd,MAAM,IAAI,oBACR,uBAL0B,kCAC1B,6BAA6B,KAAK,CAAC,CAAC,SACpC,OAGyC,GAC3C;EACF;CACF,GACA;EACE,MAAM;EACN,aAAa,kCAAkC;GAC7C,kBAAkB,QAAQ;GAC1B,mBAAmB;EACrB,CAAC;EACD,QAAQ,6BAA6B;GACnC,kBAAkB,QAAQ;GAC1B,mBAAmB;EACrB,CAAC;EACD,gBAAA;CACF,CACF;AACF"}
|
|
@@ -6,6 +6,7 @@ import { BASH_SHELL_GUIDANCE, CODE_ARTIFACT_PATH_GUIDANCE, CodeApiRequestError,
|
|
|
6
6
|
import { assertUnambiguousIdentifiers, projectProgrammaticToolMap, resolveProgrammaticToolDefinitions, selectProgrammaticTools } from "./ProgrammaticCallerPolicy.mjs";
|
|
7
7
|
import { clampCodeApiRunTimeoutMs, createCodeApiRunTimeoutSchema, resolveCodeApiRunTimeoutMs } from "./ptcTimeout.mjs";
|
|
8
8
|
import { executeTools, formatCompletedResponse, makeRequest, runPlainExecution } from "./ProgrammaticToolCalling.mjs";
|
|
9
|
+
import { resolveAttachedWorkspaceInstanceId } from "./workspaceIdentity.mjs";
|
|
9
10
|
import { tool } from "@langchain/core/tools";
|
|
10
11
|
import { config } from "dotenv";
|
|
11
12
|
//#region src/tools/BashProgrammaticToolCalling.ts
|
|
@@ -207,6 +208,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
207
208
|
const workspaceId = initParams.workspaceId?.trim();
|
|
208
209
|
const hasWorkspace = workspaceId != null && workspaceId !== "";
|
|
209
210
|
if (hasWorkspace && !/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(workspaceId)) throw new Error("Invalid attached workspace identifier");
|
|
211
|
+
const workspaceInstanceId = resolveAttachedWorkspaceInstanceId(initParams.workspaceInstanceId, hasWorkspace);
|
|
210
212
|
const requestAuthHeaders = hasWorkspace ? async () => ({
|
|
211
213
|
...await resolveCodeApiAuthHeaders(initParams.authHeaders),
|
|
212
214
|
[CODE_API_WORKSPACE_HEADER]: workspaceId
|
|
@@ -263,6 +265,7 @@ function createBashProgrammaticToolCallingTool(initParams = {}) {
|
|
|
263
265
|
tools: effectiveTools,
|
|
264
266
|
session_id,
|
|
265
267
|
timeout,
|
|
268
|
+
...workspaceInstanceId != null && workspaceInstanceId !== "" ? { workspace_instance_id: workspaceInstanceId } : {},
|
|
266
269
|
...files && files.length > 0 ? { files } : {},
|
|
267
270
|
...runtimeSessionHint != null ? { runtime_session_hint: runtimeSessionHint } : {}
|
|
268
271
|
}, proxy, requestAuthHeaders, initParams.executionProfile, config.signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BashProgrammaticToolCalling.mjs","names":[],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"BashProgrammaticToolCalling.mjs","names":[],"sources":["../../../src/tools/BashProgrammaticToolCalling.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/tools/workspaceIdentity.ts
|
|
2
|
+
const WORKSPACE_INSTANCE_ID_PATTERN = /^[a-f0-9]{64}$/;
|
|
3
|
+
function resolveAttachedWorkspaceInstanceId(value, hasWorkspace) {
|
|
4
|
+
const workspaceInstanceId = value?.trim();
|
|
5
|
+
if (workspaceInstanceId == null || workspaceInstanceId === "") return;
|
|
6
|
+
if (!hasWorkspace || !WORKSPACE_INSTANCE_ID_PATTERN.test(workspaceInstanceId)) throw new Error("Invalid attached workspace instance identifier");
|
|
7
|
+
return workspaceInstanceId;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { resolveAttachedWorkspaceInstanceId };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=workspaceIdentity.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceIdentity.mjs","names":[],"sources":["../../../src/tools/workspaceIdentity.ts"],"mappings":";AAAA,MAAM,gCAAgC;AAEtC,SAAgB,mCACd,OACA,cACoB;CACpB,MAAM,sBAAsB,OAAO,KAAK;CACxC,IAAI,uBAAuB,QAAQ,wBAAwB,IACzD;CAEF,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,KAAK,mBAAmB,GAC1E,MAAM,IAAI,MAAM,gDAAgD;CAElE,OAAO;AACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveAttachedWorkspaceInstanceId(value: string | undefined, hasWorkspace: boolean): string | undefined;
|
|
@@ -1264,11 +1264,15 @@ export type ProgrammaticExecutionArtifact = {
|
|
|
1264
1264
|
export type BashExecutionToolParams = undefined | (Exclude<CodeExecutionToolParams, undefined> & {
|
|
1265
1265
|
/** Trusted attached-workspace identifier selected by the host. */
|
|
1266
1266
|
workspaceId?: string;
|
|
1267
|
+
/** Trusted conversation-owned workspace instance selected by the host. */
|
|
1268
|
+
workspaceInstanceId?: string;
|
|
1267
1269
|
});
|
|
1268
1270
|
/** Parameters for creating a bash programmatic tool calling tool (same API as PTC, bash-only) */
|
|
1269
1271
|
export type BashProgrammaticToolCallingParams = ProgrammaticToolCallingParams & {
|
|
1270
1272
|
/** Trusted attached-workspace identifier selected by the host. */
|
|
1271
1273
|
workspaceId?: string;
|
|
1274
|
+
/** Trusted conversation-owned workspace instance selected by the host. */
|
|
1275
|
+
workspaceInstanceId?: string;
|
|
1272
1276
|
};
|
|
1273
1277
|
/**
|
|
1274
1278
|
* Initialization parameters for the PTC tool
|
package/package.json
CHANGED
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
} from '@/tools/ArtifactDelivery';
|
|
26
26
|
import { logCodeApiDiagnostic } from '@/tools/diagnostics';
|
|
27
27
|
import { appendExecutionArtifactFileSummary } from '@/tools/CodeSessionFileSummary';
|
|
28
|
+
import { resolveAttachedWorkspaceInstanceId } from '@/tools/workspaceIdentity';
|
|
28
29
|
import { resolveFetchProxyAgent } from '@/utils/proxy';
|
|
29
30
|
import { INTENT_PROPERTY } from '@/tools/intentArg';
|
|
30
31
|
import { Constants } from '@/common';
|
|
@@ -225,6 +226,10 @@ function createBashExecutionTool(
|
|
|
225
226
|
): DynamicStructuredTool {
|
|
226
227
|
const workspaceId = params?.workspaceId?.trim();
|
|
227
228
|
const hasWorkspace = workspaceId != null && workspaceId !== '';
|
|
229
|
+
const workspaceInstanceId = resolveAttachedWorkspaceInstanceId(
|
|
230
|
+
params?.workspaceInstanceId,
|
|
231
|
+
hasWorkspace
|
|
232
|
+
);
|
|
228
233
|
if (
|
|
229
234
|
hasWorkspace &&
|
|
230
235
|
!/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/.test(workspaceId)
|
|
@@ -247,10 +252,12 @@ function createBashExecutionTool(
|
|
|
247
252
|
runtimeSessionHint,
|
|
248
253
|
statefulSessions,
|
|
249
254
|
workspaceId: _workspaceId,
|
|
255
|
+
workspaceInstanceId: _workspaceInstanceId,
|
|
250
256
|
...executionParams
|
|
251
257
|
} = params ?? {};
|
|
252
258
|
void _baseUrl;
|
|
253
259
|
void _workspaceId;
|
|
260
|
+
void _workspaceInstanceId;
|
|
254
261
|
/* Drop any model-supplied `runtime_session_hint` from the raw args: the
|
|
255
262
|
* hint must only come from ToolNode's injected `_runtime_session_hint`
|
|
256
263
|
* (below), never from the tool call itself. */
|
|
@@ -259,15 +266,18 @@ function createBashExecutionTool(
|
|
|
259
266
|
command: rawCommand,
|
|
260
267
|
intent: _ignoredIntent,
|
|
261
268
|
runtime_session_hint: _ignoredModelHint,
|
|
269
|
+
workspace_instance_id: _ignoredModelWorkspaceInstanceId,
|
|
262
270
|
args,
|
|
263
271
|
...rest
|
|
264
272
|
} = rawInput as {
|
|
265
273
|
command: string;
|
|
266
274
|
intent?: unknown;
|
|
267
275
|
runtime_session_hint?: unknown;
|
|
276
|
+
workspace_instance_id?: unknown;
|
|
268
277
|
args?: string[];
|
|
269
278
|
};
|
|
270
279
|
void _ignoredModelHint;
|
|
280
|
+
void _ignoredModelWorkspaceInstanceId;
|
|
271
281
|
void _ignoredIntent;
|
|
272
282
|
const command = hasWorkspace
|
|
273
283
|
? commandWithArguments(rawCommand, args)
|
|
@@ -286,6 +296,9 @@ function createBashExecutionTool(
|
|
|
286
296
|
...(!hasWorkspace && args != null ? { args } : {}),
|
|
287
297
|
...rest,
|
|
288
298
|
...executionParams,
|
|
299
|
+
...(workspaceInstanceId != null && workspaceInstanceId !== ''
|
|
300
|
+
? { workspace_instance_id: workspaceInstanceId }
|
|
301
|
+
: {}),
|
|
289
302
|
};
|
|
290
303
|
|
|
291
304
|
const effectiveRuntimeSessionHint = selectRuntimeSessionHint(
|
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
formatCompletedResponse,
|
|
34
34
|
} from './ProgrammaticToolCalling';
|
|
35
35
|
import { logCodeApiDiagnostic } from '@/tools/diagnostics';
|
|
36
|
+
import { resolveAttachedWorkspaceInstanceId } from '@/tools/workspaceIdentity';
|
|
36
37
|
import { INTENT_PROPERTY } from '@/tools/intentArg';
|
|
37
38
|
import { Constants } from '@/common';
|
|
38
39
|
|
|
@@ -369,6 +370,10 @@ export function createBashProgrammaticToolCallingTool(
|
|
|
369
370
|
) {
|
|
370
371
|
throw new Error('Invalid attached workspace identifier');
|
|
371
372
|
}
|
|
373
|
+
const workspaceInstanceId = resolveAttachedWorkspaceInstanceId(
|
|
374
|
+
initParams.workspaceInstanceId,
|
|
375
|
+
hasWorkspace
|
|
376
|
+
);
|
|
372
377
|
const requestAuthHeaders: t.CodeApiAuthHeaders = hasWorkspace
|
|
373
378
|
? async (): Promise<t.CodeApiAuthHeaderMap> => ({
|
|
374
379
|
...(await resolveCodeApiAuthHeaders(initParams.authHeaders)),
|
|
@@ -538,6 +543,9 @@ export function createBashProgrammaticToolCallingTool(
|
|
|
538
543
|
tools: effectiveTools,
|
|
539
544
|
session_id,
|
|
540
545
|
timeout,
|
|
546
|
+
...(workspaceInstanceId != null && workspaceInstanceId !== ''
|
|
547
|
+
? { workspace_instance_id: workspaceInstanceId }
|
|
548
|
+
: {}),
|
|
541
549
|
...(files && files.length > 0 ? { files } : {}),
|
|
542
550
|
...(runtimeSessionHint != null
|
|
543
551
|
? { runtime_session_hint: runtimeSessionHint }
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const WORKSPACE_INSTANCE_ID_PATTERN = /^[a-f0-9]{64}$/;
|
|
2
|
+
|
|
3
|
+
export function resolveAttachedWorkspaceInstanceId(
|
|
4
|
+
value: string | undefined,
|
|
5
|
+
hasWorkspace: boolean
|
|
6
|
+
): string | undefined {
|
|
7
|
+
const workspaceInstanceId = value?.trim();
|
|
8
|
+
if (workspaceInstanceId == null || workspaceInstanceId === '') {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
if (!hasWorkspace || !WORKSPACE_INSTANCE_ID_PATTERN.test(workspaceInstanceId)) {
|
|
12
|
+
throw new Error('Invalid attached workspace instance identifier');
|
|
13
|
+
}
|
|
14
|
+
return workspaceInstanceId;
|
|
15
|
+
}
|
package/src/types/tools.ts
CHANGED
|
@@ -1381,6 +1381,8 @@ export type BashExecutionToolParams =
|
|
|
1381
1381
|
| (Exclude<CodeExecutionToolParams, undefined> & {
|
|
1382
1382
|
/** Trusted attached-workspace identifier selected by the host. */
|
|
1383
1383
|
workspaceId?: string;
|
|
1384
|
+
/** Trusted conversation-owned workspace instance selected by the host. */
|
|
1385
|
+
workspaceInstanceId?: string;
|
|
1384
1386
|
});
|
|
1385
1387
|
|
|
1386
1388
|
/** Parameters for creating a bash programmatic tool calling tool (same API as PTC, bash-only) */
|
|
@@ -1388,6 +1390,8 @@ export type BashProgrammaticToolCallingParams =
|
|
|
1388
1390
|
ProgrammaticToolCallingParams & {
|
|
1389
1391
|
/** Trusted attached-workspace identifier selected by the host. */
|
|
1390
1392
|
workspaceId?: string;
|
|
1393
|
+
/** Trusted conversation-owned workspace instance selected by the host. */
|
|
1394
|
+
workspaceInstanceId?: string;
|
|
1391
1395
|
};
|
|
1392
1396
|
|
|
1393
1397
|
/**
|