nonoka-cli 0.2.13__tar.gz → 0.2.14__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.
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/PKG-INFO +6 -5
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/README.md +5 -4
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/pyproject.toml +1 -1
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/__init__.py +1 -1
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/test_install_script.py +56 -2
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/.gitignore +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/LICENSE +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/NOTICE +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/__main__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/benchmark/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/benchmark/harbor.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/benchmark/swe_bench.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/benchmark/swe_environment.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/benchmark/swe_runner.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/benchmark/watchdog.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/bridge/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/bridge/events.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/bridge/handler.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/bridge/nonoka_tools.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/bridge/protocol.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/bridge/server.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/cli.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/benchmark_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/config_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/doctor_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/eval_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/logs_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/opencode_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/plugin_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/run_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/commands/sessions_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/config/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/config/loader.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/config/manager.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/config/models.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/agent_factory.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/context.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/context_trimmer.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/git_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/mcp_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/namespaces.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/operational_signals.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/orchestrator.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/plugin_manifest.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/plugin_manifest_converter.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/project_agents.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/prompt_builder.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/repo_map_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/run_evidence.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/runner_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/scorecard.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/semantic_cache.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/session_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/task_state.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/tool_output_policy.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/core/tool_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/mcp/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/mcp/manager.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/mcp/models.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/safety/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/safety/preflight.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/safety/sandbox.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/sessions/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/sessions/manager.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/sessions/models.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/skills/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/tools/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/tools/builtins/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/tools/builtins/agent_tools.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/tools/builtins/file_tools.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/tools/loader.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/utils/__init__.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/utils/errors.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/utils/logging.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/src/nonoka_cli/utils/trace_logger.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/conftest.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/fixtures/bridge_external_capabilities.json +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/integration/test_server_external_capabilities.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/integration/test_watchdog_process_group.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/benchmark/test_harbor.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/benchmark/test_swe_environment.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/benchmark/test_watchdog.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/bridge/test_events.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/bridge/test_handler.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/bridge/test_nonoka_tools.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/bridge/test_package.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/bridge/test_protocol.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/bridge/test_server.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_benchmark_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_cli_entrypoint.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_config_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_doctor_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_eval_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_logs_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_opencode_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_plugin_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_run_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/commands/test_swe_bench_cmd.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/config/test_loader.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/config/test_models.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_agent_factory.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_context_trimmer.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_git_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_operational_signals.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_orchestrator.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_plugin_manifest.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_plugin_manifest_converter.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_project_agents.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_prompt_builder.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_repo_map_service.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_safety_policy.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_scorecard.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_semantic_cache.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_task_state.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/core/test_tool_output_policy.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/safety/test_preflight.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/sessions/test_manager.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/tools/test_file_tools.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/utils/test_logging.py +0 -0
- {nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/unit/utils/test_trace_logger.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nonoka-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.14
|
|
4
4
|
Summary: OpenCode backend for the Nonoka Agent framework
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -43,7 +43,7 @@ tool execution and human-in-the-loop (HITL) approval using its native tools.
|
|
|
43
43
|
The easiest way to get nonoka + OpenCode is the one-line installer:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
|
-
curl -fsSL https://
|
|
46
|
+
curl -fsSL https://raw.githubusercontent.com/fyerfyer/Nonoka-cli/main/install.sh | bash
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
The installer will:
|
|
@@ -89,8 +89,9 @@ The legacy `nonoka-cli` executable remains available for compatibility.
|
|
|
89
89
|
`nonoka-cli` automatically loads `~/.config/nonoka/.env` and `./.env` on startup,
|
|
90
90
|
so you don't need to `export` every time if you save the key in `.env`.
|
|
91
91
|
|
|
92
|
-
>
|
|
93
|
-
>
|
|
92
|
+
> The installer uses `uv` by default when it is available and falls back to
|
|
93
|
+
> the isolated environment's pip. Pass `--pip` to explicitly select pip, or
|
|
94
|
+
> `--yes` to run non-interactively.
|
|
94
95
|
|
|
95
96
|
For a non-interactive custom location, use flags (environment variables with
|
|
96
97
|
the same names are also supported):
|
|
@@ -163,7 +164,7 @@ Example output:
|
|
|
163
164
|
|
|
164
165
|
```
|
|
165
166
|
nonoka-cli doctor
|
|
166
|
-
✓ nonoka-cli 0.2.
|
|
167
|
+
✓ nonoka-cli 0.2.14
|
|
167
168
|
✓ Python 3.11
|
|
168
169
|
✓ opencode 1.18.2
|
|
169
170
|
✓ provider nonoka-opencode-provider@0.2.17
|
|
@@ -14,7 +14,7 @@ tool execution and human-in-the-loop (HITL) approval using its native tools.
|
|
|
14
14
|
The easiest way to get nonoka + OpenCode is the one-line installer:
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
curl -fsSL https://
|
|
17
|
+
curl -fsSL https://raw.githubusercontent.com/fyerfyer/Nonoka-cli/main/install.sh | bash
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
The installer will:
|
|
@@ -60,8 +60,9 @@ The legacy `nonoka-cli` executable remains available for compatibility.
|
|
|
60
60
|
`nonoka-cli` automatically loads `~/.config/nonoka/.env` and `./.env` on startup,
|
|
61
61
|
so you don't need to `export` every time if you save the key in `.env`.
|
|
62
62
|
|
|
63
|
-
>
|
|
64
|
-
>
|
|
63
|
+
> The installer uses `uv` by default when it is available and falls back to
|
|
64
|
+
> the isolated environment's pip. Pass `--pip` to explicitly select pip, or
|
|
65
|
+
> `--yes` to run non-interactively.
|
|
65
66
|
|
|
66
67
|
For a non-interactive custom location, use flags (environment variables with
|
|
67
68
|
the same names are also supported):
|
|
@@ -134,7 +135,7 @@ Example output:
|
|
|
134
135
|
|
|
135
136
|
```
|
|
136
137
|
nonoka-cli doctor
|
|
137
|
-
✓ nonoka-cli 0.2.
|
|
138
|
+
✓ nonoka-cli 0.2.14
|
|
138
139
|
✓ Python 3.11
|
|
139
140
|
✓ opencode 1.18.2
|
|
140
141
|
✓ provider nonoka-opencode-provider@0.2.17
|
|
@@ -20,7 +20,18 @@ def _fake_environment(tmp_path: Path) -> tuple[dict[str, str], Path]:
|
|
|
20
20
|
fake_bin = tmp_path / "bin"
|
|
21
21
|
fake_bin.mkdir()
|
|
22
22
|
log = tmp_path / "calls.log"
|
|
23
|
-
_command(
|
|
23
|
+
_command(
|
|
24
|
+
fake_bin / "python3",
|
|
25
|
+
'if [ "${1:-}" = "-c" ]; then\n'
|
|
26
|
+
' printf "3.13\\n"\n'
|
|
27
|
+
'elif [ "${1:-}" = "-m" ] && [ "${2:-}" = "venv" ]; then\n'
|
|
28
|
+
' mkdir -p "$3/bin"\n'
|
|
29
|
+
' cp "$0" "$3/bin/python"\n'
|
|
30
|
+
' cp "$(dirname "$0")/nonoka" "$3/bin/nonoka"\n'
|
|
31
|
+
'elif [ "${1:-}" = "-m" ] && [ "${2:-}" = "pip" ]; then\n'
|
|
32
|
+
' printf "python-pip:%s\\n" "${*:3}" >> "$NONOKA_TEST_LOG"\n'
|
|
33
|
+
'fi\n',
|
|
34
|
+
)
|
|
24
35
|
_command(
|
|
25
36
|
fake_bin / "uv",
|
|
26
37
|
'printf "uv:%s\\n" "$*" >> "$NONOKA_TEST_LOG"\n'
|
|
@@ -87,7 +98,7 @@ def test_install_dir_flags_expand_home_and_drive_all_commands(tmp_path: Path) ->
|
|
|
87
98
|
home = Path(env["HOME"])
|
|
88
99
|
calls = log.read_text()
|
|
89
100
|
assert f"uv:venv {home}/chosen-install/.venv --python python3" in calls
|
|
90
|
-
assert "uv:pip install --upgrade nonoka-cli" in calls
|
|
101
|
+
assert f"uv:pip install --python {home}/chosen-install/.venv/bin/python --upgrade nonoka-cli" in calls
|
|
91
102
|
assert f"nonoka:config init --yes --config {home}/chosen-config/config.yaml" in calls
|
|
92
103
|
assert f"nonoka:init --config {home}/chosen-config/config.yaml" in calls
|
|
93
104
|
assert f"npm prefix: {home}/chosen-npm" in result.stdout
|
|
@@ -112,6 +123,49 @@ def test_environment_variables_select_noninteractive_layout(tmp_path: Path) -> N
|
|
|
112
123
|
assert f"npm prefix: {tmp_path}/env-npm" in result.stdout
|
|
113
124
|
|
|
114
125
|
|
|
126
|
+
def test_uv_is_the_default_and_targets_the_created_environment(tmp_path: Path) -> None:
|
|
127
|
+
env, log = _fake_environment(tmp_path)
|
|
128
|
+
install_dir = tmp_path / "default-uv"
|
|
129
|
+
|
|
130
|
+
result = _run(
|
|
131
|
+
tmp_path,
|
|
132
|
+
"--yes",
|
|
133
|
+
"--no-opencode",
|
|
134
|
+
"--install-dir",
|
|
135
|
+
str(install_dir),
|
|
136
|
+
env=env,
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
assert result.returncode == 0, result.stderr
|
|
140
|
+
calls = log.read_text()
|
|
141
|
+
assert f"uv:venv {install_dir}/.venv --python python3" in calls
|
|
142
|
+
assert (
|
|
143
|
+
f"uv:pip install --python {install_dir}/.venv/bin/python --upgrade nonoka-cli"
|
|
144
|
+
in calls
|
|
145
|
+
)
|
|
146
|
+
assert "python-pip:" not in calls
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def test_pip_mode_is_pinned_to_the_created_environment(tmp_path: Path) -> None:
|
|
150
|
+
env, log = _fake_environment(tmp_path)
|
|
151
|
+
install_dir = tmp_path / "explicit-pip"
|
|
152
|
+
|
|
153
|
+
result = _run(
|
|
154
|
+
tmp_path,
|
|
155
|
+
"--yes",
|
|
156
|
+
"--pip",
|
|
157
|
+
"--no-opencode",
|
|
158
|
+
"--install-dir",
|
|
159
|
+
str(install_dir),
|
|
160
|
+
env=env,
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
assert result.returncode == 0, result.stderr
|
|
164
|
+
calls = log.read_text()
|
|
165
|
+
assert "python-pip:install --upgrade nonoka-cli" in calls
|
|
166
|
+
assert f"uv:venv {install_dir}/.venv --python python3" not in calls
|
|
167
|
+
|
|
168
|
+
|
|
115
169
|
def test_interactive_prompts_explain_each_directory(tmp_path: Path) -> None:
|
|
116
170
|
env, log = _fake_environment(tmp_path)
|
|
117
171
|
selected_install = tmp_path / "interactive-install"
|
|
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
|
|
File without changes
|
|
File without changes
|
{nonoka_cli-0.2.13 → nonoka_cli-0.2.14}/tests/integration/test_server_external_capabilities.py
RENAMED
|
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
|