32 lines
896 B
TypeScript
32 lines
896 B
TypeScript
import type { OpenClawConfig } from "../config/config.js";
|
|
import { resolveAgentConfig } from "./agent-scope.js";
|
|
|
|
export type ToolFsPolicy = {
|
|
workspaceOnly: boolean;
|
|
};
|
|
|
|
export function createToolFsPolicy(params: { workspaceOnly?: boolean }): ToolFsPolicy {
|
|
return {
|
|
workspaceOnly: params.workspaceOnly === true,
|
|
};
|
|
}
|
|
|
|
export function resolveToolFsConfig(params: { cfg?: OpenClawConfig; agentId?: string }): {
|
|
workspaceOnly?: boolean;
|
|
} {
|
|
const cfg = params.cfg;
|
|
const globalFs = cfg?.tools?.fs;
|
|
const agentFs =
|
|
cfg && params.agentId ? resolveAgentConfig(cfg, params.agentId)?.tools?.fs : undefined;
|
|
return {
|
|
workspaceOnly: agentFs?.workspaceOnly ?? globalFs?.workspaceOnly,
|
|
};
|
|
}
|
|
|
|
export function resolveEffectiveToolFsWorkspaceOnly(params: {
|
|
cfg?: OpenClawConfig;
|
|
agentId?: string;
|
|
}): boolean {
|
|
return resolveToolFsConfig(params).workspaceOnly === true;
|
|
}
|