feat(extension): 实现插件命令与设置贡献
This commit is contained in:
@@ -47,11 +47,11 @@
|
||||
| Agent Trace | GET | `/api/agent/runs/{run_id}/trace` | 已实现 | 分页读取可回放 Trace 快照 |
|
||||
| Plugin Host | GET | `/api/plugins/{plugin_id}/host` | 已实现 | 获取 MCP Host 健康状态 |
|
||||
| Plugin Host | POST | `/api/plugins/{plugin_id}/host/restart` | 已实现 | 重启异常 Host 并重新发现 Tool |
|
||||
| Plugin Command | GET | `/api/plugin-contributions/commands` | 计划新增 | 获取前端可展示的 Command |
|
||||
| Plugin Command | POST | `/api/plugin-contributions/commands/{command_id}/execute` | 计划新增 | 受控执行 Command |
|
||||
| Plugin Settings | GET | `/api/plugins/{plugin_id}/settings` | 计划新增 | 获取 Schema 与非敏感配置 |
|
||||
| Plugin Settings | PUT | `/api/plugins/{plugin_id}/settings` | 计划新增 | 更新非敏感配置 |
|
||||
| Plugin Settings | PUT/DELETE | `/api/plugins/{plugin_id}/settings/{key}/secret` | 计划新增 | 写入或删除 Secret Reference |
|
||||
| Plugin Command | GET | `/api/plugin-contributions/commands` | 已实现 | 获取前端可展示的 Command |
|
||||
| Plugin Command | POST | `/api/plugin-contributions/commands/{command_id}/execute` | 已实现 | 受控执行 Command |
|
||||
| Plugin Settings | GET | `/api/plugins/{plugin_id}/settings` | 已实现 | 获取 Schema 与非敏感配置 |
|
||||
| Plugin Settings | PUT | `/api/plugins/{plugin_id}/settings` | 已实现 | 更新非敏感配置 |
|
||||
| Plugin Settings | PUT/DELETE | `/api/plugins/{plugin_id}/settings/{key}/secret` | 已实现 | 写入或删除 Secret Reference |
|
||||
| Provider | 现有路径 | `/api/providers/*`、`POST /api/chat` | 扩展 | 补齐协议能力和统一行为 |
|
||||
| Retrieval | GET/POST | `/api/index/status`、`/api/index/rebuild` | 扩展 | 暴露 Embedding 兼容状态并安全重建向量 |
|
||||
| Benchmark | GET | `/api/benchmarks/datasets` | 计划新增 | 枚举受控 Dataset |
|
||||
@@ -542,6 +542,8 @@ error
|
||||
|
||||
允许的 effect 首批为 `none`、`notification`、`navigate`、`refresh` 和 `job`。前端仅执行白名单 effect;未知类型显示结果但不执行。
|
||||
|
||||
当前宿主只注册已启用且已满足权限授权的 Plugin Command。执行前按 JSON Schema 校验参数、按 `when` 校验上下文,再根据 Command 声明裁剪 Context;单次执行默认超时 30 秒,effect 的 JSON 编码结果不得超过 64 KiB。宿主保留最多 500 条轻量审计事件,仅记录 Command、Plugin、状态、耗时和错误码,不记录 arguments、Context、effect 或 Secret。
|
||||
|
||||
### 7.5 Settings Schema
|
||||
|
||||
`GET /api/plugins/{plugin_id}/settings`
|
||||
@@ -623,6 +625,8 @@ DELETE /api/plugins/{plugin_id}/settings/{key}/secret
|
||||
|
||||
Secret 明文不进入普通 Settings、日志、Trace、Benchmark Dataset 或前端持久化。
|
||||
|
||||
非敏感值按 `plugin_id` 写入 `APP_DATA_DIR/plugins/settings.json`。该文件只保存普通值、Schema 版本和确定性的 Secret Reference;Secret 本身由宿主凭据存储加密保存。卸载 Plugin 时同时清理它的 Settings 命名空间和 Secret Reference。当前开发阶段使用 Fernet 文件凭据存储,第三阶段接入桌面 Host 后应迁移到 Stronghold 或系统 Keychain。
|
||||
|
||||
### 7.7 Plugin/MCP 错误码
|
||||
|
||||
```text
|
||||
@@ -636,10 +640,21 @@ MCP_TOOL_CALL_FAILED
|
||||
MCP_TOOL_RESULT_TOO_LARGE
|
||||
MCP_TRUST_APPROVAL_REQUIRED
|
||||
PLUGIN_COMMAND_NOT_FOUND
|
||||
PLUGIN_COMMAND_CONFLICT
|
||||
PLUGIN_COMMAND_INVALID
|
||||
PLUGIN_COMMAND_ARGUMENT_INVALID
|
||||
PLUGIN_COMMAND_CONTEXT_INVALID
|
||||
PLUGIN_COMMAND_TIMEOUT
|
||||
PLUGIN_COMMAND_EXECUTION_FAILED
|
||||
PLUGIN_COMMAND_RESULT_INVALID
|
||||
PLUGIN_COMMAND_RESULT_TOO_LARGE
|
||||
PLUGIN_SETTINGS_SCHEMA_INVALID
|
||||
PLUGIN_SETTINGS_VERSION_CONFLICT
|
||||
PLUGIN_SETTINGS_FIELD_INVALID
|
||||
PLUGIN_SECRET_FIELD_NOT_FOUND
|
||||
PLUGIN_SECRET_VALUE_INVALID
|
||||
PLUGIN_SECRET_STORE_ERROR
|
||||
PLUGIN_STORAGE_ERROR
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user