feat(v0.3.4): 插件命令 HTTP API 自动暴露

PluginNetworkBridge.register_command_routes():
- 自动扫描插件 @plugin_command/cmd_* 方法
- 每个命令 → POST /api/plugin/{cmd_name}
- JSON body: {"args": [...], "kwargs": {...}}
- 返回: {"ok": true, "result": "..."}

PluginService.load_plugin() 在插件初始化后自动调用

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
qinglong
2026-06-13 11:02:45 +08:00
parent d5388057d9
commit f402af58d0
2 changed files with 79 additions and 3 deletions
+8 -2
View File
@@ -314,9 +314,15 @@ class PluginService:
else:
plugin_instance.initialize()
# 扫描并注册插件命令
# 扫描并注册 TUI 命令
plugin_commands = await self._scan_and_register_commands(plugin_name, plugin_instance, plugin_config)
# 自动暴露插件命令为 REST 端点
if hasattr(plugin_instance, 'network_bridge') and plugin_instance.network_bridge:
await plugin_instance.network_bridge.register_command_routes(
plugin_instance, require_auth=True
)
# 注册插件
self.plugins[plugin_name] = plugin_instance