Files
openclaw/src/agents/openclaw-tools.nodes-workspace-guard.ts
2026-04-10 15:37:48 +01:00

27 lines
768 B
TypeScript

import { wrapToolWorkspaceRootGuardWithOptions } from "./pi-tools.read.js";
import type { ToolFsPolicy } from "./tool-fs-policy.js";
import type { AnyAgentTool } from "./tools/common.js";
export function applyNodesToolWorkspaceGuard(
nodesToolBase: AnyAgentTool,
options: {
fsPolicy?: ToolFsPolicy;
sandboxContainerWorkdir?: string;
sandboxRoot?: string;
workspaceDir: string;
},
): AnyAgentTool {
if (options.fsPolicy?.workspaceOnly !== true) {
return nodesToolBase;
}
return wrapToolWorkspaceRootGuardWithOptions(
nodesToolBase,
options.sandboxRoot ?? options.workspaceDir,
{
containerWorkdir: options.sandboxContainerWorkdir,
normalizeGuardedPathParams: true,
pathParamKeys: ["outPath"],
},
);
}