Commit Graph

62 Commits

Author SHA1 Message Date
whatevertogo
89d3e2f014 Add architecture doc and refine API compat
- Add PROJECT_ARCHITECTURE.md documenting architecture, compat surface,
  and testing notes.
- Update astrbot_sdk.api.__init__ to clarify it is a compatibility
  implementation layer, not a simple facade, and list migration targets.
- Normalize platform in AstrMessageEvent.to_payload to emit a string id
  by using get_platform_id().
2026-03-14 17:17:25 +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
united_pooh
76319d633d Support grouped plugin workers in shared environments
- add group metadata driven worker startup for shared env plans
- track per-plugin handler and capability ownership inside grouped workers
- update runtime and smoke tests for grouped worker session behavior
2026-03-14 01:11:21 +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
1c4c9677bb feat: 添加插件初始化、验证和构建命令,增强 CLI 功能 2026-03-13 20:55:03 +08:00
whatevertogo
623e0c1f33 feat: Enhance CLI and testing capabilities
- Added a new script entry point `astrbot-sdk` in `pyproject.toml`.
- Introduced `has_waiter` method in `SessionWaiterManager` to check for existing waiters.
- Updated `cli.py` to improve error handling and added context to error messages.
- Implemented local development support in `cli.py` with a new `dev` command for running plugins against a mock core.
- Created a new testing module `astrbot_sdk.testing` with utilities for local development and plugin testing.
- Added comprehensive tests for the new testing module and CLI commands.
- Improved compatibility and error messaging for plugin loading failures.
2026-03-13 20:26:42 +08:00
whatevertogo
a3c4c6b096 Refactor legacy API and LLM compatibility logic
- Moved legacy LLM and tool compatibility logic from `_legacy_api.py` to a new module `_legacy_llm.py` for better organization and separation of concerns.
- Updated `_legacy_api.py` to import necessary components from `_legacy_llm.py`, removing redundant code.
- Enhanced database client functionality by adding support for batch read/write operations and change event subscriptions.
- Improved documentation in the database client and capability router to reflect new features.
- Refined environment management process in the loader to better handle plugin grouping and virtual environment management.
2026-03-13 19:31:14 +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
letr
24c71828b3 fix: preserve unicode sample fixtures in runtime tests 2026-03-13 17:09:49 +08:00
letr
56274c8ee6 docs: clarify compat package boundaries 2026-03-13 17:04:26 +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
10d3990970 Merge pull request #3 from united-pooh/refact1/envs_manager
实现 v4 运行时插件分组环境管理
2026-03-13 15:18:44 +08:00
united_pooh
aa5ace7eac 实现 v4 运行时插件分组环境管理 2026-03-13 15:13:23 +08:00
whatevertogo
91b5ed400e Improve legacy plugin compat and add mrfzccl fixture 2026-03-13 15:01:42 +08:00
Lishiling
945bc3bc34 add:数据库添加批量操作支持,附测试代码 2026-03-13 11:02:31 +08:00
whatevertogo
0064716f73 Fix runtime init and stream capability semantics 2026-03-13 07:28:59 +08:00
whatevertogo
3ba9b24522 feat: 更新文档和测试,增强旧版插件兼容性及能力装饰器的命名约束 2026-03-13 06:45:49 +08:00
whatevertogo
b0f13a00a6 feat: 添加旧版插件兼容测试及相关配置文件 2026-03-13 06:41:27 +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
9d05934d53 feat: 添加稳定错误码常量,重构能力描述符以使用协议模式,更新相关测试用例 2026-03-13 04:46:00 +08:00
whatevertogo
a106354e20 feat: 更新文档和代码,移除过时注释,增强兼容性和错误处理,添加新测试用例 2026-03-13 04:39:12 +08:00
whatevertogo
cc5dc9266c feat: 重构处理器分发和插件加载模块,增强兼容性和错误处理,更新文档 2026-03-13 04:37:13 +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
2e990f81e0 feat: 移除多个模块中的 TODO 注释,优化代码可读性 2026-03-13 04:15:02 +08:00
whatevertogo
ae5d6dc692 feat: 增强 v4 客户端功能,添加内存获取和错误处理,更新文档和测试用例 2026-03-13 04:02:07 +08:00
whatevertogo
298ccf7437 feat: 更新调度触发器以支持别名,优化 Peer 类的关闭逻辑,增强插件发现功能 2026-03-13 03:48:43 +08:00
whatevertogo
4627276187 feat: 更新文档和测试,确保 LegacyContext 共享和兼容性 2026-03-13 03:42:16 +08:00
whatevertogo
ffafd74881 docs: 增强 api 模块兼容层文档,提示插件作者迁移
- 添加 warning 块明确标注为 v3 兼容层
- 提示插件制作者迁移至新版导入路径
- 添加迁移示例代码对比旧版/新版导入方式
- 说明兼容层将在未来版本移除
2026-03-13 03:31:00 +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
9d83fccafd feat: 添加新旧架构对比文档,详细说明各模块的功能和结构变化 2026-03-13 02:44:53 +08:00
whatevertogo
ca2beb79a2 feat: 添加新旧对比文档,详细说明各模块结构变化及功能缺失 2026-03-13 02:44:42 +08:00
whatevertogo
3c158760f9 feat: 添加协议模块及消息定义,详细说明新版协议与旧版的差异 2026-03-13 02:37:13 +08:00
whatevertogo
bfe5b21f6b feat: 添加新版 API 模块文档,详细说明与旧版的差异及缺失内容 2026-03-13 02:33:42 +08:00
whatevertogo
921223d3e9 feat: 添加客户端模块文档,详细说明各模块功能及与旧版的对比 2026-03-13 02:32:04 +08:00