feat(plugins): discover packages and persist state

This commit is contained in:
2026-06-16 11:40:31 +08:00
parent 7020f2d67f
commit 41b45e0423
15 changed files with 1127 additions and 0 deletions

View File

@ -16,6 +16,7 @@ from .schema import (
ChannelConfig,
EmbeddingConfig,
MCPServerConfig,
PluginsConfig,
ProviderConfig,
ToolsConfig,
)
@ -73,6 +74,7 @@ def load_config(
providers=_parse_providers(data.get("providers")),
embedding=_parse_embedding(data),
tools=_parse_tools(data.get("tools")),
plugins=_parse_plugins(data.get("plugins")),
authz=_parse_authz(data.get("authz")),
channels=_parse_channels(data.get("channels")),
backend_identity=_parse_backend_identity(data.get("backend_identity") or data.get("backendIdentity")),
@ -188,6 +190,17 @@ def _parse_tools(raw: Any) -> ToolsConfig:
)
def _parse_plugins(raw: Any) -> PluginsConfig:
data = _as_dict(raw)
return PluginsConfig(
search_paths=_string_list(data.get("searchPaths") or data.get("search_paths")),
auto_sync=_bool(
data.get("autoSync") if "autoSync" in data else data.get("auto_sync"),
default=True,
),
)
def _parse_authz(raw: Any) -> AuthzConfig:
data = _as_dict(raw)
return AuthzConfig(