feat: MCP/CLI 追平 Phase 2 后端能力(score/复审/合并/额度/归档)
任务 ID:tsk_sjzC4B9ctg6W MCP(src/mcp/index.ts,重构为可测的 createTools(apiFn)): - 读:新增 get_agents(自治/并发/调度/模型/在途)、get_usage(订阅额度)、 list_archived(终态分页);get_task 补 score(自身分+链条惯性+解锁加权) 与 review(summary/verdict/securitySummary/securityVerdict)显式字段。 - 写:新增 patch_task(复用 store.patchTask 校验)、patch_project、sync_project、 decide(action + merge:通过并合并 / 仅通过;reject 必带 reason)。 - 复核全部工具 description 与状态机语义一致;entry-guard 便于 import 测试。 CLI(src/cli/index.ts)对齐子命令: - project set / task patch / decide <id> accept|reject [--no-merge] / agents / usage / archive。两端均薄封装走 REST,不重复实现。 API(src/api/server.ts):新增 GET /api/usage 单独透传订阅额度。 测试:新增 test/mcp.test.ts(zod schema 边界 + 对 mock api 的 method/path/body 断言 + score/分页/错误透传),npm test 103 全过、typecheck/build 通过。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -132,6 +132,9 @@ export function buildServer(opts: ApiOptions): FastifyInstance {
|
||||
return { totalActive: runs.length, agents, usage: await getUsage() };
|
||||
});
|
||||
|
||||
// Claude 订阅额度(5 小时 + 周窗口)单独透传;查询失败 → null(前端/CLI 降级显示)
|
||||
app.get('/api/usage', async () => await getUsage());
|
||||
|
||||
app.get('/api/projects/:id/tasks', (req) => {
|
||||
const { id } = req.params as { id: string };
|
||||
return store.listTasks(id);
|
||||
|
||||
Reference in New Issue
Block a user