Card snapshot
tools.somosvelora.com
·
2026-06-12 10:27:05 UTC
·
2612fac859673510d599ed500bfbe3392fce8b9a171297883d433c5d97f47990
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "0.3.0",
"name": "Velora Supervisor",
"description": "Asistente IA para peque\u00f1os negocios y franquicias latinoamericanas (boutiques, pet shops, mini-markets, restaurantes). Responde sobre stock, ventas, pagos pendientes, proveedores, caja y resumen del d\u00eda. Primer agente de habla hispana orientado a SMB en la red A2A.",
"url": "https://somosvelora.com/api/a2a/jsonrpc",
"version": "1.0.0",
"provider": {
"organization": "Velora",
"url": "https://somosvelora.com"
},
"documentationUrl": "https://somosvelora.com",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"defaultInputModes": [
"text",
"data"
],
"defaultOutputModes": [
"text",
"data"
],
"skills": [
{
"id": "supervisor",
"name": "Velora Supervisor",
"description": "Procesa instrucciones complejas en castellano rioplatense para gesti\u00f3n de comercios peque\u00f1os. Descompone pedidos multi-paso, resuelve referencias de\u00edcticas, y devuelve acciones estructuradas o respuestas conversacionales.",
"tags": [
"smb",
"argentina",
"spanish",
"rioplatense",
"inventory",
"sales",
"commerce",
"pyme"
],
"examples": [
"cu\u00e1nto vend\u00ed hoy",
"qu\u00e9 tengo en stock",
"qui\u00e9n me debe plata",
"vend\u00ed 3 papas a Juan y cargu\u00e9 50 clavos del proveedor X",
"sub\u00ed 10% papas y baj\u00e1 5% vinos"
],
"inputModes": [
"text"
],
"outputModes": [
"text"
]
},
{
"id": "employee-event-router",
"name": "Velora Employee Event Router",
"description": "Recibe eventos as\u00edncronos del agente Empleado (LOW_STOCK, SHIFT_START, SHIFT_END) y decide la prioridad de notificaci\u00f3n al due\u00f1o: notify_now, daily_summary, o drop. Dise\u00f1ado para federaci\u00f3n: una Sucursal publica eventos a su Supervisor local, y el Supervisor de Franquicia agrega los eventos del nivel Sucursal sin tocar el flujo conversacional.",
"tags": [
"agent-bus",
"supervisor",
"notifications",
"federation",
"franchise",
"async"
],
"examples": [
"EMPLOYEE_EVENT type:LOW_STOCK saleId:abc alerts:[pintura blanca 2/5]",
"EMPLOYEE_EVENT type:SHIFT_START employeeId:emp-1"
],
"inputModes": [
"text",
"data"
],
"outputModes": [
"text",
"data"
]
}
],
"contracts": {
"consumes": [
{
"id": "velora.employee.event",
"version": "1.0.0",
"description": "EmployeeEvent v1 \u2014 se\u00f1ales del agente Empleado al Supervisor.",
"eventTypes": [
"LOW_STOCK",
"SHIFT_START",
"SHIFT_END",
"CASH_AT_RISK",
"BULK_IMPORT_COMPLETED",
"CHAT_MESSAGE",
"COMPANION_RESPONSE",
"SUPERVISOR_QUERY",
"STOCK_INGRESS_REQUEST"
]
}
],
"emits": [
{
"id": "velora.supervisor.notification",
"version": "1.0.0",
"description": "Decisi\u00f3n de prioridad de notificaci\u00f3n: now | daily | drop."
},
{
"id": "velora.supervisor.stock_ingress_decision",
"version": "1.0.0",
"description": "Decisi\u00f3n de aprobaci\u00f3n de ingreso de stock: { approved, anomaly, reason }."
}
]
},
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"name": "X-API-Key",
"in": "header",
"description": "API key de agente externo. Solicitar credenciales a hola@somosvelora.com."
}
},
"security": [
{
"ApiKeyAuth": []
}
],
"supportsAuthenticatedExtendedCard": false,
"contact": {
"name": "Velora",
"email": "hola@somosvelora.com",
"url": "https://somosvelora.com"
},
"x-rateLimits": {
"requestsPerMinutePerKey": 60,
"maxInputChars": 4000,
"retryAfterHeader": "Retry-After",
"errorCode": -32005
},
"x-sla": {
"uptimePercent": 99,
"maxResponseMs": 8000,
"dataResidency": "southamerica-east1"
},
"x-errors": [
{
"code": -32004,
"meaning": "Auth required \u2014 X-API-Key missing or invalid"
},
{
"code": -32005,
"meaning": "Rate limit exceeded \u2014 back off for Retry-After seconds"
},
{
"code": -32601,
"meaning": "Method not found"
},
{
"code": -32602,
"meaning": "Invalid params \u2014 message.parts must have at least one text part"
}
],
"x-agentIdentity": {
"kid": "velora-supervisor-v1",
"algorithm": "EdDSA",
"curve": "Ed25519",
"jwksUrl": "https://somosvelora.com/api/agents/supervisor/jwks"
}
}