diff --git a/packages/server/src/tools/shell.ts b/packages/server/src/tools/shell.ts index 1a5516ec..72672473 100644 --- a/packages/server/src/tools/shell.ts +++ b/packages/server/src/tools/shell.ts @@ -43,9 +43,14 @@ export class ShellTool extends BaseTool { getDescription(params: ShellToolParams): string { let description = `${params.command}`; - // append optional [./directory], prepending ./ if missing (assuming relative per validation) + // append optional [./directory], prepending ./ if missing and relative + // note description is needed even if validation fails due to absolute path if (params.directory) { - description += ` [${params.directory.startsWith('./') ? '' : './'}${params.directory}]`; + let path = params.directory; + if (!path.startsWith('./') && !path.startsWith('/') && path !== '.') { + path = './' + path; + } + description += ` [${path}]`; } // append optional (description), replacing any line breaks with spaces // tool description/schema should specify a single line w/o line breaks