{
  "$schema": "https://ar-agents.ar/schemas/tools.manifest.v1.json",
  "package": "@ar-agents/shipping",
  "version": "0.4.2",
  "description": "Argentine shipping carriers (Andreani, OCA, Correo Argentino) as drop-in tools for Vercel AI SDK 6+ agents.",
  "tools": [
    {
      "name": "cancelar_envio",
      "description": "Cancel a shipment that has not gone out for delivery (cancelar un envío). Returns { canceled: bool, reason? }. Si canceled=false, surface reason verbatim al usuario (típicamente 'ya está en reparto' o",
      "input": {
        "carrier?": "...",
        "tracking_number": "string"
      },
      "output": "CancelResult + { ok, available }"
    },
    {
      "name": "cotizar_envio",
      "description": "Quote the shipping cost with one carrier (cotizar un envío) (Andreani, OCA, o Correo Argentino). Pasá origen + destino + paquetes (peso + dimensiones + valor declarado) y servicio (standard, express, ",
      "input": {
        "carrier?": "andreani | oca | correo_argentino",
        "origin": "Address",
        "destination": "Address",
        "packages": "PackageInfo[]",
        "service?": "standard | express | same_day"
      },
      "output": "QuoteOption + { ok, available }"
    },
    {
      "name": "cotizar_envio_todos",
      "description": "Compare shipping quotes across ALL configured carriers in parallel (cotizar envío en todos los carriers). Returns { quotes: QuoteOption[] } ordenado por costo (más barato primero). USE WHEN el usuario",
      "input": {
        "origin": "Address",
        "destination": "Address",
        "packages": "PackageInfo[]",
        "service?": "..."
      },
      "output": "{ quotes: QuoteOption[], cheapest: QuoteOption, errors: { carrier, error }[] }"
    },
    {
      "name": "crear_envio",
      "description": "Create a real shipment and get a tracking number + label (crear un envío). RETURNS un trackingNumber + labelUrl + costo. SIDE EFFECT: el envío queda registrado en el sistema del carrier, confirma con ",
      "input": {
        "carrier?": "...",
        "origin": "Address",
        "destination": "Address",
        "packages": "PackageInfo[]",
        "service?": "...",
        "external_reference?": "string",
        "product_id?": "string (from cotizar_envio.productId to lock price)"
      },
      "output": "ShipmentCreated + { ok, available }"
    },
    {
      "name": "listar_sucursales",
      "description": "List carrier branch offices near a postal code (listar sucursales de un carrier) cerca de un Código Postal Argentino (CPA). Returns array con id, name, address, openingHours, distanceKm cuando disponi",
      "input": {
        "carrier?": "...",
        "postal_code": "string",
        "limit?": "number"
      },
      "output": "{ branches: Branch[], ok, available }"
    },
    {
      "name": "trackear_envio",
      "description": "Track a shipment by tracking number (trackear un envío, dónde está mi paquete). Returns { currentStatus, events[], deliveredAt? }. currentStatus normalizado a uno de: label_created, in_transit, out_fo",
      "input": {
        "carrier?": "...",
        "tracking_number": "string"
      },
      "output": "TrackingResult + { ok, available }"
    }
  ],
  "name": "@ar-agents/shipping",
  "meta": {
    "generated_by": "scripts/regen-manifests.mjs",
    "tool_count": 6
  }
}
