## 主要变更 ### 1. 新增 delete_file 工具(26 → 27 个) - 支持:删除文件/空目录(默认)/递归删除非空目录(recursive: true) - 5 层安全防护: * isPathWithinWorkspace — 路径遍历防护 * isProtectedWorkspaceFile — MEMORY.md 拦截 * 工作空间根目录保护 — 禁止删除 workspace 本身 * 递归删除需显式开启 — 默认仅删空目录 * riskLevel: HIGH + requiresPermission — 破坏性操作必须确认 - 友好错误处理:ENOTEMPTY 时提示设置 recursive: true ### 2. 文件工具全面优化(6 个工具) - 抽取共享代码到 file-guard.ts: * safeResolvePath — 合并路径遍历 + MEMORY.md 校验 * matchGlob — 简易通配符匹配 * extractErrorMessage — 统一错误提取 * MAX_FILE_SIZE_BYTES (10MB) / FILE_TOOL_TIMEOUT_MS (15s) / MAX_LINE_LENGTH (10000) - read_file:stat 预检 + 超长行截断 + 二进制检测 + 大小上限 - write_file:原子写入(临时文件+rename)+ 内容大小上限 + append 返回 new_file_size - list_directory:1000 结果上限 + modified time + include_hidden 参数 + 提前终止优化 - search_files:regex lastIndex 修复 + context_lines + include_hidden + 大文件跳过 - file_editor:dry_run 预览模式 + 文件大小上限 ### 3. 审计修复(1 FAIL + 3 WARN) - FAIL: isBinaryFile 用 bytesRead 限制循环,修复 < 8KB 文本误判为二进制 - WARN-1: file-editor dry_run preview 分模式计算,修复 insert 范围过大 - WARN-2: write_file 允许空字符串创建空文件 - WARN-3: list_directory listDir 提前终止,避免大目录全量遍历
62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
/**
|
|
* 内置工具导出
|
|
*
|
|
* v0.3.2: 从 26 个工具扩展到 27 个工具
|
|
* 新增:delete_file
|
|
*
|
|
* v0.3.1: 从 15 个工具扩展到 26 个工具
|
|
* 新增:git_status, git_diff, git_log, git_commit, lint_code, run_tests,
|
|
* project_info, http_request, todo_write, think, view_image
|
|
*
|
|
* v0.2.0: 从 11 个工具扩展到 15 个工具
|
|
* 新增:file_editor, code_search, task_manager, diff_viewer
|
|
*
|
|
* @see docs/MetonaAI-Desktop 架构与交互设计.html — 9 个基础工具
|
|
*/
|
|
|
|
// 文件系统工具(5 个)
|
|
export { ReadFileTool, WriteFileTool, ListDirectoryTool, SearchFilesTool, DeleteFileTool } from './filesystem';
|
|
// v0.2.0: 精准文件编辑工具
|
|
export { FileEditorTool } from './file-editor';
|
|
// v0.2.0: ripgrep 代码搜索工具
|
|
export { CodeSearchTool } from './code-search';
|
|
// v0.2.0: 文件差异对比工具
|
|
export { DiffViewerTool } from './diff-viewer';
|
|
|
|
// 网络工具(2 个)
|
|
export { WebSearchTool, WebFetchTool } from './network';
|
|
|
|
// 记忆工具(2 个)
|
|
export { MemoryStoreTool, MemorySearchTool } from './memory';
|
|
|
|
// 命令工具(1 个)
|
|
export { RunCommandTool } from './command';
|
|
|
|
// 浏览器工具(1 个)
|
|
export { WebBrowserTool, cleanupBrowser, getBrowserManager } from './browser';
|
|
|
|
// 委派工具(1 个)
|
|
export { DelegateTaskTool } from './delegate-task';
|
|
|
|
// v0.2.0: 任务管理工具(1 个)
|
|
export { TaskManagerTool } from './task-manager';
|
|
|
|
// v0.3.1: Git 工具集(4 个)
|
|
export { GitStatusTool, GitDiffTool, GitLogTool, GitCommitTool } from './git';
|
|
|
|
// v0.3.1: 开发工具集(3 个)
|
|
export { LintCodeTool, RunTestsTool, ProjectInfoTool } from './dev-tools';
|
|
|
|
// v0.3.1: HTTP 请求工具(1 个)
|
|
export { HttpRequestTool } from './http-request';
|
|
|
|
// v0.3.1: TODO 管理工具(1 个)
|
|
export { TodoWriteTool } from './todo';
|
|
|
|
// v0.3.1: 结构化思考工具(1 个)
|
|
export { ThinkTool } from './think';
|
|
|
|
// v0.3.1: 图片查看工具(1 个)
|
|
export { ViewImageTool } from './view-image';
|
|
|