evo-cli 0.13.0__tar.gz → 0.13.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.13.0 → evo_cli-0.13.1}/PKG-INFO +1 -1
- evo_cli-0.13.1/evo_cli/VERSION +1 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/opencode.py +10 -5
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli.egg-info/PKG-INFO +1 -1
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_opencode.py +32 -0
- evo_cli-0.13.0/evo_cli/VERSION +0 -1
- {evo_cli-0.13.0 → evo_cli-0.13.1}/Containerfile +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/HISTORY.md +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/LICENSE +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/MANIFEST.in +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/README.md +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/__init__.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/__main__.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/base.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/cli.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/__init__.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/claude_code.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/cloudflare.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/cred.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/download.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/fix_claude.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/gdrive.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/gh.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/harness.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/hwid.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/hwid_reset.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/localproxy.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/mcp.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/miniconda.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/netcheck.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/plantuml.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/site2s.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/ssh.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/sysmon.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/tts.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/update.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/commands/wifi.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/console.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/__init__.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/doctor.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/google_oauth.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/migrate.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/oauth_flow.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/registry.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/store.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/credentials/sync.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/mcp_registry.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/__init__.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/chunking.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/core.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/creds.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/errors.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/http.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/openai.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/player.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli/tts/vbee.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli.egg-info/SOURCES.txt +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli.egg-info/dependency_links.txt +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli.egg-info/entry_points.txt +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli.egg-info/requires.txt +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/evo_cli.egg-info/top_level.txt +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/pyproject.toml +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/setup.cfg +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/__init__.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_claude_code.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_cli.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_console.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_cred.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_download.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_fix_claude.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_gh.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_harness.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_mcp.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_plantuml.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_sysmon.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_tts.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_update.py +0 -0
- {evo_cli-0.13.0 → evo_cli-0.13.1}/tests/test_wifi.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.13.1
|
|
@@ -42,14 +42,19 @@ def is_windows():
|
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
def get_global_config_dir():
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return home / ".config" / "opencode"
|
|
45
|
+
# OpenCode reads ~/.config/opencode on every platform, Windows included - it does
|
|
46
|
+
# not follow the %APPDATA% convention. Writing to AppData produced a file that
|
|
47
|
+
# `opencode mcp list` never saw, so every server evo "added" was silently inert.
|
|
48
|
+
return Path.home() / ".config" / "opencode"
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
def get_global_config_path():
|
|
52
|
-
|
|
52
|
+
directory = get_global_config_dir()
|
|
53
|
+
for name in ("opencode.jsonc", "opencode.json"):
|
|
54
|
+
candidate = directory / name
|
|
55
|
+
if candidate.exists():
|
|
56
|
+
return candidate
|
|
57
|
+
return directory / "opencode.jsonc"
|
|
53
58
|
|
|
54
59
|
|
|
55
60
|
def ensure_node_installed():
|
|
@@ -5,6 +5,7 @@ import pytest
|
|
|
5
5
|
from click.testing import CliRunner
|
|
6
6
|
|
|
7
7
|
from evo_cli.cli import cli
|
|
8
|
+
from evo_cli.commands import opencode
|
|
8
9
|
from evo_cli.commands.opencode import (
|
|
9
10
|
DEFAULT_MCP_SERVERS,
|
|
10
11
|
EXA_ENV_VAR,
|
|
@@ -209,3 +210,34 @@ def test_setup_opencode_global_only(runner, tmp_path, monkeypatch):
|
|
|
209
210
|
result = runner.invoke(cli, ["setup", "opencode", "--global-only", "--project", str(project)])
|
|
210
211
|
assert result.exit_code == 0
|
|
211
212
|
assert not (project / "opencode.json").exists()
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def test_global_config_dir_is_xdg_style_on_every_platform(monkeypatch, tmp_path):
|
|
216
|
+
monkeypatch.setattr(opencode.Path, "home", classmethod(lambda cls: tmp_path))
|
|
217
|
+
for system in ("Windows", "Linux", "Darwin"):
|
|
218
|
+
monkeypatch.setattr(opencode.platform, "system", lambda system=system: system)
|
|
219
|
+
assert opencode.get_global_config_dir() == tmp_path / ".config" / "opencode"
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def test_global_config_path_reuses_an_existing_json_file(monkeypatch, tmp_path):
|
|
223
|
+
monkeypatch.setattr(opencode.Path, "home", classmethod(lambda cls: tmp_path))
|
|
224
|
+
directory = tmp_path / ".config" / "opencode"
|
|
225
|
+
directory.mkdir(parents=True)
|
|
226
|
+
existing = directory / "opencode.json"
|
|
227
|
+
existing.write_text("{}", encoding="utf-8")
|
|
228
|
+
assert opencode.get_global_config_path() == existing
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
def test_global_config_path_prefers_jsonc_when_both_exist(monkeypatch, tmp_path):
|
|
232
|
+
monkeypatch.setattr(opencode.Path, "home", classmethod(lambda cls: tmp_path))
|
|
233
|
+
directory = tmp_path / ".config" / "opencode"
|
|
234
|
+
directory.mkdir(parents=True)
|
|
235
|
+
(directory / "opencode.json").write_text("{}", encoding="utf-8")
|
|
236
|
+
(directory / "opencode.jsonc").write_text("{}", encoding="utf-8")
|
|
237
|
+
assert opencode.get_global_config_path() == directory / "opencode.jsonc"
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def test_global_config_path_defaults_to_jsonc_when_nothing_exists(monkeypatch, tmp_path):
|
|
241
|
+
monkeypatch.setattr(opencode.Path, "home", classmethod(lambda cls: tmp_path))
|
|
242
|
+
expected = tmp_path / ".config" / "opencode" / "opencode.jsonc"
|
|
243
|
+
assert opencode.get_global_config_path() == expected
|
evo_cli-0.13.0/evo_cli/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.13.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
|
|
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
|