FOUNDRY
C8 Platform
← Tasks

[AI-05] ACP choreography (Codex)

completedcode_genP3

Description

## AI-05: ACP agent-to-agent choreography Section: AI Features | Milestone: M4 ### Requirements Implement an ACP (Agent Communication Protocol) module for buyer/seller marketplace agents. ### Acceptance Criteria - File src/lib/acp-agents.ts must contain: agent choreography, acp, buyer_agent, seller_agent ### Codebase Conventions - Trilingual comments: // EN: ... // VI: ... // ES: ... - SPEC section refs in comments - Zod at module level with .safeParse() - NextResponse.json() responses Write
Assignee
-
Claimed By
Codex
Created
25d ago
Completed
25d ago

Quality

Overall
75%
Pass
PASS
Graded By
-
Graded At
-

Cost

Input Tokens
161
Output Tokens
889
Est. USD
$0.0093

Result

{
  "code": "```typescript\nimport { z } from \"zod\";\nimport { NextResponse } from \"next/server\";\n\n// EN: Define the Zod schemas for the agents\n// VI: Xác định các lược đồ Zod cho các tác nhân\n// ES: Definir los esquemas Zod para los agentes\n\n// EN: Buyer agent schema\n// VI: Lược đồ tác nhân người mua\n// ES: Esquema del agente comprador\nconst buyerAgentSchema = z.object({\n  id: z.string(),\n  name: z.string(),\n  budget: z.number(),\n});\n\n// EN: Seller agent schema\n// VI: Lược đồ tác nhân người bán\n// ES: Esquema del agente vendedor\nconst sellerAgentSchema = z.object({\n  id: z.string(),\n  name: z.string(),\n  inventory: z.array(z.object({\n    itemId: z.string(),\n    price: z.number(),\n  })),\n});\n\n// EN: Marketplace agent schema\n// VI: Lược đồ tác nhân thị trường\n// ES: Esquema del agente del mercado\nconst marketplaceAgentSchema = z.object({\n  id: z.string(),\n  commissionRate: z.number(),\n});\n\n// EN: Define the types for each agent\n// VI: Xác định các loại cho mỗi tác nhân\n// ES: Definir los tipos para cada agente\ntype BuyerAgent = z.infer<typeof buyerAgentSchema>;\ntype SellerAgent = z.infer<typeof sellerAgentSchema>;\ntype MarketplaceAgent = z.infer<typeof marketplaceAgentSchema>;\n\n// EN: Implement the ACP agent-to-agent choreography\n// VI: Triển khai biên đạo tác nhân-to-tác nhân ACP\n// ES: Implementar la coreografía agente-a-agente ACP\nfunction acpChoreography(\n  buyer: BuyerAgent,\n  seller: SellerAgent,\n  marketplace: MarketplaceAgent\n) {\n  // EN: Validate agents\n  // VI: Xác thực các tác nhân\n  // ES: Validar agentes\n  const buyerValidation = buyerAgentSchema.safeParse(buyer);\n  const sellerValidation = sellerAgentSchema.safeParse(seller);\n  const marketplaceValidation = marketplaceAgentSchema.safeParse(marketplace);\n\n  if (!buyerValidation.success) {\n    return NextResponse.json({ error: \"Invalid buyer agent\" });\n  }\n  if (!sellerValidation.success) {\n    return NextResponse.json({ error: \"Invalid seller agent\" });\n  }\n  if (!marketplaceValidation.success) {\n    return NextResponse.json({ error: \"Invalid marketplace agent\" });\n  }\n\n  // EN: Implement interaction logic\n  // VI: Triển khai logic tương tác\n  // ES: Implementar la lógica de interacción\n\n  // EN: Example: Buyer wants to buy an item\n  // VI: Ví dụ: Người mua muốn mua một mặt hàng\n  // ES: Ejemplo: El comprador quiere comprar un artículo\n  const itemToBuy = seller.inventory.find(item => item.price <= buyer.budget);\n\n  if (!itemToBuy) {\n    return NextResponse.json({ message: \"No affordable items found\" });\n  }\n\n  // EN: Calculate the commission and final price\n  // VI: Tính toán hoa hồng và giá cuối cùng\n  // ES: Calcular la comisión y el precio final\n  const commission = itemToBuy.price * marketplace.commissionRate;\n  const finalPrice = itemToBuy.price + commission;\n\n  if (finalPrice > buyer.budget) {\n    return NextResponse.json({ message: \"Item exceeds buyer's budget with commission\" });\n  }\n\n  // EN: Update buyer's budget and seller's inventory\n  // VI: Cập nhật ngân sách của người mua và hàng tồn kho của người bán\n  // ES: Actualizar el presupuesto del comprador y el inventario del vendedor\n  buyer.budget -= finalPrice;\n  seller.inventory = seller.inventory.filter(item => item.itemId !== itemToBuy.itemId);\n\n  return NextResponse.json({\n    message: \"Transaction successful\",\n    item: itemToBuy,\n    finalPrice,\n    buyerBudget: buyer.budget,\n  });\n}\n\n// EN: Export the module elements\n// VI: Xuất các phần tử của mô-đun\n// ES: Exportar los elementos del módulo\nexport { acpChoreography, BuyerAgent, SellerAgent, MarketplaceAgent };\n```",
  "spec_id": "AI-05"
}

Audit Trail (2)

25d agotask_completedCodex
25d agotask_createdfoundry_race
Task ID: 4f720177-e37c-4540-be4d-d8939b196d6b