minecraft1024a
c9c2de40ee
chore(scripts): 移除过时的一次性脚本
...
移除了两个用于项目重构的一次性脚本:
- `convert_sqlalchemy_models.py`:用于将 SQLAlchemy 模型从旧版 `Column` 语法转换为 `Mapped` 语法。
- `update_prompt_imports.py`:用于批量更新 `Prompt` 类的导入路径。
这些脚本已完成其历史使命,不再需要维护。
同时,对插件加载日志和 manifest 转换脚本进行了小幅改进:
- 插件加载日志现在会显示组件的简短描述,方便快速了解其功能。
- manifest 转换脚本增加了对更多元数据字段(如仓库地址、关键字、分类等)的支持。
2025-10-18 19:22:34 +08:00
minecraft1024a
4f9b31d188
refactor(core): 统一代码风格并移除未使用的导入
...
本次提交主要进行代码风格的统一和现代化改造,具体包括:
- 使用 `|` 联合类型替代 `typing.Optional`,以符合 PEP 604 的现代语法。
- 移除多个文件中未被使用的导入语句,清理代码。
- 调整了部分日志输出的级别,使其更符合调试场景。
- 统一了部分文件的导入顺序和格式。
2025-10-07 20:16:47 +08:00
雅诺狐
6659c60799
refactor(db,plugin): 优化数据库初始化和插件系统类型安全
...
- 重构数据库初始化逻辑,添加防重入保护和更好的错误处理
- 优化插件组件注册系统的类型注解和代码结构
- 简化统计模块异常处理逻辑
- 移除插件管理器中的重载功能以简化代码
- 更新Pyright配置排除内置插件目录
- 修复权限管理器异步方法调用
2025-10-07 16:29:17 +08:00
minecraft1024a
b7a255c4ae
feat(plugin-system): 引入插件权限节点声明式注册机制,解决了issue#24
...
重构了插件权限节点的注册方式,从原先在 `on_plugin_loaded` 钩子中调用 API 的命令式注册,改为通过在插件类中声明 `permission_nodes` 列表的声明式注册。
这一改进有以下优点:
- **简化插件开发**:插件开发者不再需要在代码中手动调用注册函数,只需在类属性中定义权限节点即可,更加直观和简洁。
- **提升核心健壮性**:权限节点的注册逻辑统一由插件管理器在加载时处理,减少了因插件实现不当导致注册失败或遗漏的风险。
- **增强可读性**:所有权限节点集中定义在插件类的顶部,方便快速了解插件所需的权限。
此变更涉及:
- 新增 `PermissionNodeField` 类型用于标准化权限节点定义。
- 在 `PluginBase` 中添加 `permission_nodes` 属性。
- 在 `PluginManager` 中实现插件加载时自动注册权限节点的逻辑。
- 更新 `maizone_refactored` 和 `permission_management` 插件以适应新的声明式注册方式。
2025-10-06 13:26:24 +08:00
sunbiz1024
8f4f7d19af
ruff
2025-10-06 09:38:16 +08:00
minecraft1024a
9d705463ce
ruff fix但指定了--unsafe-fixes
2025-10-05 21:48:32 +08:00
minecraft1024a
7a7f737f71
ruff: 清理代码并规范导入顺序
...
对整个代码库进行了大规模的清理和重构,主要包括:
- 统一并修复了多个文件中的 `import` 语句顺序,使其符合 PEP 8 规范。
- 移除了大量未使用的导入和变量,减少了代码冗余。
- 修复了多处代码风格问题,例如多余的空行、不一致的引号使用等。
- 简化了异常处理逻辑,移除了不必要的 `noqa` 注释。
- 在多个文件中使用了更现代的类型注解语法(例如 `list[str]` 替代 `List[str]`)。
2025-10-05 20:38:56 +08:00
subiz
43fe6046b4
没想到吧,我还是没测试()
...
feat(mcp): 集成MCP SSE协议支持并扩展工具调用能力
新增MCP客户端类型(mcp_ssd),支持通过Model Context Protocol连接外部工具服务器。
更新文档和配置模板,提供完整的MCP接入指南;主程序启动时自动初始化MCP工具提供器,
tool_api 与 tool_use 核心链路新增对MCP工具的检测与调用,实现与既有插件工具的无缝兼容。
同步更新配置模型、模板与帮助文档。
2025-10-05 19:24:57 +08:00
minecraft1024a
2c74b472ab
style: 统一代码风格并进行现代化改进
...
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:
- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。
这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-10-05 13:21:27 +08:00
Windpicker-owo
8e0d1e791b
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 01:29:48 +08:00
Windpicker-owo
624298e1b8
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
...
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-10-05 01:25:52 +08:00
minecraft1024a
3764b3a8a6
refactor(plugin_system): 引入 PluginMetadata 替代 manifest.json
...
将插件元数据定义从外部 `_manifest.json` 文件迁移到插件 `__init__.py` 文件中的 `__plugin_meta__` 变量。此举简化了插件加载流程,减少了文件I/O,并使元数据与插件代码更紧密地耦合。
主要变更:
- 引入 `PluginMetadata` 数据类来标准化插件元数据。
- 插件基类 `PluginBase` 现在直接接收 `PluginMetadata` 对象,不再负责解析 JSON 文件。
- 插件管理器 `PluginManager` 调整加载逻辑,从插件模块的 `__plugin_meta__` 属性获取元数据。
- 删除了 `manifest_utils.py` 及其相关的验证和版本比较逻辑,简化了依赖关系。
- 更新了所有内置插件,以采用新的元数据定义方式,并删除了它们各自的 `_manifest.json` 文件。
BREAKING CHANGE: 插件加载机制已改变。所有插件必须在其 `__init__.py` 中定义一个 `__plugin_meta__` 变量,该变量是 `PluginMetadata` 类的实例,并移除旧的 `_manifest.json` 文件。
2025-10-04 16:17:03 +08:00
John Richard
7923eafef3
re-style: 格式化代码
2025-10-02 20:26:01 +08:00
John Richard
ecb02cae31
style: 格式化代码
2025-10-02 19:38:39 +08:00
Windpicker-owo
3d59024c3c
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-01 04:56:41 +08:00
Windpicker-owo
dc39fd26c7
feat(memory): 重构记忆系统并移除插件热重载
...
重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。
主要变更:
- 引入全局记忆作用域,简化记忆管理
- 实现记忆指纹去重,避免重复记忆存储
- 新增查询规划器,支持语义查询规划和记忆类型过滤
- 优化多阶段检索,增加语义重排和权重配置
- 改进向量存储,支持嵌入维度自动解析和查询向量生成
- 增强元数据索引,支持主体索引和更新操作
- 记忆构建器支持多主体和自然语言展示
- 移除watchdog依赖和插件热重载模块
- 更新配置模板,简化记忆配置项
BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
2025-10-01 04:56:32 +08:00
雅诺狐
7d3f418768
二步工具与action
2025-09-30 22:40:10 +08:00
Windpicker-owo
fd76e36320
refactor(chat): 迁移数据库操作为异步模式并修复相关调用
...
将同步数据库操作全面迁移为异步模式,主要涉及:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 修复相关异步调用链,确保 await 正确传递
- 优化消息管理器、上下文管理器等核心组件的异步处理
- 移除同步的 person_id 获取方法,避免协程对象传递问题
修复 deepcopy 在 StreamContext 中的序列化问题,跳过不可序列化的 asyncio.Task 对象
删除无用的测试文件和废弃的插件清单文件
2025-09-28 20:40:46 +08:00
Windpicker-owo
ff24bd8148
Merge afc branch into dev, prioritizing afc changes and migrating database async modifications from dev
2025-09-27 23:37:40 +08:00
minecraft1024a
f968d134c7
fix(plugin): 移除插件配置同步调用并增强错误日志
...
在插件管理器中,移除了加载插件时对已废弃的配置同步方法的调用。
同时,为了更好地排查 `maizone` 插件发送动态失败的问题,增强了其命令的异常日志,现在会额外记录异常类型。
2025-09-27 14:05:05 +08:00
minecraft1024a
900b9af443
删除插件配置文件的双向迁移逻辑
2025-09-26 22:00:07 +08:00
minecraft1024a
b6792149f9
fix(permission): 将权限管理器初始化改为异步
...
`PermissionManager` 的 `__init__` 方法中包含了同步的数据库初始化操作,这会在异步环境中阻塞事件循环。
本次提交将数据库连接的逻辑移至一个新的异步方法 `initialize()` 中,并在应用启动时显式调用和等待它。这确保了数据库的初始化过程是异步执行的,避免了潜在的性能问题。
BREAKING CHANGE: `PermissionManager` 实例化后需要手动调用并等待 `initialize()` 方法来完成数据库初始化。
2025-09-23 14:08:54 +08:00
Windpicker-owo
9a97614025
fix
2025-09-23 00:19:10 +08:00
Windpicker-owo
e1683ee9e6
feat: 在插件系统中添加 Chatter 组件
...
- 在 component_types.py 中新增了用于 CHATTER 的 ComponentType。
- 实现了 ChatterInfo 类,用于存储 Chatter 组件的相关信息。
- 增强了 ComponentRegistry,以支持 Chatter 组件的注册与管理。
- 创建了 ChatterManager,用于管理 Chatter 实例并处理聊天流。
- 开发了 BaseChatter 抽象类,用于定义 Chatter 的行为规范。
- 实现了 AffinityChatter,作为具备兴趣评分与关系构建功能的具体 Chatter 组件。
- 添加了一个内置的 Chatter 插件,并附带完整文档与使用示例。
- 更新了 PluginManager,在插件概览中加入 Chatter 组件的统计信息。
2025-09-23 00:17:32 +08:00
Windpicker-owo
444f1ca315
ruff,私聊视为提及了bot
2025-09-20 22:34:22 +08:00
雅诺狐
832743249d
refactor(db): 修正SQLAlchemy异步操作调用方式
...
移除session.add()方法的不必要await调用,修正异步数据库操作模式。主要变更包括:
- 将 `await session.add()` 统一改为 `session.add()`
- 修正部分函数调用为异步版本(如消息查询函数)
- 重构SQLAlchemyTransaction为完全异步实现
- 重写napcat_adapter_plugin数据库层以符合异步规范
- 添加aiomysql和aiosqlite依赖支持
2025-09-20 17:26:28 +08:00
雅诺狐
55717669dd
refactor(db): 将数据库操作异步化
...
- 将所有 session.add() 改为 await session.add()
- 将所有 session.commit() 改为 await session.commit()
- 将 session.refresh() 改为 await session.refresh()
2025-09-20 14:35:31 +08:00
tt-P607
8d9aa4fb9e
refactor(db): 重构数据库交互为异步模式
...
为了提升性能并与项目整体的异步架构保持一致,对核心数据库交互模块进行了异步化重构。
主要修改内容包括:
- 将 `PermissionManager` 中的所有数据库操作从同步改为异步,以避免阻塞事件循环。
- 使用 `async_sessionmaker` 和 `async with session` 替代原有的同步会话管理。
- 将 SQLAlchemy 查询语法更新为异步兼容的 `await session.execute(select(...))` 模式。
- 相应地,调用链中依赖数据库操作的多个方法也已更新为 `async` 函数。
2025-09-20 13:07:06 +08:00
雅诺狐
898208f425
perf(methods): 通过移除不必要的 self 参数优化方法签名
...
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-09-20 10:55:06 +08:00
Windpicker-owo
02a636a8ce
plugin_name改为permission_group
2025-09-07 19:03:42 +08:00
Windpicker-owo
742b47c099
fix:修复插件组件无法正确获取插件配置的问题
2025-09-06 20:39:59 +08:00
Windpicker-owo
41dc58d4fb
继续尝试迁移,但是组件获取插件配置存在问题
2025-09-06 05:45:00 +08:00
Windpicker-owo
90cbd5773e
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-06 00:11:31 +08:00
Windpicker-owo
c9b712d8fa
refactor(prompt): 重构并统一提示词系统
...
- 删除旧的智能提示词系统(smart_prompt.py)和相关参数模块(prompt_parameters.py)
- 将 prompt_builder.py 重命名为 prompt.py 并精简功能
- 更新所有模块的导入路径从 `src.chat.utils.prompt_builder` 到 `src.chat.utils.prompt`
- 统一提示词构建接口,使用新的 PromptContext 替代 SmartPromptParameters
- 移除重复和冗余代码,简化系统架构
BREAKING CHANGE: 旧的 SmartPrompt 系统已被完全移除,所有相关模块需要改用新的统一 Prompt 系统
2025-09-06 00:10:54 +08:00
minecraft1024a
e1fbdaad8c
rrrrrrrrrrrrrruuuuuuuuuuuuuuuuuuuuffffffffffffffffffffffffff
2025-09-05 21:01:32 +08:00
minecraft1024a
513757a8ee
chore: format code and remove redundant blank lines
...
This commit applies automated code formatting across the project. The changes primarily involve removing unnecessary blank lines and ensuring consistent code style, improving readability and maintainability without altering functionality.
2025-09-05 20:58:03 +08:00
tt-P607
da4dd63fd3
feat(plugin_system): 实现 on_plugin_loaded 异步钩子
...
在插件成功加载和注册后,添加一个新的生命周期钩子 `on_plugin_loaded`。
此钩子允许插件在加载完成后执行异步的初始化任务,例如建立数据库连接、加载数据或启动后台服务。通过使用 `asyncio.create_task`,确保了钩子的执行不会阻塞插件的加载流程,从而提高了系统的响应性和健壮性。
2025-09-01 11:38:20 +08:00
Windpicker-owo
30e66d5938
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-31 20:56:35 +08:00
Windpicker-owo
8149731925
修复代码格式和文件名大小写问题
2025-08-31 20:50:17 +08:00
Windpicker-owo
2dee32e5ad
feat(chat): 引入SmartPrompt智能提示构建系统
...
重构DefaultReplyer对话提示构建逻辑,统一使用SmartPrompt抽象组件替代原冗长的模板选择与参数拼装流程。将原160+行的分支式模板处理逻辑压缩为统一的SmartPrompt.build_prompt()调用,实现提示构建策略的可插拔与可维护性提升。
- 新增 src.chat.utils.smart_prompt 模块(SmartPrompt类及参数封装)
- 移除旧的normal/s4u分支硬编码,由SmartPrompt内部按需适配
- 事件管理器仅补充HandlerResult显式导入,无功能变动
2025-08-31 15:33:16 +08:00
minecraft1024a
cc2d8a89ee
chore: 调整日志级别和更新默认配置
...
- 将事件注册成功的日志级别从INFO调整为DEBUG,以减少不必要的日志输出。
- 修正`maizone_refactored`插件中图片目录路径的表示方法,使用`.as_posix()`确保跨平台兼容性。
- 将备用Cookie获取服务的默认主机地址从一个具体的IP(`172.20.130.55`)更改为`127.0.0.1`,这更符合本地开发的通用配置。
2025-08-31 12:40:50 +08:00
minecraft1024a
901a3f0ed5
refactor(plugin_system): 重构插件配置同步逻辑
...
将插件配置同步逻辑重构为更清晰、更健壮的实现。此更改将复杂的同步过程分解为两个独立的、职责单一的方法:
- `_sync_central_config_to_plugin`: 专注于将中央配置单向同步到插件目录。
- `_is_file_content_identical`: 提供一个高效的文件内容比较方法,通过MD5哈希值避免不必要的IO操作。
这种重构提高了代码的可读性、可维护性,并增强了错误处理能力。同时,代码库从 `os.path` 迁移到了现代的 `pathlib`,以实现更简洁、更面向对象的路径操作。
2025-08-30 20:57:00 +08:00
minecraft1024a
589638200f
紧急修复一下我写出来的问题,修复同步插件配置文件时配置文件路径错误的问题
2025-08-30 20:43:31 +08:00
Windpicker-owo
7b765d5726
ruff
2025-08-30 19:59:54 +08:00
minecraft1024a
7cb5c3844e
refactor(plugin): 优化插件配置加载与同步机制
...
- 移除全局插件配置开关 `plugins.centralized_config`。
- 简化 `PluginBase` 的配置加载逻辑,不再使用模板文件,而是直接在中央配置目录生成默认配置。
- 在 `PluginManager` 中增加配置同步逻辑,在加载插件时,实现插件目录与中央配置目录之间的双向同步,确保配置一致性。
- 更新 `bot_config_template.toml`,移除已废弃的 `[plugins]` 配置项并提升版本号。
2025-08-30 11:21:26 +08:00
minecraft1024a
1bad63fcbd
ruff ci
2025-08-29 18:34:13 +08:00
雅诺狐
f33bb57c75
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-29 13:48:01 +08:00
雅诺狐
865159ece3
Refactor plugin system and update permission checks
...
Removed the permission_example plugin and its files. Refactored plugin hot reload and manager logic for more robust reloading, deep reload, and cache clearing, including improved debounce and plugin name resolution. Updated MaiZone plugin and actions to use the new permission API for feed read/send actions, and registered new permission nodes. Enhanced plugin management commands with PlusCommand, improved help, and added hot reload and cache management commands.
2025-08-29 13:47:54 +08:00
Windpicker-owo
8c660934d0
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-28 21:05:17 +08:00
minecraft1024a
add68fcf58
docs: remove outdated and unused documentation files
...
A significant number of documentation files, including design documents, user guides, and old images, have been removed to clean up the repository and eliminate outdated information. This reduces clutter and ensures that the documentation accurately reflects the current state of the project.
Key removals include:
- `memory_system_design_v3.md`
- `model_configuration_guide.md`
- `PERMISSION_SYSTEM.md`
- `CONTRIBUTE.md`
- `vector_db_usage_guide.md
2025-08-28 20:41:44 +08:00