插件系统info修复,见changes.md

This commit is contained in:
UnCLAS-Prommer
2025-07-10 16:46:37 +08:00
parent d5cd0e8538
commit ab61b1bb22
15 changed files with 99 additions and 68 deletions

View File

@@ -1,6 +1,7 @@
from abc import ABC, abstractmethod
from typing import Tuple, Optional
from src.common.logger import get_logger
from src.chat.message_receive.chat_stream import ChatStream
from src.plugin_system.base.component_types import ActionActivationType, ChatMode, ActionInfo, ComponentType
from src.plugin_system.apis import send_api, database_api, message_api
import time
@@ -31,7 +32,7 @@ class BaseAction(ABC):
reasoning: str,
cycle_timers: dict,
thinking_id: str,
chat_stream=None,
chat_stream: ChatStream = None,
log_prefix: str = "",
shutting_down: bool = False,
plugin_config: dict = None,

View File

@@ -1,5 +1,5 @@
from abc import ABC, abstractmethod
from typing import Dict, List, Type, Optional, Any, Union
from typing import Dict, List, Type, Any, Union
import os
import inspect
import toml
@@ -29,18 +29,41 @@ class BasePlugin(ABC):
"""
# 插件基本信息(子类必须定义)
plugin_name: str = "" # 插件内部标识符(如 "hello_world_plugin"
enable_plugin: bool = False # 是否启用插件
dependencies: List[str] = [] # 依赖的其他插件
python_dependencies: List[PythonDependency] = [] # Python包依赖
config_file_name: Optional[str] = None # 配置文件名
@property
@abstractmethod
def plugin_name(self) -> str:
return "" # 插件内部标识符(如 "hello_world_plugin"
@property
@abstractmethod
def enable_plugin(self) -> bool:
return True # 是否启用插件
@property
@abstractmethod
def dependencies(self) -> List[str]:
return [] # 依赖的其他插件
@property
@abstractmethod
def python_dependencies(self) -> List[PythonDependency]:
return [] # Python包依赖
@property
@abstractmethod
def config_file_name(self) -> str:
return "" # 配置文件名
# manifest文件相关
manifest_file_name: str = "_manifest.json" # manifest文件名
manifest_data: Dict[str, Any] = {} # manifest数据
# 配置定义
config_schema: Dict[str, Union[Dict[str, ConfigField], str]] = {}
@property
@abstractmethod
def config_schema(self) -> Dict[str, Union[Dict[str, ConfigField], str]]:
return {}
config_section_descriptions: Dict[str, str] = {}
def __init__(self, plugin_dir: str = None):
@@ -70,7 +93,8 @@ class BasePlugin(ABC):
# 创建插件信息对象
self.plugin_info = PluginInfo(
name=self.display_name, # 使用显示名称
name=self.plugin_name,
display_name=self.display_name,
description=self.plugin_description,
version=self.plugin_version,
author=self.plugin_author,

View File

@@ -126,6 +126,7 @@ class CommandInfo(ComponentInfo):
class PluginInfo:
"""插件信息"""
display_name: str # 插件显示名称
name: str # 插件名称
description: str # 插件描述
version: str = "1.0.0" # 插件版本