fix: resolve executable path for cross-platform compatibility in CLI agent
Resolves #276
This commit is contained in:
@@ -6,6 +6,7 @@ import asyncio
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import shlex
|
import shlex
|
||||||
|
import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
import time
|
import time
|
||||||
from collections.abc import Sequence
|
from collections.abc import Sequence
|
||||||
@@ -65,6 +66,17 @@ class BaseCLIAgent:
|
|||||||
# The runner simply executes the configured CLI command for the selected role.
|
# The runner simply executes the configured CLI command for the selected role.
|
||||||
command = self._build_command(role=role)
|
command = self._build_command(role=role)
|
||||||
env = self._build_environment()
|
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)
|
sanitized_command = list(command)
|
||||||
|
|
||||||
cwd = str(self.client.working_dir) if self.client.working_dir else None
|
cwd = str(self.client.working_dir) if self.client.working_dir else None
|
||||||
|
|||||||
Reference in New Issue
Block a user