evo-cli 0.10.0__tar.gz → 0.10.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {evo_cli-0.10.0 → evo_cli-0.10.1}/PKG-INFO +1 -1
- evo_cli-0.10.1/evo_cli/VERSION +1 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/opencode.py +6 -4
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/console.py +13 -2
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli.egg-info/PKG-INFO +1 -1
- evo_cli-0.10.0/evo_cli/VERSION +0 -1
- {evo_cli-0.10.0 → evo_cli-0.10.1}/Containerfile +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/HISTORY.md +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/LICENSE +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/MANIFEST.in +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/README.md +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/__init__.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/__main__.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/base.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/cli.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/__init__.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/cloudflare.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/fix_claude.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/gdrive.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/localproxy.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/mcp.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/miniconda.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/netcheck.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/plantuml.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/site2s.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/ssh.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/sysmon.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/commands/wifi.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli/mcp_registry.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli.egg-info/SOURCES.txt +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli.egg-info/dependency_links.txt +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli.egg-info/entry_points.txt +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli.egg-info/requires.txt +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/evo_cli.egg-info/top_level.txt +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/pyproject.toml +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/setup.cfg +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/__init__.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_cli.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_console.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_fix_claude.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_mcp.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_opencode.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_plantuml.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_sysmon.py +0 -0
- {evo_cli-0.10.0 → evo_cli-0.10.1}/tests/test_wifi.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.10.1
|
|
@@ -10,7 +10,7 @@ import rich_click as click
|
|
|
10
10
|
from rich.panel import Panel
|
|
11
11
|
from rich.text import Text
|
|
12
12
|
|
|
13
|
-
from evo_cli.console import console, error, info, run_command, step, success, warning
|
|
13
|
+
from evo_cli.console import console, error, info, resolve_executable, run_command, step, success, warning
|
|
14
14
|
from evo_cli.mcp_registry import opencode_servers
|
|
15
15
|
|
|
16
16
|
EPILOG = Text.from_markup(
|
|
@@ -52,7 +52,7 @@ def ensure_node_installed():
|
|
|
52
52
|
npx_cmd = shutil.which("npx")
|
|
53
53
|
|
|
54
54
|
if node_cmd and npm_cmd and npx_cmd:
|
|
55
|
-
result = subprocess.run(["node", "--version"], capture_output=True, text=True, check=True)
|
|
55
|
+
result = subprocess.run(resolve_executable(["node", "--version"]), capture_output=True, text=True, check=True)
|
|
56
56
|
info(f"Node.js found: {result.stdout.strip()}")
|
|
57
57
|
return node_cmd, npm_cmd, npx_cmd
|
|
58
58
|
|
|
@@ -152,7 +152,9 @@ def opencode_version():
|
|
|
152
152
|
if not shutil.which("opencode"):
|
|
153
153
|
return None
|
|
154
154
|
try:
|
|
155
|
-
result = subprocess.run(
|
|
155
|
+
result = subprocess.run(
|
|
156
|
+
resolve_executable(["opencode", "--version"]), capture_output=True, text=True, timeout=30
|
|
157
|
+
)
|
|
156
158
|
return result.stdout.strip() or "unknown"
|
|
157
159
|
except Exception:
|
|
158
160
|
return "unknown"
|
|
@@ -293,7 +295,7 @@ def verify_mcp_servers():
|
|
|
293
295
|
for name, cmd in _local_mcp_commands():
|
|
294
296
|
try:
|
|
295
297
|
result = subprocess.run(
|
|
296
|
-
cmd,
|
|
298
|
+
resolve_executable(cmd),
|
|
297
299
|
input=init_message,
|
|
298
300
|
capture_output=True,
|
|
299
301
|
text=True,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import shutil
|
|
1
2
|
import subprocess
|
|
2
3
|
import urllib.request
|
|
3
4
|
|
|
@@ -52,9 +53,19 @@ def step(title):
|
|
|
52
53
|
console.rule(f"[step]{title}[/step]", style="step", align="left")
|
|
53
54
|
|
|
54
55
|
|
|
56
|
+
def resolve_executable(cmd):
|
|
57
|
+
cmd = [str(part) for part in cmd]
|
|
58
|
+
if cmd:
|
|
59
|
+
resolved = shutil.which(cmd[0])
|
|
60
|
+
if resolved:
|
|
61
|
+
cmd[0] = resolved
|
|
62
|
+
return cmd
|
|
63
|
+
|
|
64
|
+
|
|
55
65
|
def run_command(cmd, capture=False, check=True, input_text=None, status=None, timeout=None, stdin=None):
|
|
56
66
|
cmd = [str(part) for part in cmd]
|
|
57
67
|
console.print(f"[cmd]$ {' '.join(cmd)}[/cmd]")
|
|
68
|
+
exec_cmd = resolve_executable(cmd)
|
|
58
69
|
|
|
59
70
|
run_kwargs = {"text": True, "input": input_text, "timeout": timeout}
|
|
60
71
|
# subprocess.run rejects passing both `input` and `stdin`. Only attach an
|
|
@@ -66,12 +77,12 @@ def run_command(cmd, capture=False, check=True, input_text=None, status=None, ti
|
|
|
66
77
|
try:
|
|
67
78
|
if status:
|
|
68
79
|
with console.status(f"[info]{status}[/info]", spinner="dots"):
|
|
69
|
-
result = subprocess.run(
|
|
80
|
+
result = subprocess.run(exec_cmd, capture_output=True, **run_kwargs)
|
|
70
81
|
output = (result.stdout or "").strip()
|
|
71
82
|
if output:
|
|
72
83
|
console.print(output)
|
|
73
84
|
else:
|
|
74
|
-
result = subprocess.run(
|
|
85
|
+
result = subprocess.run(exec_cmd, capture_output=capture, **run_kwargs)
|
|
75
86
|
except subprocess.TimeoutExpired as exc:
|
|
76
87
|
console.print(f"[error]command timed out after {timeout}s: {' '.join(cmd)}[/error]")
|
|
77
88
|
if check:
|
evo_cli-0.10.0/evo_cli/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.10.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|