import { generateRequestBody } from './utils.js'; // 测试场景:user -> assistant -> assistant(工具调用,无content) -> tool1结果 -> tool2结果 const testMessages = [ { role: "user", content: "帮我查询天气和新闻" }, { role: "assistant", content: "好的,我来帮你查询。" }, { role: "assistant", content: "", tool_calls: [ { id: "call_001", type: "function", function: { name: "get_weather", arguments: JSON.stringify({ city: "北京" }) } }, { id: "call_002", type: "function", function: { name: "get_news", arguments: JSON.stringify({ category: "科技" }) } } ] }, { role: "tool", tool_call_id: "call_001", content: "北京今天晴,温度25度" }, { role: "tool", tool_call_id: "call_002", content: "最新科技新闻:AI技术突破" } ]; const testTools = [ { type: "function", function: { name: "get_weather", description: "获取天气信息", parameters: { type: "object", properties: { city: { type: "string" } } } } }, { type: "function", function: { name: "get_news", description: "获取新闻", parameters: { type: "object", properties: { category: { type: "string" } } } } } ]; console.log("=== 测试消息转换 ===\n"); console.log("输入 OpenAI 格式消息:"); console.log(JSON.stringify(testMessages, null, 2)); const result = generateRequestBody(testMessages, "claude-sonnet-4-5", {}, testTools); console.log("\n=== 转换后的 Antigravity 格式 ===\n"); console.log(JSON.stringify(result.request.contents, null, 2)); console.log("\n=== 验证结果 ==="); const contents = result.request.contents; console.log(`✓ 消息数量: ${contents.length}`); console.log(`✓ 第1条 (user): ${contents[0]?.role === 'user' ? '✓' : '✗'}`); console.log(`✓ 第2条 (model): ${contents[1]?.role === 'model' ? '✓' : '✗'}`); console.log(`✓ 第3条 (model+tools): ${contents[2]?.role === 'model' && contents[2]?.parts?.length === 2 ? '✓' : '✗'}`); console.log(`✓ 第4条 (tool1 response): ${contents[3]?.role === 'user' && contents[3]?.parts[0]?.functionResponse ? '✓' : '✗'}`); console.log(`✓ 第5条 (tool2 response): ${contents[4]?.role === 'user' && contents[4]?.parts[0]?.functionResponse ? '✓' : '✗'}`);