新增: u-claw 集成
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
//! AI 工具注册表构建 + 文件路径校验
|
||||
//! AI 工具注册表构建 + 文件路径校验
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::path::{Path, PathBuf};
|
||||
@@ -556,9 +557,20 @@ pub fn build_ai_tool_registry(
|
||||
register_local_proxy_tools(&mut registry, local_proxy_ctx);
|
||||
register_read_skill_tool(&mut registry);
|
||||
register_spawn_agent_tool(&mut registry, spawn_agent_ctx);
|
||||
register_uclaw_tool(&mut registry, db);
|
||||
registry
|
||||
}
|
||||
|
||||
/// ask_uclaw AI 工具注册(1 个:委托 u-claw 常驻 Claude Code 网关,u-relay commander 协议)。
|
||||
///
|
||||
/// 工具职责:LLM 调 ask_uclaw(prompt) 把任务下发给 u-claw(channel 级单链粘性会话),
|
||||
/// 经 u-relay /ws/commander 路由,agent_progress 块级流式回传 + agent_result 全文交付。
|
||||
/// 风险 Medium(委托外部 agent 执行,与 spawn_agent 同档)。持 db:Arc<Database>(配置 KV 读)。
|
||||
/// 声明式注册在 tools/uclaw.rs。
|
||||
fn register_uclaw_tool(registry: &mut AiToolRegistry, db: &Arc<Database>) {
|
||||
super::tools::uclaw::register(registry, db);
|
||||
}
|
||||
|
||||
/// spawn_agent AI 工具注册(1 个:派发子代理,隔离上下文执行专项任务)。
|
||||
///
|
||||
/// 工具职责:LLM 调 spawn_agent(task, tools?, max_rounds?, model?) 派发子代理,
|
||||
@@ -1494,10 +1506,14 @@ mod tests {
|
||||
// Medium 审批档;独立 agentic 循环在 agentic/sub_agent.rs,报告经返回值交付。
|
||||
// SpawnAgentCtx 绕 AppState 自引用同 GetAppConfigCtx 先例,注册表自引用走进程级 OnceLock)。
|
||||
// 78 = 45 data + 15 file + 1 http + 1 fetch_url + 1 fetch_search + 1 generate_image + 1 get_app_config + 11 local_proxy + 1 read_skill + 1 spawn_agent。
|
||||
// ask_uclaw(2026-10-05): uclaw 层 0→1(委托 u-claw 常驻 Claude Code 网关,
|
||||
// u-relay commander 协议,Medium 审批档同 spawn_agent;配置 KV 三键读,
|
||||
// 声明式注册 tools/uclaw.rs)。
|
||||
// 79 = 45 data + 15 file + 1 http + 1 fetch_url + 1 fetch_search + 1 generate_image + 1 get_app_config + 11 local_proxy + 1 read_skill + 1 spawn_agent + 1 uclaw。
|
||||
assert_eq!(
|
||||
registry.len(),
|
||||
78,
|
||||
"工具总数应为 78(45 data + 15 file + 1 http + 1 fetch_url + 1 fetch_search + 1 generate_image + 1 get_app_config + 11 local_proxy + 1 read_skill + 1 spawn_agent),实际 {}", registry.len()
|
||||
79,
|
||||
"工具总数应为 79(45 data + 15 file + 1 http + 1 fetch_url + 1 fetch_search + 1 generate_image + 1 get_app_config + 11 local_proxy + 1 read_skill + 1 spawn_agent + 1 uclaw),实际 {}", registry.len()
|
||||
);
|
||||
|
||||
// 工具名集合基线:防 rename / 漏注册 / 误删除。
|
||||
@@ -1568,6 +1584,9 @@ mod tests {
|
||||
// ── spawn_agent 层 (1) ──(派发子代理隔离上下文执行专项任务,Medium 审批档,
|
||||
// 独立 agentic 循环 agentic/sub_agent.rs,声明式注册 tools/spawn_agent.rs)
|
||||
"spawn_agent",
|
||||
// ── uclaw 层 (1) ──(委托 u-claw 常驻 Claude Code 网关,u-relay commander 协议,
|
||||
// Medium 审批档,声明式注册 tools/uclaw.rs)
|
||||
"ask_uclaw",
|
||||
];
|
||||
expected.sort_unstable();
|
||||
|
||||
@@ -2405,6 +2424,7 @@ mod tests {
|
||||
idea_id: None,
|
||||
path: None,
|
||||
stack: None,
|
||||
archived: false,
|
||||
created_at: now_millis(),
|
||||
updated_at: now_millis(),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user