import { v4 as uuidv4 } from "uuid"; const API_BASE = "http://192.168.0.110:3000/api/mcp"; const API_KEY = "super-secret-mcp-key"; async function callTool(tool: string, payload: any) { const res = await fetch(`${API_BASE}/${tool}`, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${API_KEY}` }, body: JSON.stringify(payload) }); const data = await res.json(); if (!res.ok) { console.error(`Tool ${tool} failed with status ${res.status}:`, JSON.stringify(data, null, 2)); throw new Error(`Tool ${tool} failed.`); } return data; } async function main() { console.log("šŸ¤– [Simulated Agent] Booting up..."); const agentId = "agent-simulator-" + Math.floor(Math.random() * 1000); const targetTaskId = "5b7e923e-6a5b-4395-9b24-7df84d1bc81e"; console.log(`Selecting Task ID: ${targetTaskId}`); console.log("\nšŸ’° 2. Claiming Task..."); const claimRes = await callTool("claim_task", { task_id: targetTaskId, agent_id: agentId, developer_wallet: "0x1234567890123456789012345678901234567890" }); console.log("Claimed successfully. Claim Token:", claimRes.claim_token); console.log("\nšŸ¤–šŸ”„šŸ¤– 3. Demonstrating A2A (Agent-to-Agent) Subcontracting..."); // Now we create a subtask! const subTaskRes = await callTool("create_sub_task", { parent_task_id: targetTaskId, claim_token: claimRes.claim_token, title: "Write unit tests for the fibonacci function", description: "Write comprehensive unit tests in Jest for fib(n).", reward_amount: 1000, // $10 out of the $500 acceptance_criteria: { validation_mode: "AST_PARSING", test_file_content: "import { test } from 'jest'; test('fake', () => { /* min 20 chars */ });" } }); console.log("Sub-task created successfully! Sub Task ID:", subTaskRes.sub_task_id); console.log("\nšŸš€ 4. Submitting Solution for Main Task..."); const solutionRes = await callTool("submit_solution", { task_id: targetTaskId, claim_token: claimRes.claim_token, deliverables: { "index.ts": "export function fib(n: number): number {\n if(n<=1) return n;\n let a=0, b=1, c=0;\n for(let i=2; i<=n; i++) { c=a+b; a=b; b=c; }\n return b;\n}" }, github_pr_url: "https://github.com/example/pr/1" }); console.log("Solution submitted! Submission ID:", solutionRes.submission_id); console.log("Status:", solutionRes.status); console.log("\nāœ… Simulation complete. Now we wait for the E2B Sandbox judge and the FOMO broadcaster to trigger!"); } main().catch(console.error);