ssh-licco 2.5.1__tar.gz → 2.5.2__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.
- {ssh_licco-2.5.1/ssh_licco.egg-info → ssh_licco-2.5.2}/PKG-INFO +2 -2
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/README.md +1 -1
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/pyproject.toml +1 -1
- {ssh_licco-2.5.1 → ssh_licco-2.5.2/ssh_licco.egg-info}/PKG-INFO +2 -2
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/__init__.py +2 -2
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/security.py +3 -1
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/tests/test_security.py +9 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/LICENSE +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/setup.cfg +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_licco.egg-info/SOURCES.txt +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_licco.egg-info/dependency_links.txt +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_licco.egg-info/entry_points.txt +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_licco.egg-info/requires.txt +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_licco.egg-info/top_level.txt +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/__main__.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/audit_logger.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/batch_executor.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/cli.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/clients/__init__.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/clients/additional_clients.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/clients/factory.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/clients/interface.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/clients/paramiko_client.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/config_manager.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/connection_config.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/connection_pool.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/exceptions.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/executor.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/__init__.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/connect.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/context.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/docker.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/execute.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/file_transfer.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/host.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/key.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/process.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/schemas.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/session.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/handlers/utils.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/key_manager.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/logging_config.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/server.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/service.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/session_manager.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/tunnel.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/ssh_mcp/watchdog.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/tests/test_config_manager.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/tests/test_key_manager.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/tests/test_server.py +0 -0
- {ssh_licco-2.5.1 → ssh_licco-2.5.2}/tests/test_session_manager.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ssh-licco
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.2
|
|
4
4
|
Summary: SSH Model Context Protocol Server - Enable SSH functionality for AI models
|
|
5
5
|
Author-email: SSH LICCO Team <contact@ssh-licco.dev>
|
|
6
6
|
License: MIT
|
|
@@ -622,7 +622,7 @@ ssh-licco 的核心依赖是:
|
|
|
622
622
|
|
|
623
623
|
| 指标 | 状态 |
|
|
624
624
|
|------|------|
|
|
625
|
-
| **测试用例** |
|
|
625
|
+
| **测试用例** | 424 passed, 0 skipped |
|
|
626
626
|
| **覆盖率** | 16 个源模块全覆盖 |
|
|
627
627
|
| **测试框架** | pytest + pytest-asyncio |
|
|
628
628
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ssh-licco
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.2
|
|
4
4
|
Summary: SSH Model Context Protocol Server - Enable SSH functionality for AI models
|
|
5
5
|
Author-email: SSH LICCO Team <contact@ssh-licco.dev>
|
|
6
6
|
License: MIT
|
|
@@ -622,7 +622,7 @@ ssh-licco 的核心依赖是:
|
|
|
622
622
|
|
|
623
623
|
| 指标 | 状态 |
|
|
624
624
|
|------|------|
|
|
625
|
-
| **测试用例** |
|
|
625
|
+
| **测试用例** | 424 passed, 0 skipped |
|
|
626
626
|
| **覆盖率** | 16 个源模块全覆盖 |
|
|
627
627
|
| **测试框架** | pytest + pytest-asyncio |
|
|
628
628
|
|
|
@@ -949,7 +949,9 @@ def generate_backup_command(targets: list[str]) -> str:
|
|
|
949
949
|
def format_backup_prompt(command: str, targets: list[str]) -> str:
|
|
950
950
|
"""生成备份确认提示文案。"""
|
|
951
951
|
targets_str = ", ".join(targets)
|
|
952
|
-
|
|
952
|
+
# rmdir 删除的是目录但非递归;rm -r/rf 属于递归删除。
|
|
953
|
+
operation_type = "目录删除操作" if command.lstrip().startswith("rmdir") else "递归删除操作"
|
|
954
|
+
return f"""⚠️ 检测到{operation_type}
|
|
953
955
|
|
|
954
956
|
📋 将要执行的命令:
|
|
955
957
|
{command}
|
|
@@ -271,3 +271,12 @@ def test_format_backup_prompt_mentions_backup_before_delete() -> None:
|
|
|
271
271
|
assert "backup_before_delete=true" in prompt
|
|
272
272
|
assert "backup_before_delete=false" in prompt
|
|
273
273
|
assert "./data" in prompt
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
def test_format_backup_prompt_for_rmdir() -> None:
|
|
277
|
+
"""rmdir 的提示文案应使用“检测到目录删除操作”。"""
|
|
278
|
+
from ssh_mcp.security import format_backup_prompt
|
|
279
|
+
prompt = format_backup_prompt("rmdir ./empty_dir", ["./empty_dir"])
|
|
280
|
+
assert "检测到目录删除操作" in prompt
|
|
281
|
+
assert "检测到递归删除操作" not in prompt
|
|
282
|
+
assert "backup_before_delete=true" in prompt
|
|
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
|