{"audit":{"version":"1.3","generated_at":"2026-05-23T00:28:36.066507+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/oracle.whaber.ai","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"oracle.whaber.ai","name":"Whaber Oracle","url":"https://oracle.whaber.ai/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Whaber Travel-Ops","url":"https://whaber.ai"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":null,"supports_streaming":false,"supports_push_notifications":true},"operational":{"live_state":"live","live_responds":true,"last_status_code":200,"last_elapsed_ms":28,"last_error":null},"track_record":{"first_seen":"2026-05-18T12:38:08.809712+00:00","last_checked":"2026-05-22T12:57:35.639742+00:00","last_seen_ok":"2026-05-22T12:57:35.639742+00:00","checks_total":9,"checks_ok":9,"uptime_pct":100.0,"archived":false,"archived_reason":null},"conformance":{"score":69,"grade":"C","summary":"C-grade: usable but has clear conformance issues — review the breakdown below.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Schema-validated A2A AgentCard returned by the well-known endpoint."},{"key":"live_responds","label":"Live JSON-RPC","points":25,"max_points":25,"status":"pass","detail":"Endpoint responds to message/send with valid JSON-RPC."},{"key":"protocol_version","label":"Protocol version","points":0,"max_points":10,"status":"fail","detail":"No protocolVersion in card."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":15,"max_points":15,"status":"pass","detail":"9/9 probes succeeded (100% uptime)."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 10 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Whaber Travel-Ops (https://whaber.ai). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"No securitySchemes declared (common for open agents — not penalised)."}]},"skills":[{"id":"whaber_get_safe_pickup_point","name":"get safe pickup point","description":"Returns a physically verified, safe pickup point for a hotel or airport in Quito. Coordinates validated by local drivers and operations team. Includes available carriers and instructions for the guest. Zone safety label is semantic only (safe/caution/avoid) — raw risk scores are NEVER exposed (moatGuard enforced).","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_calculate_ops_window","name":"calculate ops window","description":"Calculates the recommended departure time for a transfer in Quito, including real traffic buffers, airport wait times, and Quito-specific time modifiers (altitude, terminal distance). Uses Google Routes API v2 with real-time traffic data.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_validate_carrier_compliance","name":"validate carrier compliance","description":"Validates whether a carrier holds all 7 required ANT documents in Ecuador: cédula, licencia profesional, puntos, antecedentes, póliza RC, ANT habilitación, matrícula. Returns compliant/non-compliant. Missing one document = TOTAL BLOCK. Zero exceptions. This is the Whaber Compliance Gate — not advisory.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_query_place_safety","name":"query place safety","description":"Returns the operational safety classification for a zone and time window in Quito. Returns semantic label only: safe / caution / avoid. moatGuard guarantees raw computed_score, risk_index, and safety_margin are NEVER exposed.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_get_hotel_context","name":"get hotel context","description":"Returns the operational context for a hotel registered in the Whaber Place Graph: preferred pickup point, checkout policy, VIP rules, and available Whaber services.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_validar_vuelo","name":"validar vuelo","description":"Returns real-time flight status from AeroDataBox webhooks (push updates < 30s) plus derived terminal assignment for Mariscal Sucre UIO: T1 (domestic) or T2 (international). Grounds all transfer operations to actual flight state — never estimated. Includes delay minutes and gate changes.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_enriched_route","name":"enriched route","description":"Calculates a transfer route with real-time traffic via Google Routes API v2, Place Graph safety overlays, and encoded polylines. Returns ETA, distance in km, traffic alerts, and night-mode risk flag. Highest-cost tool — use when route fidelity is critical for scheduling.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_compliance_gate","name":"compliance gate","description":"Full 7-document ANT compliance check for a carrier in Ecuador. Hard gate: returns binary compliant/non-compliant verdict. Missing ANY of the 7 documents triggers a FULL SERVICE BLOCK — not advisory. 7 documents: cédula, licencia profesional, puntos de licencia, antecedentes penales, póliza RC, ANT habilitación (taxi ejecutivo), matrícula vehículo.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_recompute_zone_safety","name":"recompute zone safety","description":"Triggers a recalculation of the safety classification for a Quito zone after a new driver report or verified incident. Updates the Place Graph in real time. Returns the new semantic label (safe/caution/avoid). moatGuard: internal computed_score is NEVER exposed in the response.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"whaber_resolver_direccion","name":"resolver direccion","description":"Geocodes a free-text address or place name against the Whaber Place Graph (478 POIs, 20 zones) with fuzzy matching tuned for Quito naming conventions (barrios, landmarks, hotel names in Spanish and English). Falls back to Google Maps MCP if no Place Graph match. Returns verified coordinates and the matched POI node if found.","tags":[],"examples":[],"inputModes":["application/json"],"outputModes":["application/json"]}],"provenance":[{"source":"mcp_registry","first_seen":"2026-05-18T12:38:08.809712+00:00"},{"source":"recrawl_hot","first_seen":"2026-05-21T13:51:42.566171+00:00"}],"recent_probes":[{"fetched_at":"2026-05-22T12:57:35.639742+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":28,"live_responds":true},{"fetched_at":"2026-05-22T06:15:52.349806+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":42,"live_responds":true},{"fetched_at":"2026-05-21T13:51:42.566171+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":24,"live_responds":true},{"fetched_at":"2026-05-20T09:41:34.884992+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":31,"live_responds":true},{"fetched_at":"2026-05-20T07:04:42.353600+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":22,"live_responds":true},{"fetched_at":"2026-05-20T03:08:57.702085+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":19,"live_responds":true},{"fetched_at":"2026-05-18T23:50:32.068968+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":17,"live_responds":true},{"fetched_at":"2026-05-18T14:54:22.383728+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":31,"live_responds":true},{"fetched_at":"2026-05-18T12:38:08.809712+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":19,"live_responds":true}],"catalog_attestation":null,"verification_history":[]}