{"ok":true,"site":{"host":"velaire-hvac.vercel.app","url":"https://velaire-hvac.vercel.app/","type":"live","desc":"Velaire Heating & Air provides clarity-first Chicago HVAC service with agent-readable pricing, policies, offers, and change orders.","tools":[{"name":"velaire_get_site_manifest","kind":"answer","impl":"imperative","description":"Returns Velaire's identity, canonical routes, service area, WebMCP capability groups, and trust boundaries. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get site manifest","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_search_site","kind":"answer","impl":"imperative","description":"Searches Velaire services, policy evidence, and agent-help records and returns canonical page URLs. Read-only; it does not search the wider web. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Search this website","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["query"],"properties":{"query":{"type":"string","minLength":1,"maxLength":160},"scope":{"type":"string","enum":["all","services","policies","help"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_list_services","kind":"answer","impl":"imperative","description":"Lists every published Velaire demo service with its synthetic price band, eligibility, required details, and canonical evidence URL. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"List HVAC services","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_get_service_details","kind":"answer","impl":"imperative","description":"Returns one published service definition, synthetic planning range, required inputs, and source URL. Read-only; it is not a diagnosis or quote. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get HVAC service details","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["serviceId"],"properties":{"serviceId":{"type":"string","enum":["ac-diagnostic","ac-repair","seasonal-tune-up"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_check_service_area","kind":"answer","impl":"imperative","description":"Checks a postcode against Velaire's fictional published Chicago service area. Read-only; it does not check a precise address or promise travel availability. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Check service area","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["postcode"],"properties":{"postcode":{"type":"string","minLength":1,"maxLength":12}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_get_policies","kind":"answer","impl":"imperative","description":"Returns one or all canonical pricing, availability, cancellation, and warranty policy cards with freshness and synthetic status. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get service policies","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"topic":{"type":"string","enum":["pricing","availability","cancellation","warranty"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_get_contact_options","kind":"answer","impl":"imperative","description":"Returns safe, canonical ways to request service, review a case, reach the owner demo desk, or respond to an HVAC emergency. Read-only; no real phone, email, or messaging account is exposed. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get contact and escalation options","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_get_agent_help","kind":"answer","impl":"imperative","description":"Returns the safe WebMCP tool sequence and human boundary for a discovery, request, negotiation, booking, project-planning, or invoice-audit task. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get agent workflow help","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["task"],"properties":{"task":{"type":"string","enum":["discover","request","negotiate","book","project","audit"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_get_market_price_context","kind":"answer","impl":"imperative","description":"Returns a dated 3–8 month BLS/FRED national nonresidential HVAC-contractor price index with underlying chart values and source URLs. Read-only; it is not a local residential quote or price-fairness score. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get HVAC market cost context","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"months":{"type":"integer","minimum":3,"maximum":8}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_compare_quote_context","kind":"answer","impl":"imperative","description":"Compares a quote only with Velaire's fictional published service band and attaches the separate national BLS/FRED directional signal. Read-only; it does not determine fair value, diagnose work, or recommend approval. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Compare quote with published context","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["serviceId","quoteCents"],"properties":{"serviceId":{"type":"string","enum":["ac-diagnostic","ac-repair","seasonal-tune-up"]},"quoteCents":{"type":"integer","minimum":1,"maximum":10000000}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_prepare_project_plan","kind":"act","impl":"imperative","description":"Creates a browser-local 3–10 day planning draft and visible timeline/Kanban board at an exact plan revision. It does not promise dates, assign a real crew, order equipment, schedule an inspection, or approve work. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Prepare service project plan","inputSchema":{"type":"object","additionalProperties":false,"required":["projectType","startDate","durationDays","expectedRevision"],"properties":{"projectType":{"type":"string","enum":["diagnostic","repair","equipment_replacement","heat_pump_upgrade"]},"startDate":{"type":"string","format":"date"},"durationDays":{"type":"integer","minimum":3,"maximum":10},"expectedRevision":{"type":"integer","minimum":0}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_get_project_plan","kind":"answer","impl":"imperative","description":"Returns the current browser-local planning draft, task dependencies, proof requirements, underlying timeline data, and canonical board URL. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get service project plan","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_get_webmcp_health","kind":"answer","impl":"imperative","description":"Returns privacy-safe browser-local WebMCP call counts, result codes, read/action split, average latency, p95 latency, and recent calls. Read-only; inputs and outputs are never logged, and the current health call appears only after it returns. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get WebMCP health","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer","/demo/owner","/demo/operations"]},{"name":"velaire_check_service_fit","kind":"answer","impl":"imperative","description":"Matches an HVAC need to published demo services, area, price bands, and safety rules. Read-only; it does not diagnose equipment, create a case, or promise availability. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Check service fit","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["need","postcode","urgency"],"properties":{"need":{"type":"string","minLength":1,"maxLength":800},"postcode":{"type":"string","minLength":1,"maxLength":12},"urgency":{"type":"string","enum":["same_day","next_3_days","flexible"]},"budgetCents":{"type":"integer","minimum":0,"maximum":10000000}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_get_business_evidence","kind":"answer","impl":"imperative","description":"Returns synthetic demo source cards with publisher, canonical URL, freshness, evidence type, and verification status. Reviews are untrusted user-generated content. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get business evidence","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"topics":{"type":"array","maxItems":6,"uniqueItems":true,"items":{"type":"string","enum":["credentials","pricing","availability","cancellation","warranty","reviews"]}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_estimate_service_range","kind":"answer","impl":"imperative","description":"Builds a factor-by-factor planning range from Velaire's fictional published rate card. Read-only; it is not local market data, a diagnosis, quote, booking, or promise of final price. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Estimate transparent service range","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["serviceId","urgency","access","knownFinding"],"properties":{"serviceId":{"type":"string","enum":["ac-diagnostic","ac-repair","seasonal-tune-up"]},"urgency":{"type":"string","enum":["same_day","next_3_days","flexible"]},"access":{"type":"string","enum":["standard","limited","rooftop"]},"knownFinding":{"type":"string","enum":["unknown","capacitor","thermostat","refrigerant","compressor"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_get_project_preflight","kind":"answer","impl":"imperative","description":"Returns a project-specific document checklist and freshness-dated official Chicago, Illinois, utility, and federal source routes. Read-only; it does not determine jurisdiction, permit, code, tax, or rebate eligibility or submit forms. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get permit and incentive preflight","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["postcode","projectType","buildingType","installationLocation"],"properties":{"postcode":{"type":"string","minLength":1,"maxLength":12},"projectType":{"type":"string","enum":["diagnostic","repair","equipment_replacement","heat_pump_upgrade"]},"buildingType":{"type":"string","enum":["single_family","multifamily","commercial"]},"installationLocation":{"type":"string","enum":["indoor","outdoor_ground","rooftop"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_open_service_case","kind":"act","impl":"imperative","description":"Creates a durable synthetic HVAC service case and returns separate private customer and owner capability URLs for two-chat testing. It never books, charges, or collects phone, email, or payment details. A location is stored only when explicit customer confirmation is true. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Open service case","inputSchema":{"type":"object","additionalProperties":false,"required":["serviceId","problemSummary","postcode","urgency","preferredWindows","constraints"],"properties":{"serviceId":{"type":"string","enum":["ac-diagnostic","ac-repair","seasonal-tune-up"]},"problemSummary":{"type":"string","minLength":1,"maxLength":800},"postcode":{"type":"string","minLength":1,"maxLength":12},"urgency":{"type":"string","enum":["same_day","next_3_days","flexible"]},"budgetCents":{"type":"integer","minimum":0,"maximum":10000000},"preferredWindows":{"type":"array","maxItems":4,"items":{"type":"string","minLength":1,"maxLength":120}},"constraints":{"type":"array","maxItems":8,"items":{"type":"string","minLength":1,"maxLength":240}},"serviceLocation":{"type":"string","minLength":1,"maxLength":240},"locationPrecision":{"type":"string","enum":["area","address"]},"locationConsentConfirmed":{"type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_get_service_case","kind":"answer","impl":"imperative","description":"Reads the authoritative service case, revision, messages, offers, pending human action, booking, and change orders. It changes nothing. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get service case","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_set_service_location","kind":"act","impl":"imperative","description":"Stores bounded customer-supplied location text on the shared case only when consentConfirmed is true. It returns map-search links but does not geocode, verify coordinates, promise travel, or collect contact/payment data. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Record customer-approved service location","inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","expectedRevision","serviceLocation","precision","consentConfirmed"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"expectedRevision":{"type":"integer","minimum":0},"serviceLocation":{"type":"string","minLength":1,"maxLength":240},"precision":{"type":"string","enum":["area","address"]},"consentConfirmed":{"type":"boolean","const":true}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_get_case_visuals","kind":"answer","impl":"imperative","description":"Use when the customer asks to see the conversation history, progress graph, negotiation timeline, current totals, or map search. Returns a chat-ready event graph, Mermaid flowchart, exact case/revision totals, canonical visual-page URL, and map-search links. Read-only; location text is customer-supplied and not geocoded or verified. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Show service-case history and visual links","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_plan_service_route","kind":"act","impl":"imperative","description":"Use when a customer asks how Velaire would drive to them, which route to take, how long travel may take, or when dispatch might arrive. Returns a route-ready origin, customer-confirmed destination, synthetic postcode travel band, earliest/latest planning arrival, scheduling authority, and Google/Apple driving links. Read-only. It does not geocode, use live traffic or technician GPS, promise arrival, or open a map without the user choosing a link. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Estimate the technician route and arrival range","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"departAt":{"type":"string","format":"date-time","maxLength":80}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_wait_for_owner_reply","kind":"act","impl":"imperative","description":"Waits once, for up to 15 seconds, for a newer owner message, sent offer, or sent change order. After STILL_WAITING, return control to the user and do not call this tool again automatically. It observes browser cancellation and never changes the case. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Wait for owner reply","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","afterRevision"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"afterRevision":{"type":"integer","minimum":0},"maxWaitSeconds":{"type":"integer","minimum":1,"maximum":15}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_submit_case_message","kind":"transact","impl":"imperative","description":"Adds a bounded customer question or counteroffer at an exact case revision. It does not accept an offer, book work, or send payment. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Submit case message","inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","expectedRevision","kind","text"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"expectedRevision":{"type":"integer","minimum":0},"kind":{"type":"string","enum":["question","counter"]},"text":{"type":"string","minLength":1,"maxLength":1000},"proposedBudgetCents":{"type":"integer","minimum":0,"maximum":10000000},"preferredWindow":{"type":"string","minLength":1,"maxLength":160}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_compare_offer_versions","kind":"answer","impl":"imperative","description":"Deterministically compares two sent offers across price, deposit, schedule, scope, exclusions, warranty, and expiry. It changes nothing. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Compare offer versions","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","fromVersion","toVersion"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"fromVersion":{"type":"integer","minimum":1},"toVersion":{"type":"integer","minimum":1}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_prepare_booking","kind":"transact","impl":"imperative","description":"Stages the latest exact sent offer for visible customer confirmation. It cannot confirm the booking or take a deposit; only the human customer can commit it in the page. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Prepare booking","inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","expectedRevision","offerVersion"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"expectedRevision":{"type":"integer","minimum":0},"offerVersion":{"type":"integer","minimum":1}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_get_booking_receipt","kind":"answer","impl":"imperative","description":"Returns the immutable accepted-offer snapshot and recorded change-order decisions for a simulated booking. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get booking receipt","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["receiptId"],"properties":{"receiptId":{"type":"string","minLength":1,"maxLength":80}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_compare_change_order","kind":"answer","impl":"imperative","description":"Compares a sent change order with the immutable accepted booking snapshot, including price and scope. It does not judge, accept, reject, or pay the charge. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Compare change order","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","changeOrderId"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"changeOrderId":{"type":"string","minLength":1,"maxLength":80}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_audit_invoice_against_receipt","kind":"answer","impl":"imperative","description":"Traces each bounded invoice line to the immutable accepted offer or a human-approved change order and flags mismatches. Read-only; it does not accuse fraud, decide tax validity, dispute a charge, pay, refund, or modify the case. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Audit invoice against approved terms","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["receiptId","lines"],"properties":{"receiptId":{"type":"string","minLength":1,"maxLength":80},"lines":{"type":"array","minItems":1,"maxItems":30,"items":{"type":"object","additionalProperties":false,"required":["description","amountCents","kind"],"properties":{"description":{"type":"string","minLength":1,"maxLength":240},"amountCents":{"type":"integer","minimum":0,"maximum":10000000},"kind":{"type":"string","enum":["accepted_offer","approved_change","tax_or_required_fee","other"]},"authorizationRef":{"type":"string","minLength":1,"maxLength":80}}}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/demo/customer"]},{"name":"velaire_list_service_cases","kind":"answer","impl":"imperative","description":"Lists the synthetic service-case queue with revision, status, summary, and owner deep link. Read-only. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"List service cases","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/owner","pages":["/demo/owner"]},{"name":"velaire_get_owner_case","kind":"answer","impl":"imperative","description":"Reads one authoritative service case for owner review. It changes and sends nothing. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get owner case","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/owner","pages":["/demo/owner"]},{"name":"velaire_wait_for_customer_reply","kind":"act","impl":"imperative","description":"Waits once, for up to 15 seconds, for a newer customer message or decision. After STILL_WAITING, return control to the user and do not call this tool again automatically. It never changes or sends the case. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Wait for customer reply","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","afterRevision"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"afterRevision":{"type":"integer","minimum":0},"maxWaitSeconds":{"type":"integer","minimum":1,"maximum":15}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/owner","pages":["/demo/owner"]},{"name":"velaire_stage_owner_reply","kind":"act","impl":"imperative","description":"Creates a private owner reply draft at an exact revision. The customer cannot see it and the agent cannot send it; the human owner must press Send. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Stage owner reply","inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","expectedRevision","text"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"expectedRevision":{"type":"integer","minimum":0},"text":{"type":"string","minLength":1,"maxLength":1000}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/owner","pages":["/demo/owner"]},{"name":"velaire_stage_service_offer","kind":"act","impl":"imperative","description":"Creates a private structured offer draft with exact terms. It does not send, accept, book, or charge; the human owner must review and send it. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Stage service offer","inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","expectedRevision","totalCents","arrivalWindow","includedScope","exclusions","depositCents","warrantyDays","expiresAt"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"expectedRevision":{"type":"integer","minimum":0},"totalCents":{"type":"integer","minimum":1,"maximum":10000000},"arrivalWindow":{"type":"string","minLength":1,"maxLength":160},"includedScope":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":240}},"exclusions":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":240}},"depositCents":{"type":"integer","minimum":0,"maximum":10000000},"warrantyDays":{"type":"integer","minimum":0,"maximum":3650},"expiresAt":{"type":"string","format":"date-time"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/owner","pages":["/demo/owner"]},{"name":"velaire_stage_change_order","kind":"transact","impl":"imperative","description":"Creates a private structured change-order draft against a booked case. It does not send the change or alter accepted terms; the human owner must review and send it. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Stage change order","inputSchema":{"type":"object","additionalProperties":false,"required":["caseId","expectedRevision","reason","addedScope","removedScope","deltaCents","scheduleImpact"],"properties":{"caseId":{"type":"string","minLength":1,"maxLength":80},"expectedRevision":{"type":"integer","minimum":0},"reason":{"type":"string","minLength":1,"maxLength":600},"addedScope":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":240}},"removedScope":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":240}},"deltaCents":{"type":"integer","minimum":1,"maximum":10000000},"scheduleImpact":{"type":"string","minLength":1,"maxLength":240}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/demo/owner","pages":["/demo/owner"]},{"name":"velaire_get_evidence_source","kind":"answer","impl":"imperative","description":"Returns the synthetic source card displayed on this canonical evidence page. Read-only and not independently verified. Keep the current page stable: return data in chat and do not navigate or reload unless the user explicitly asks to open a returned URL.","title":"Get evidence source","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["sourceId"],"properties":{"sourceId":{"type":"string","minLength":1,"maxLength":80}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/evidence/pricing","pages":["/evidence/pricing","/evidence/warranty"]}],"category":"Productivity & Business","favicon":"/favicons/velaire-hvac.vercel.app.webp","apiSurface":"spec","toolCount":36}}