初始提交:ai-review 项目当前版本(含赛道一/二提交规范修订与时间节点文档)

This commit is contained in:
hangshuo652
2026-08-23 11:52:45 +08:00
commit 4da7044c4b
152 changed files with 33490 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
import http from 'http';
function req(method, path, body, token) {
return new Promise((resolve, reject) => {
const opts = { hostname: 'localhost', port: 3002, path, method, headers: { 'Content-Type': 'application/json' } };
if (token) opts.headers['Authorization'] = 'Bearer ' + token;
const r = http.request(opts, res => { let d = ''; res.on('data', c => d += c); res.on('end', () => resolve(JSON.parse(d))); });
r.on('error', reject);
if (body) r.end(JSON.stringify(body)); else r.end();
});
}
const token = (await req('POST', '/api/auth/login', { password: 'admin123' })).token;
// Get first project
const projects = await req('GET', '/api/projects', null, token);
const pid = projects[0]?.id;
if (!pid) { console.log('No project found'); process.exit(1); }
console.log('Project:', pid);
// Create a standard if none
const standards = await req('GET', `/api/projects/${pid}/standards`, null, token);
if (standards.length === 0) {
const std = await req('POST', `/api/projects/${pid}/standards`, {
name: 'L2标准', content: '## 功能完整性(25分)\n要点\n## 设计文档(15分)\n要点\n## 测试用例(10分)\n要点\n## 代码质量(10分)\n要点\n## AGENTS.md15分)\n要点\n## 样本数据(15分)\n要点\n## 演示录屏(10分)\n要点'
}, token);
console.log('Standard created:', std.dimensions.length, 'dims');
}
// Test start review (will fail since repo doesn't exist, but tests the flow)
const entries = await req('GET', `/api/projects/${pid}/entries?limit=5`, null, token);
if (entries.items.length > 0) {
const eid = entries.items[0].id;
console.log('Entry:', entries.items[0].title, 'status:', entries.items[0].status);
const result = await req('POST', `/api/projects/${pid}/entries/${eid}/start`, null, token);
console.log('Start:', result.success ? 'OK' : 'FAIL', JSON.stringify(result));
// Wait a bit then check status
await new Promise(r => setTimeout(r, 2000));
const updated = await req('GET', `/api/projects/${pid}/entries/${eid}`, null, token);
console.log('Status after start:', updated.status);
// Test cancel
if (['queued', 'cloning', 'analyzing'].includes(updated.status)) {
await req('POST', `/api/projects/${pid}/entries/${eid}/cancel`, null, token);
const cancelled = await req('GET', `/api/projects/${pid}/entries/${eid}`, null, token);
console.log('After cancel:', cancelled.status);
}
// Test batch start
const batchResult = await req('POST', `/api/projects/${pid}/entries/batch-start`, { entryIds: [eid] }, token);
console.log('Batch start:', JSON.stringify(batchResult));
}
// verify the whole list endpoint works
const fullList = await req('GET', `/api/projects/${pid}/entries?offset=0&limit=10`, null, token);
console.log('List:', fullList.total, 'entries, offset:', fullList.offset, 'limit:', fullList.limit);
console.log('\n✅ Phase 2 core endpoints verified');