AggRoot
文档目录

代码工具

AggRoot 的代码工具插件提供代码执行、验证、格式化、分析、重构等能力,集成了 CodeEngine 代码引擎和 ESLint 静态检查。


CodeExecute — 执行代码

在沙盒中执行 JavaScript 代码,用于运行测试、脚本或验证逻辑。

参数

参数 类型 必填 说明
code string 否* 要执行的 JavaScript 代码
file string 否* 要执行的文件路径(与 code 二选一)
timeout number 超时秒数(默认 30,最大 120)

*code 和 file 至少提供一个。

功能特性

  • 使用 Node.js 执行代码
  • 超时自动终止进程(含子进程树清理)
  • 输出限制 10000 字符,防止大量输出占用上下文

示例

// 执行代码片段
CodeExecute({"code": "const result = [1,2,3].map(x => x * 2); console.log(result);"})

// 执行文件
CodeExecute({"file": "test/unit.test.js", "timeout": 60})

// 验证逻辑
CodeExecute({"code": "function fib(n) { return n <= 1 ? n : fib(n-1) + fib(n-2); } console.log(fib(10));"})

注意事项

  • 风险等级为 dangerous,执行前需确认
  • 代码在独立进程中运行,可访问本地文件系统
  • 不适合长时间运行的任务(最大 120 秒超时)

CodeValidate — 验证代码

使用 TypeScript 编译器(tsc --noEmit)进行类型检查,报告真实的类型错误。

参数

参数 类型 必填 说明
path string 否* 要验证的文件路径
code string 否* 要验证的代码字符串(与 path 二选一)

*path 和 code 至少提供一个。

功能特性

  • 使用项目中的 tsconfig.json 配置
  • 自动向上查找最近的 tsconfig.json
  • 支持代码字符串验证(临时写入文件后检查)
  • 30 秒超时保护
  • 输出过滤:优先显示目标文件相关的错误

示例

// 验证项目文件
CodeValidate({"path": "src/app.ts"})

// 验证代码片段
CodeValidate({"code": "const x: string = 123;"})

输出说明

  • 验证通过:返回 "TypeScript validation passed — no type errors found"
  • 验证失败:显示错误数量、警告数量及详细错误信息

CodeFormat — 格式化代码

格式化 TypeScript、JavaScript、JSON 等文件,内置缩进修复。

参数

参数 类型 必填 默认值 说明
path string 否* 要格式化的文件路径
code string 否* 要格式化的代码字符串(与 path 二选一)
write boolean false 是否将格式化结果写回文件
indent number 2 缩进空格数

*path 和 code 至少提供一个。

示例

// 预览格式化结果(不写回)
CodeFormat({"path": "src/messy.ts"})

// 格式化并写回文件
CodeFormat({"path": "src/messy.ts", "write": true})

// 自定义缩进
CodeFormat({"path": "src/style.ts", "write": true, "indent": 4})

// 格式化代码字符串
CodeFormat({"code": "function test(){return 1;}"})

CodeAnalyze — 分析代码

深度分析代码文件,提取符号信息、依赖关系、ESLint 问题。

参数

参数 类型 必填 默认值 说明
path string 要分析的文件路径
includeComplexity boolean true 是否包含复杂度指标

分析结果

类别 说明
文件信息 行数、字符数
导入(Imports) 导入的模块路径列表
导出(Exports) 导出的符号列表
函数(Functions) 函数名列表(使用 CodeEngine 提取)
类(Classes) 类名列表
问题(Issues) ESLint 检测到的错误和警告

示例

// 分析文件
CodeAnalyze({"path": "src/domain/agent/aggregate.ts"})

// 不含复杂度分析
CodeAnalyze({"path": "src/utils.ts", "includeComplexity": false})

技巧

  • 优先使用 CodeEngine 提取符号(更准确),不可用时回退到正则匹配
  • ESLint 超时 30 秒后自动回退到简单检查(console.log、TODO/FIXME 等)
  • 分析结果包含问题严重等级和规则名,便于定位修复

CodeRefactor — 重构代码

支持多种重构操作,集成 CodeEngine 语义感知重构。

参数

参数 类型 必填 说明
operation string 重构操作类型
path string 目标文件路径

操作特定参数见下方各操作说明。

支持的操作

1. extract_function — 提取函数

附加参数 类型 必填 说明
startLine number 起始行号(0-based)
endLine number 结束行号(exclusive)
functionName string 新函数名
CodeRefactor({
  "operation": "extract_function",
  "path": "src/handler.ts",
  "startLine": 10,
  "endLine": 20,
  "functionName": "processData"
})

2. rename — 重命名

附加参数 类型 必填 说明
oldName string 当前名称
newName string 新名称
symbolKind string 符号类型过滤:function/class/variable/interface/type/all
CodeRefactor({
  "operation": "rename",
  "path": "src/app.ts",
  "oldName": "oldVar",
  "newName": "newVar",
  "symbolKind": "variable"
})

重命名逻辑:

  1. 优先使用 CodeEngine 语义重命名(跨文件安全)
  2. 回退到安全 Token 重命名(跳过注释和字符串中的匹配)

3. organize_imports — 整理导入

无需额外参数。自动排序 import 语句:第三方模块在前,相对路径在后,同组内按路径排序。

CodeRefactor({
  "operation": "organize_imports",
  "path": "src/app.ts"
})

4. add_import — 添加导入

附加参数 类型 必填 说明
importPath string 导入路径
importName string 导入的符号名
// 具名导入
CodeRefactor({
  "operation": "add_import",
  "path": "src/app.ts",
  "importPath": "lodash",
  "importName": "debounce"
})

// 副作用导入
CodeRefactor({
  "operation": "add_import",
  "path": "src/app.ts",
  "importPath": "./polyfills"
})

5. remove_unused — 移除未使用的导入

无需额外参数。自动检测并移除文件中未被使用的 import 语句。

CodeRefactor({
  "operation": "remove_unused",
  "path": "src/app.ts"
})

辅助工具

CodeIndex — 索引项目

为项目目录建立代码索引,启用符号搜索和依赖分析。

参数 类型 必填 说明
path string 项目根目录
pattern string 文件 glob 模式(默认 **/*.{ts,tsx,js,jsx}
CodeIndex({"path": "/projects/my-app"})
CodeIndex({"path": "/projects/my-app", "pattern": "**/*.py"})

CodeStats — 代码统计

查看当前代码索引的统计信息。无需参数。

CodeStats({})

返回:文件数、符号数、引用数、导入/导出数、索引大小。

CodeDependencies — 依赖分析

分析指定文件的依赖关系和修改影响范围。

参数 类型 必填 说明
path string 目标文件路径
CodeDependencies({"path": "src/core/engine.ts"})

返回:直接影响文件数、间接影响文件数、风险等级及因素。


工作流集成

代码工具与 WorkflowController 深度集成:

  • 事务管理:写操作(Write/Edit/CodeRefactor/CodeFormat)自动纳入事务,失败自动回滚
  • 检查点:关键操作后自动创建检查点,支持恢复
  • 脏文件追踪:修改后自动标记文件为脏,CodeEngine 下次搜索时增量同步
  • 模式检测:根据操作自动切换工作模式(Analysis → Refactor)