ai-worktool 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- ## 1.0.10 (2025-08-03)
1
+ ## 1.0.12 (2025-08-03)
2
2
 
3
3
 
4
4
  ### Bug Fixes
@@ -146,6 +146,7 @@
146
146
  * Refactor CLI and program structure, update commands for testing and fixing code ([8dcbb19](https://codeup.aliyun.com/666cf9ed29ecbe23053513a3/JianGuoKe/ai-worktools/commits/8dcbb191fc8a95a40e07647de337452935926b10))
147
147
  * **test/demo:** 添加用户成绩 API 路由 ([6f838c7](https://codeup.aliyun.com/666cf9ed29ecbe23053513a3/JianGuoKe/ai-worktools/commits/6f838c7fda9924b1e5a7556d0a429427a652b985))
148
148
  * **test:** 添加 demo ([403c8fe](https://codeup.aliyun.com/666cf9ed29ecbe23053513a3/JianGuoKe/ai-worktools/commits/403c8fe37d39a21936561e743087d6b25ab6ad56))
149
+ * **testAgent:** 添加onReady回调并移动覆盖率显示逻辑 ([746dfa3](https://codeup.aliyun.com/666cf9ed29ecbe23053513a3/JianGuoKe/ai-worktools/commits/746dfa39da2c010bf61e916a669b4fc77bc4661c))
149
150
  * **toolbox:** 新增测试结果解析和错误查找工具 ([129decd](https://codeup.aliyun.com/666cf9ed29ecbe23053513a3/JianGuoKe/ai-worktools/commits/129decd2ada2db843b08d1383680a2675ef7b003))
150
151
  * **toolbox:** 优化函数文档生成和行号处理 ([9a16317](https://codeup.aliyun.com/666cf9ed29ecbe23053513a3/JianGuoKe/ai-worktools/commits/9a163177914a2d175665697e1b5c9754488f7d62))
151
152
  * **toolbox:** 重构并增强项目配置检测功能 ([6cc4e33](https://codeup.aliyun.com/666cf9ed29ecbe23053513a3/JianGuoKe/ai-worktools/commits/6cc4e33a58c7ebb622d27bc643c1e65d1e8af577))
package/dist/program.js CHANGED
@@ -9,10 +9,14 @@ const path_1 = __importDefault(require("path"));
9
9
  const testAgent_1 = require("./testAgent");
10
10
  const tools_1 = require("./tools");
11
11
  const view_1 = require("./view");
12
+ // import { showCoverageView } from './view';
12
13
  const program = new commander_1.Command();
13
- program.name('testAgent').description('吃豆豆:单测智能体').version('1.0.0');
14
+ program.name('testAgent').description('吃豆豆:单测智能体').version('1.0.1');
15
+ // 屏蔽调试日志
16
+ const logHandler = console.log;
17
+ console.log = () => { };
14
18
  program
15
- .command('start')
19
+ .command('start [projectRoot]')
16
20
  .description('启动单测智能体,根据源代码文件开始补全单测代码,直到覆盖率100%')
17
21
  .option('-p, --platform <string>', '智能体平台', 'jianguoke')
18
22
  .option('-r, --projectRoot <directory>', '源代码文件夹', (txt) => path_1.default.resolve(txt), process.cwd())
@@ -21,15 +25,30 @@ program
21
25
  .option('-c, --coverageDir <string>', '覆盖率报告文件夹', 'coverage')
22
26
  .option('--autoCommit <boolean>', '覆盖率报告文件夹', (txt) => txt === 'true', true)
23
27
  .option('--fullCoverageEnd <boolean>', '是否在达到100%覆盖率后结束', (txt) => txt === 'true', true)
24
- .action((options) => (0, testAgent_1.startTestAgent)(options));
28
+ .action(async (projectRoot, options) => {
29
+ let projectConfig;
30
+ (0, testAgent_1.startTestAgent)({
31
+ ...options,
32
+ projectRoot: projectRoot || options.projectRoot,
33
+ onReady: async (project) => {
34
+ projectConfig = project;
35
+ },
36
+ onMessage: async (message) => {
37
+ logHandler(message);
38
+ if (message.includes('当前代码总覆盖率')) {
39
+ await (0, view_1.loadAndDisplayCoverage)(path_1.default.join(projectConfig.projectRoot, projectConfig.coverageDir, view_1.COVERAGE_FILE_PATH), 0);
40
+ }
41
+ }
42
+ });
43
+ });
25
44
  program
26
- .command('showCoverage')
45
+ .command('showCoverage [projectRoot]')
27
46
  .description('监控代码覆盖率报告')
28
47
  .option('-r, --projectRoot <directory>', '源代码文件夹', (txt) => path_1.default.resolve(txt), process.cwd())
29
48
  .option('-c, --coverageDir <string>', '覆盖率报告文件夹', 'coverage')
30
- .action(async (options) => {
31
- await (0, tools_1.runJestTests)(options.projectRoot);
32
- await (0, view_1.showCoverageView)(path_1.default.join(options.projectRoot, options.coverageDir));
49
+ .action(async (projectRoot, options) => {
50
+ await (0, tools_1.runJestTests)(projectRoot || options.projectRoot);
51
+ // await showCoverageView(path.join(options.projectRoot, options.coverageDir));
33
52
  });
34
53
  exports.default = program;
35
54
  //# sourceMappingURL=program.js.map
package/dist/testAgent.js CHANGED
@@ -7,12 +7,12 @@ exports.startTestAgent = startTestAgent;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const agents_1 = require("./agents");
9
9
  const tools_1 = require("./tools");
10
- const view_1 = require("./view");
11
10
  async function startTestAgent(options) {
12
11
  const ctrl = options.controller;
13
12
  const log = options.onMessage || console.log;
14
13
  let isErrorEnd = false;
15
14
  log(`开始干活... 😎`);
15
+ console.log(options.projectRoot);
16
16
  try {
17
17
  // 工作流程:
18
18
  // 1、检查当前项目单元测试工具是否安装好,否则安装测试工具搭建测试环境
@@ -22,6 +22,7 @@ async function startTestAgent(options) {
22
22
  await (0, tools_1.initProject)(options.projectRoot, projectConfig.packageManager);
23
23
  }
24
24
  await (0, tools_1.setupTestEnvironment)(projectConfig.projectRoot, projectConfig.packageManager, projectConfig.languages[0], projectConfig.testFramework);
25
+ await options.onReady?.(projectConfig);
25
26
  let toolCalls = null;
26
27
  let lastTestResult = null;
27
28
  let lastFailedTest = null;
@@ -102,7 +103,6 @@ async function startTestAgent(options) {
102
103
  break;
103
104
  }
104
105
  log(`当前代码总覆盖率为${parseFloat(total[options.checkPct || 'branches'].pct.toString()) || 0}%`);
105
- await (0, view_1.loadAndDisplayCoverage)(path_1.default.join(projectConfig.projectRoot, projectConfig.coverageDir, view_1.COVERAGE_FILE_PATH), 0);
106
106
  const finished = total[options.checkPct || 'branches'].pct >= 100;
107
107
  if (!finished) {
108
108
  for (const filePath of Object.keys(files)) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ai-worktool",
3
3
  "displayName": "吃豆豆:单测智能体",
4
- "version": "1.0.10",
4
+ "version": "1.0.12",
5
5
  "description": "单元测试智能体,帮你开发单元测试用例代码直到100%单测覆盖通过。",
6
6
  "author": "jianguoke.cn",
7
7
  "license": "MIT",
@@ -12,7 +12,7 @@
12
12
  "scripts": {
13
13
  "watch": "tsc -w",
14
14
  "build": "tsc",
15
- "test": "jest --passWithNoTests test/tools/*.test.ts",
15
+ "test": "jest test/tools",
16
16
  "plugin": "ts-node ./tools.ts && dify plugin package plugins/dify-plugin",
17
17
  "package": "cross-env PKG_CACHE_PATH=./binaries pkg . --targets node20-win-x64 --out-path aicoder ",
18
18
  "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
@@ -280,6 +280,7 @@
280
280
  "ovsx": "^0.10.5",
281
281
  "ts-jest": "^29.4.0",
282
282
  "ts-node": "^10.9.2",
283
+ "typescript": "^5.9.2",
283
284
  "vsce": "^2.6.4"
284
285
  },
285
286
  "jest": {