feat(system):优化后端

1.新增后端测试
2.增加了后端的加密
3.增加了i18n(国际化)
This commit is contained in:
2026-05-31 15:39:34 +00:00
parent affe460180
commit 99520c69d7
118 changed files with 8174 additions and 1491 deletions
+93
View File
@@ -0,0 +1,93 @@
"""``GlobalToolManager`` 在真实仓库目录上的扫描结果。
期望(基于现有 plugin 目录):
- approval / file_readeris_system=True,进 system toolset
- tavily_searchis_system=Falsecategory=search,进 third_party
"""
import pytest
from kilostar.core.global_state_machine.tool_manager import GlobalToolManager
@pytest.fixture(scope="module")
def manager() -> GlobalToolManager:
return GlobalToolManager()
def test_metadata_contains_known_plugins(manager: GlobalToolManager):
names = set(manager.tool_metadata.keys())
assert {"approval", "file_reader", "tavily_search"} <= names
def test_system_and_third_party_classification(manager: GlobalToolManager):
sys_tools = {m["name"] for m in manager.get_system_tools()}
tp_tools = {m["name"] for m in manager.get_third_party_tools()}
assert {"approval", "file_reader"} <= sys_tools
assert "tavily_search" in tp_tools
assert sys_tools.isdisjoint(tp_tools)
def test_get_tools_by_category_returns_correct_buckets(manager: GlobalToolManager):
by_system = {m["name"] for m in manager.get_tools_by_category("system")}
by_search = {m["name"] for m in manager.get_tools_by_category("search")}
assert {"approval", "file_reader"} <= by_system
assert "tavily_search" in by_search
def test_is_third_party_tool(manager: GlobalToolManager):
assert manager.is_third_party_tool("tavily_search") is True
assert manager.is_third_party_tool("approval") is False
assert manager.is_third_party_tool("nonexistent") is False
def test_get_toolsets_for_scope_returns_function_toolsets(manager: GlobalToolManager):
from pydantic_ai.toolsets import FunctionToolset
sets = manager.get_toolsets_for_scope("control_node")
assert sets, "control_node 应该至少有 system toolset"
for ts in sets:
assert isinstance(ts, FunctionToolset)
def test_system_toolsets_have_correct_ids(manager: GlobalToolManager):
sets = manager.get_toolsets_for_scope("consciousness_node")
ids = {getattr(ts, "id", None) for ts in sets}
for tid in ids:
assert tid.startswith("system::") or tid.startswith("custom::")
def test_no_mcp_category_in_metadata_for_local_plugins(manager: GlobalToolManager):
for m in manager.tool_metadata.values():
if m["category"] == "mcp":
assert m["name"] not in manager._third_party_funcs
for scope_funcs in manager._tool_funcs.values():
assert m["name"] not in scope_funcs
def test_unknown_scope_returns_only_default_and_custom(manager: GlobalToolManager):
sets = manager.get_toolsets_for_scope("not_a_real_scope")
for ts in sets:
tid = getattr(ts, "id", "")
assert tid.endswith("::default") or tid.startswith("custom::")
def test_rebuild_custom_toolsets(manager: GlobalToolManager):
custom_defs = {
"grp1": {"tools": ["tavily_search"], "name": "search-group"},
}
manager.rebuild_custom_toolsets(custom_defs)
assert "grp1" in manager._custom_toolsets
sets = manager.get_toolsets_for_scope("default")
custom_ids = [getattr(ts, "id", "") for ts in sets if "custom::" in getattr(ts, "id", "")]
assert any("grp1" in cid for cid in custom_ids)
manager.rebuild_custom_toolsets({})
assert manager._custom_toolsets == {}
def test_get_personal_tools_compat(manager: GlobalToolManager):
assert manager.get_personal_tools() == manager.get_third_party_tools()
def test_get_non_system_tools_compat(manager: GlobalToolManager):
assert manager.get_non_system_tools() == manager.get_third_party_tools()