From f98046c2fccaa7f9a24665a0d705a98006461da5 Mon Sep 17 00:00:00 2001 From: christopher-buss Date: Tue, 7 Oct 2025 17:18:16 +0100 Subject: [PATCH] fix: resolve executable path for cross-platform compatibility in CLI agent Resolves #276 --- clink/agents/base.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/clink/agents/base.py b/clink/agents/base.py index fface9c..4d821c3 100644 --- a/clink/agents/base.py +++ b/clink/agents/base.py @@ -6,6 +6,7 @@ import asyncio import logging import os import shlex +import shutil import tempfile import time from collections.abc import Sequence @@ -65,6 +66,17 @@ class BaseCLIAgent: # The runner simply executes the configured CLI command for the selected role. command = self._build_command(role=role) env = self._build_environment() + + # Resolve executable path for cross-platform compatibility (especially Windows) + executable_name = command[0] + resolved_executable = shutil.which(executable_name) + if resolved_executable is None: + raise CLIAgentError( + f"Executable '{executable_name}' not found in PATH for CLI '{self.client.name}'. " + f"Ensure the command is installed and accessible." + ) + command[0] = resolved_executable + sanitized_command = list(command) cwd = str(self.client.working_dir) if self.client.working_dir else None