Commit Graph

44 Commits

Author SHA1 Message Date
whatevertogo
b0f8b2d60f feat(tests): 添加测试用例以验证 register_task 的行为并更新测试运行说明 2026-03-19 08:57:56 +08:00
whatevertogo
84184c4c0a feat(errors): Enhance AstrBotError with detailed documentation and examples
feat(events): Expand MessageEvent with reply capabilities and detailed docstrings

fix(loader): Ensure plugin path is correctly managed in sys.path

feat(star): Improve Star class documentation and lifecycle method descriptions

feat(testing): Add plugin metadata handling in MockContext and enhance PluginHarness

feat(hello): Refactor HelloPlugin to utilize new reply methods and structured capabilities

test(decorators): Add tests for input/output model support in provide_capability

test(events): Implement tests for reply_image and reply_chain methods in MessageEvent

test(http): Validate API registration with capability handler references and error handling

test(tests): Enhance tests for plugin harness and directory handling in dev commands
2026-03-14 23:37:09 +08:00
whatevertogo
731fa6d5bd feat: 添加插件热重载功能,支持文件变更时自动重新加载插件 2026-03-14 22:25:51 +08:00
whatevertogo
94514fb19b feat: Enhance handler and capability dispatchers with improved error handling
- Updated HandlerDispatcher to raise TypeError for uninjectable required parameters, logging errors appropriately.
- Refactored CapabilityDispatcher to raise TypeError for missing required parameters during capability execution.
- Renamed _load_plugin_config to load_plugin_config for clarity and consistency.
- Introduced _sync_plugin_registry method in SupervisorRuntime to manage plugin capabilities more effectively.
- Enhanced capability registration logic to handle naming conflicts with better logging and automatic renaming.
- Added tests for handler and capability dispatchers to ensure proper error handling and functionality.
- Implemented new HTTP and metadata capabilities with corresponding tests for registration and retrieval.
- Improved MemoryClient methods with additional tests for save_with_ttl, get_many, delete_many, and stats.
- Added tests for the testing module to ensure proper import and functionality of PluginHarness.
2026-03-14 22:07:10 +08:00
whatevertogo
1672bc3227 Add v4 compat layer and legacy shims
- Introduce private v4 compatibility surface using
  _legacy_api.py, _legacy_runtime.py, _legacy_loader.py plus new
  _legacy_context.py and _legacy_star.py to centralize legacy adapters
  while keeping public APIs thin.
- Extend InitializeOutput to carry protocol_version for negotiated
  protocol, enabling runtime to adapt to the chosen v4 version.
- Add lightweight legacy support for Star/Context via new LegacyStar and
  LegacyContext shims and expose legacy API through the aggregate
  _legacy_api entry point.
- Ensure legacy loader preserves class declaration order by iterating
  module.__dict__ instead of relying on alphabetical sorting.
- Add tests: protocol_version handling in InitializeOutput, legacy
  main component order preservation, and embedded-newline framing in
  transport tests.
2026-03-14 17:16:42 +08:00
whatevertogo
142d3ad747 Merge pull request #5 from united-pooh/refact1/envs_manager 2026-03-14 01:29:45 +08:00
whatevertogo
61c3015ea6 Merge pull request #4 from letr007/chore/compat-structure-cleanup 2026-03-14 00:41:21 +08:00
whatevertogo
e891cc8c8d refactor: 更新兼容层和导入路径,优化文档描述 2026-03-13 23:55:39 +08:00
whatevertogo
2074053624 Refactor legacy runtime handling and improve plugin loading
- Updated `handler_dispatcher.py` to streamline legacy runtime preparation and dispatching results.
- Enhanced `loader.py` to simplify legacy plugin detection and manifest building.
- Added tests for new HTTPClient and MetadataClient functionalities.
- Introduced tests for legacy context metadata methods and legacy loader helpers.
- Improved legacy runtime tests to cover new functionality and edge cases.
2026-03-13 23:44:32 +08:00
whatevertogo
0406d270da 增强旧版兼容性,添加适配器边界的启动和关闭钩子支持 2026-03-13 19:07:20 +08:00
whatevertogo
7b2f6f5497 增强旧版兼容性,添加多个旧路径入口和相关功能 2026-03-13 18:26:13 +08:00
whatevertogo
4680cb405b Refactor legacy runtime execution boundary 2026-03-13 18:08:23 +08:00
whatevertogo
2fe1311b5d Implement legacy hook and tool compat runtime 2026-03-13 17:41:06 +08:00
whatevertogo
885e4fe32e Consolidate controlled legacy facade compatibility 2026-03-13 16:53:05 +08:00
whatevertogo
701384398e Tighten external legacy plugin compatibility smoke tests 2026-03-13 16:24:28 +08:00
whatevertogo
d83e2551b7 Expand legacy astrbot package compatibility 2026-03-13 16:02:30 +08:00
whatevertogo
dc365fdad0 Add legacy session waiter compatibility 2026-03-13 15:42:19 +08:00
whatevertogo
91b5ed400e Improve legacy plugin compat and add mrfzccl fixture 2026-03-13 15:01:42 +08:00
whatevertogo
0064716f73 Fix runtime init and stream capability semantics 2026-03-13 07:28:59 +08:00
whatevertogo
d031814bc5 feat(plugin): 添加新的 V4 示例插件及集成测试,更新文档以反映插件结构变化 2026-03-13 06:53:31 +08:00
whatevertogo
3ba9b24522 feat: 更新文档和测试,增强旧版插件兼容性及能力装饰器的命名约束 2026-03-13 06:45:49 +08:00
whatevertogo
3d5c8f7ff7 feat(protocol): 优化协议模块导出,确保根目录专注于原生 v4 模型,遗留适配器从子模块显式导入 2026-03-13 06:34:57 +08:00
whatevertogo
a93f267d8a feat(loader): enhance plugin import handling and legacy compatibility
- Updated `import_string` to evict conflicting cached top-level plugin packages, ensuring proper isolation of plugins with the same package names.
- Preserved the order of legacy handler declarations in `_iter_discoverable_names` to maintain expected behavior for legacy plugins.
- Added tests to verify the isolation of top-level packages and the preservation of handler declaration order.
- Improved module cleanup in tests to prevent conflicts between plugins.
2026-03-13 06:32:26 +08:00
whatevertogo
4b6e20468b feat: 更新文档和代码,优化运行时模块的导出,确保高级原语的稳定性和兼容性 2026-03-13 06:23:00 +08:00
whatevertogo
9c5ecf0a13 feat: Enhance plugin capability support and legacy compatibility
- Introduced LoadedCapability class to manage plugin capabilities.
- Updated load_plugin function to discover and load capabilities alongside handlers.
- Enhanced Peer class to handle remote provided capabilities during initialization.
- Added tests for capability registration and invocation in legacy plugins.
- Improved MessageChain and message component handling in legacy plugins.
- Added comprehensive tests for legacy plugin integration and compatibility.
- Updated protocol messages to include provided capabilities in initialization.
- Enhanced top-level module imports to include capability-related functions.
2026-03-13 06:16:57 +08:00
whatevertogo
d7aa75aff0 fix: 优化配置值规范化逻辑,确保类型检查更为严谨 2026-03-13 05:48:58 +08:00
whatevertogo
72d600679f feat: 更新遗留 API,支持标量 JSON 值和兼容性文档,增强消息组件和事件过滤器功能 2026-03-13 05:44:01 +08:00
whatevertogo
96ea836edc feat: Enhance legacy API with message chain support and new context handling
- Updated `LegacyContext.send_message` to handle rich message chains using `send_chain`.
- Introduced `LegacyStar` class for backward compatibility with legacy plugins.
- Added `register` decorator for legacy plugin metadata.
- Enhanced `MessageChain` class with `to_payload` and `is_plain_text_only` methods.
- Updated `AstrMessageEvent.send` method to utilize `send_chain` for rich messages.
- Implemented `send_chain` method in `PlatformClient` for sending complex message structures.
- Added capability routing for `platform.send_chain`.
- Introduced tests for new functionality, ensuring compatibility with legacy plugins and message handling.
2026-03-13 05:34:14 +08:00
whatevertogo
ae73a18f60 docs: 更新 CLAUDE 和 AGENTS 文档,添加旧 Star 文档以描述遗留行为,确保兼容性和功能完整性 2026-03-13 05:12:52 +08:00
whatevertogo
9d05934d53 feat: 添加稳定错误码常量,重构能力描述符以使用协议模式,更新相关测试用例 2026-03-13 04:46:00 +08:00
whatevertogo
a106354e20 feat: 更新文档和代码,移除过时注释,增强兼容性和错误处理,添加新测试用例 2026-03-13 04:39:12 +08:00
whatevertogo
7d0802fb9e feat: 更新运行时模块,增强 Peer 和 HandlerDispatcher 功能,优化插件加载和请求处理逻辑,添加新测试用例 2026-03-13 04:28:07 +08:00
whatevertogo
8ebf5489b6 feat: 更新协议模块,增强 v4 协议适配器和消息解析功能,添加新测试用例 2026-03-13 04:15:43 +08:00
whatevertogo
ae5d6dc692 feat: 增强 v4 客户端功能,添加内存获取和错误处理,更新文档和测试用例 2026-03-13 04:02:07 +08:00
whatevertogo
7cab1cd432 feat: 更新 CLAUDE 和 AGENTS 文档,添加 v4 迁移对比文档,增强兼容性说明 2026-03-13 03:48:54 +08:00
whatevertogo
4627276187 feat: 更新文档和测试,确保 LegacyContext 共享和兼容性 2026-03-13 03:42:16 +08:00
whatevertogo
cdf72b75a4 feat: 实现 v4 API 兼容层,支持旧版插件导入路径
新增模块:
- api/basic/: AstrBotConfig, BaseConversationManager, Conversation
- api/event/: AstrMessageEvent, AstrBotMessage, EventType, MessageType,
  MessageSession, EventResult 等核心事件类型
- api/message/: MessageChain 及所有消息组件 (Plain, At, Image, File 等)
- api/platform/: PlatformMetadata 平台元数据类型
- api/provider/: LLMResponse 提供者响应实体
- api/star/star.py: StarMetadata 插件元数据类型

更新模块:
- api/__init__.py: 导出所有子模块
- api/components/: 扩展 Command 兼容性
- api/event/filter.py: 增强 filter 装饰器兼容性
- context.py, decorators.py, events.py: 顶层兼容入口

测试更新:
- test_api_event_filter.py: 验证 filter 兼容性
- test_api_modules.py: 验证新模块可导入
- test_handler_dispatcher.py: 验证处理器分发

文档更新:
- AGENTS.md/CLAUDE.md: 添加兼容层设计说明,避免重复造轮子

设计原则:
- 兼容层通过 thin re-export 方式暴露旧版 API
- 不复制独立运行时逻辑,保持架构清晰
- 新版推荐使用顶层模块导入路径
2026-03-13 03:17:03 +08:00
whatevertogo
54b6ca7b7d 修正重要说明中的标点,确保新实现兼容旧实现并遵循良好设计原则 2026-03-13 02:54:34 +08:00
whatevertogo
6f1373ed32 feat: 添加重要说明,确保新实现兼容旧实现并遵循良好设计原则 2026-03-13 02:51:31 +08:00
whatevertogo
d330b595de fix: 修复 LegacyConversationManager 和 Peer 的异步处理逻辑,确保正确处理取消和初始化事件 2026-03-13 02:18:26 +08:00
whatevertogo
280e32bfae feat: 添加旧版会话管理器的兼容实现,支持会话数据的存储、获取和删除功能
feat: 在内存客户端中添加精确获取记忆项的功能
feat: 在事件消息中添加字段约束验证,确保各阶段的字段符合要求
feat: 在 SupervisorRuntime 中注册 handler 时处理冲突并输出警告
2026-03-13 01:45:17 +08:00
whatevertogo
9bf831810d feat: 添加测试框架和相关测试用例,涵盖 API 装饰器、事件、上下文和传输通信 2026-03-13 00:29:12 +08:00
whatevertogo
8922e1409c Refactor code structure for improved readability and maintainability 2026-03-12 23:24:35 +08:00
whatevertogo
db9cb169e4 feat: Enhance Supervisor and Worker Runtime with Internal Capabilities and Lifecycle Hooks
- Added internal capability for handler invocation in SupervisorRuntime.
- Implemented lifecycle hooks (on_start, on_stop) in Star class and PluginWorkerRuntime.
- Updated CapabilityRouter to support request_id in call and stream handlers.
- Refactored message handling in PeerRuntime to include request_id.
- Introduced tests for API contract, legacy adapter, and migration scenarios.
- Improved WebSocketServerTransport to manage connection state more effectively.
- Enhanced plugin loading and discovery to maintain compatibility with legacy systems.
2026-03-12 22:46:22 +08:00