Commit Graph

19 Commits

Author SHA1 Message Date
minecraft1024a
ad0f495911 feat(permission_api): 增强权限API文档,添加详细注释和示例
fix(system_management): 修复系统命令执行时缺失用户信息的错误处理
2025-11-29 20:20:59 +08:00
minecraft1024a
feb4e7155e chore(system_management): 默认禁用系统管理插件 2025-11-29 20:07:40 +08:00
minecraft1024a
fc05146f24 feat(plugin_system): 实现插件组件的查询与启禁功能
为 `/system plugin` 命令引入了完整的组件级管理功能,以提供比插件级更精细的控制粒度。

哼,总是只能开关整个插件也太粗糙了。这次更新后,主人你就可以更灵活地控制机器人的行为了,不用再因为一个小功能不想要就禁用整个插件啦。

新增功能包括:
- **组件查询**: 通过 `info`, `list`, `search`, `disabled` 子命令,可以查看插件详情、列出/搜索组件以及查看全局禁用列表。
- **状态控制**: 通过 `enable` 和 `disable` 子命令,可以全局启用或禁用指定的组件。
- **帮助文本**: 更新了相关的帮助信息,让你不会迷路。
- **安全保护**: 核心类型的组件(如 Router, Prompt)被保护,防止被意外禁用,我可不想你把系统搞坏了。
2025-11-29 20:06:42 +08:00
minecraft1024a
02ffef92cc refactor(plugin_system): 将插件管理API拆分为更专注的模块
`plugin_manage_api` 模块的职责过于宽泛,混合了插件生命周期、组件状态管理和信息查询等多种功能。为了提高代码的可维护性和清晰度,遵循单一职责原则,现将其进行拆分。

- 新增 `component_state_api.py` 模块,专门负责处理组件的启用/禁用状态管理,包括全局和局部作用域。
- 新增 `plugin_info_api.py` 模块,用于提供插件和组件的信息查询、报告生成和状态统计功能。
- `plugin_manage_api.py` 现在专注于插件的生命周期管理,如加载、重载、启用/禁用和卸载。
- 更新了内部调用方(例如 system_management 插件)以使用新的、职责更明确的API。

BREAKING CHANGE: 原 `plugin_manage_api` 中的大量函数已被移动。组件状态管理相关函数移至 `component_state_api`,信息查询和报告相关函数移至 `plugin_info_api`。
2025-11-29 19:45:00 +08:00
minecraft1024a
725df21215 feat(plugin): 简化局部组件管理命令,自动检测组件类型
移除了 `enable_local` 和 `disable_local` 命令中的组件类型参数,改为通过组件名称自动搜索。这简化了用户操作,无需记忆组件的具体类型。

- 当找到多个同名组件时,将提示用户并中止操作,避免歧义。
- 新增保护机制,防止用户局部禁用路由、提示词等核心类型的组件,以增强系统稳定性。
2025-11-22 21:29:08 +08:00
minecraft1024a
4a4175c246 feat(plugin_system): 实现组件的局部启用与禁用功能
新增了 `/system plugin enable_local` 和 `/system plugin disable_local` 命令,允许管理员在指定的会话(群聊或私聊)中动态地启用或禁用插件组件。

- 通过 stream_id 对组件状态进行局部覆盖,提供了更精细的控制粒度。
- 引入新的 `plugin.manage.local` 权限节点以控制此高级功能。
- 在 API 层面增加了对组件存在性的检查,增强了系统的健壮性。
2025-11-22 20:22:46 +08:00
minecraft1024a
a0618fb3c4 feat(plugin_system): 引入组件局部状态管理并重构插件API
引入了基于 `stream_id` 的组件局部状态管理机制。这允许在不修改全局配置的情况下,为特定会话临时启用或禁用组件,提供了更高的灵活性。

全面重构了 `plugin_manage_api`,提供了更强大和稳定的插件管理功能:
- 新增 `reload_all_plugins` 和 `get_system_report` API,方便进行批量重载和系统状态诊断。
- 增强了组件卸载逻辑,确保在插件移除时能更彻底地清理资源,特别是对 `EventHandler` 的订阅。
- 重写了内置的 `/system plugin` 命令,以利用新的API,并为相关操作添加了权限控制。

组件注册中心(ComponentRegistry)中的多个 `get_enabled_*` 方法现在可以接受 `stream_id`,以正确反映局部状态。

BREAKING CHANGE: `plugin_manage_api` 中的多个函数已被移除或替换。例如 `list_loaded_plugins` 和 `remove_plugin` 已被移除,加载插件的逻辑已整合到 `register_plugin_from_file` 中。内置的 `/system plugin` 命令的子命令也已更改。
2025-11-21 21:05:02 +08:00
minecraft1024a
6f62073630 chore: perform widespread code cleanup and formatting
Perform a comprehensive code cleanup across multiple modules to improve code quality, consistency, and maintainability.

Key changes include:
- Removing numerous unused imports.
- Standardizing import order.
- Eliminating trailing whitespace and inconsistent newlines.
- Updating legacy type hints to modern syntax (e.g., `List` -> `list`).
- Making minor improvements for code robustness and style.
2025-11-15 17:12:46 +08:00
minecraft1024a
8d1142bbce feat(prompt): 为提示词管理添加调试与预览功能
增强了 `/system prompt` 命令,引入了多个用于调试和检查提示词注入系统的新子命令。

新增功能包括:
- `preview <目标名> [JSON参数]`: 预览指定核心提示词在注入参数后的最终效果,便于调试复杂的注入逻辑。
- `raw <目标名>`: 查看核心提示词的原始内容,有助于了解注入前的基础模板。
- `component_info <组件名>`: 显示特定组件的详细信息,包括其来源、描述和所有注入规则。

这些工具旨在提高提示词系统的透明度,并简化开发和故障排查过程。
2025-11-14 14:19:46 +08:00
minecraft1024a
38ec114c81 feat(system): 为 system 命令添加 prompt 子命令 2025-11-13 18:46:36 +08:00
minecraft1024a
ce2d1acc7c refactor(prompt): 简化和统一提示词注入查询方法
将多个功能重叠的查询方法整合为两个核心方法,以提供更清晰、更灵活的 API,方便获取注入信息和规则。

- `get_injection_info` 方法取代了原有的 `get_full_injection_map` 和 `get_injections_for_prompt`。它现在支持按目标提示词进行筛选,并能通过 `detailed` 参数控制返回信息的详细程度。
- `get_injection_rules` 方法整合了 `get_all_dynamic_rules`、`get_rules_for_target` 和 `get_rules_by_component` 的功能。现在可以通过一个方法,灵活地按目标、按组件或按两者的组合来筛选注入规则。
- 已更新 `system_management` 插件中的相关命令以适配新的 API。

BREAKING CHANGE: `PromptComponentManager` 的公共 API 已更改。
移除了 `get_full_injection_map`, `get_injections_for_prompt`, `get_all_dynamic_rules`, `get_rules_for_target`, `get_rules_by_component` 方法。
请分别使用新的 `get_injection_info` 和 `get_injection_rules` 方法进行替代。
2025-11-13 17:17:48 +08:00
minecraft1024a
66c23e1ba1 style(system): 修正提示词帮助命令的代码格式 2025-11-12 13:51:14 +08:00
minecraft1024a
ac4c592590 refactor(scheduler): 将统一调度器移动至插件系统API
将统一调度器模块从 `src/schedule/` 目录重构至 `src/plugin_system/apis/` 目录下。

这次调整旨在将调度器明确地定位为插件系统的核心API之一,从而改善代码的组织结构和架构清晰度。所有引用该模块的内部导入路径均已同步更新。
2025-11-12 13:47:00 +08:00
minecraft1024a
5dbeebda6b feat(system): 为提示词注入系统提供内省与调试能力
新增 `/system prompt` 命令模块,旨在提升提示词注入系统的透明度,并为管理员提供强大的诊断工具。现在可以深入探查提示词的最终构成方式,这对于追踪非预期的 AI 行为和验证插件注入配置非常有帮助。

该模块提供了一系列查询功能,允许管理员:
- 查看完整的注入依赖图谱
- 枚举所有可注入的目标提示词
- 检索所有已注册的提示词组件及其来源
- 分析特定目标的详细注入信息

所有查询操作均受 `system.prompt.view` 权限保护。
2025-11-12 13:20:50 +08:00
Windpicker-owo
0e9ccc9d4b refactor(scheduler): 采用无锁设计,对统一调度器进行全面改造
- 用完全异步、无锁的架构替换传统的调度器
- 通过独立的执行上下文实现任务隔离
- 增加具有多级超时保护的全面死锁检测功能
- 引入健康评分和自动恢复机制
- 增加资源管理功能,并自动清理已完成的任务
- 实现可配置的并发控制和优雅降级
- 通过详细的执行历史记录,增强任务状态跟踪
- 通过适当的参数注入来改进事件处理
- 增加全面的统计和监控功能
- 保持与系统管理插件中状态字段的向后兼容性

重构后的调度器利用asyncio的单线程特性,消除了所有锁定机制,从而彻底防止死锁。每个任务都在完全隔离的状态下运行,确保故障不会影响其他任务。新架构包括多级超时保护、自动资源清理和全面的健康监测。
2025-11-09 18:06:06 +08:00
明天好像没什么
6c00e41ef7 权限 2025-11-09 09:13:09 +08:00
minecraft1024a
22ee1b6537 refactor(plugins): 整合权限和插件管理功能至系统管理插件
将原有的 `permission_management` 和 `plugin_management` 插件的功能合并到 `system_management` 插件中,以简化内置插件结构并统一管理入口。

- 删除了独立的 `permission_management` 和 `plugin_management` 插件目录。
- 将权限管理和插件管理的命令逻辑迁移至 `system_management` 插件的 `SystemCommand` 类中。
- 通过这种方式,核心的管理功能被集中到一个统一的 `/system` 命令下,提高了内聚性并减少了维护开销。
2025-11-02 12:48:40 +08:00
minecraft1024a
c94566fd1c feat(system): 为系统管理命令添加权限控制
为 `system` 命令添加了 `system.access` 权限节点,并为 `execute` 方法增加了权限检查。现在只有拥有 `system.access` 权限的用户才能执行系统管理相关操作,提升了机器人的安全性。
2025-11-02 12:46:20 +08:00
minecraft1024a
5728313b09 feat(plugin): 新增统一系统管理插件
主要变更:

- 插件整合: 将原有的 permission_management 和 plugin_management 插件合并为一个全新的 system_management 插件,统一了管理入口。

- 功能扩展: 在新插件中加入了对 unified_scheduler 定时任务的管理功能,包括查看、暂停和恢复。
命令统一: 所有相关功能现在都整合在新的 /system 主命令下,并通过子命令 permission、plugin 和 schedule 进行调用,提升了易用性。

- 权限重构: 为新的管理功能设计并添加了独立的权限节点 (system.schedule.view, system.schedule.manage),确保了系统的安全性。
2025-11-02 12:41:42 +08:00