refactor: 移除多余依赖,统一 MUI 为唯一 UI 库
- 移除 radix-ui、clsx、tailwind-merge、class-variance-authority、react-router-dom - 前后端全面适配 MUI 组件,清理残留 Tailwind 工具类引用 - 优化 Agent Loop 引擎、IPC 处理器、Provider Adapter 等后端模块 - 新增 Agent 网络工具通用设计文档 v2
This commit is contained in:
@@ -13,6 +13,7 @@ import type { IMetonaTool, ToolRegistryEntry, ToolExecutionContext } from '../ty
|
||||
|
||||
export class ToolRegistry {
|
||||
private tools = new Map<string, ToolRegistryEntry>();
|
||||
private disabledTools = new Set<string>();
|
||||
|
||||
/** 注册内置工具 */
|
||||
registerBuiltin(tool: IMetonaTool): void {
|
||||
@@ -45,16 +46,27 @@ export class ToolRegistry {
|
||||
/** 获取工具 */
|
||||
get(name: string): IMetonaTool | undefined {
|
||||
const entry = this.tools.get(name);
|
||||
return entry?.enabled ? entry.tool : undefined;
|
||||
if (!entry?.enabled) return undefined;
|
||||
if (this.disabledTools.has(name)) return undefined;
|
||||
return entry.tool;
|
||||
}
|
||||
|
||||
/** 列出所有已启用工具的定义 */
|
||||
listTools(): MetonaToolDef[] {
|
||||
return Array.from(this.tools.values())
|
||||
.filter((e) => e.enabled)
|
||||
.filter((e) => e.enabled && !this.disabledTools.has(e.tool.definition.name))
|
||||
.map((e) => e.tool.definition);
|
||||
}
|
||||
|
||||
/** 设置工具启用/禁用状态(供 IPC tools:toggle 调用) */
|
||||
setToolEnabled(name: string, enabled: boolean): void {
|
||||
if (enabled) {
|
||||
this.disabledTools.delete(name);
|
||||
} else {
|
||||
this.disabledTools.add(name);
|
||||
}
|
||||
}
|
||||
|
||||
/** 执行工具 */
|
||||
async execute(
|
||||
toolCall: MetonaToolCall,
|
||||
@@ -99,6 +111,6 @@ export class ToolRegistry {
|
||||
|
||||
/** 获取工具数量 */
|
||||
get size(): number {
|
||||
return Array.from(this.tools.values()).filter((e) => e.enabled).length;
|
||||
return Array.from(this.tools.values()).filter((e) => e.enabled && !this.disabledTools.has(e.tool.definition.name)).length;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user