{
  "protocolVersion": "1.0",
  "name": "Carpe Tree'em Public Tree Intake",
  "description": "Public tree-care intake agent for Carpe Tree'em. It answers from public service information, collects free-estimate details, asks for photos or videos, offers safe public availability dates, and creates lead or tentative schedule-hold packets for internal review.",
  "url": "https://carpetree.com/server/api/a2a.php",
  "version": "2026.07.03",
  "provider": {
    "organization": "Carpe Tree'em",
    "url": "https://carpetree.com"
  },
  "preferredTransport": "JSONRPC",
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "extensions": {
    "llmsTxt": "https://carpetree.com/llms.txt",
    "publicAvailabilityUrl": "https://carpetree.com/server/api/a2a-availability.php",
    "openApiActionsUrl": "https://carpetree.com/.well-known/carpetree-actions-openapi.json",
    "bookingModel": "free_estimate_and_job_work_by_day; paid_consultation_morning_preference_with_travel_review",
    "approvalPolicy": "All public schedule holds are tentative until CarpeTreeOS owner approval."
  },
  "securitySchemes": {
    "public": {
      "type": "none"
    }
  },
  "security": [
    {
      "public": []
    }
  ],
  "skills": [
    {
      "id": "answer_public_tree_question",
      "name": "Answer Public Tree Question",
      "description": "Answers general public tree-care questions without giving a final quote, diagnosis, emergency dispatch promise, or private business information.",
      "tags": [
        "tree-care",
        "public-info"
      ],
      "examples": [
        "Can you look at a cedar in Nelson?",
        "Do you work around power lines?"
      ]
    },
    {
      "id": "create_free_estimate_lead",
      "name": "Create Free Estimate Lead",
      "description": "Collects customer, site, tree, access, risk, and timing details for a free-estimate lead packet.",
      "tags": [
        "estimate",
        "lead-intake"
      ],
      "examples": [
        "I need an estimate for a spruce removal at 10 Usage Street in Nelson."
      ]
    },
    {
      "id": "request_media_upload",
      "name": "Request Photos Or Video",
      "description": "Asks for useful photos or video and points to the public quote form when a lead needs images or video.",
      "tags": [
        "media",
        "evidence"
      ]
    },
    {
      "id": "get_public_availability_dates",
      "name": "Get Public Availability Dates",
      "description": "Offers safe public availability dates for free estimates, job work, or paid consultations. It returns only redacted date choices and never exposes private calendar details.",
      "tags": [
        "availability",
        "scheduling"
      ],
      "examples": [
        "What dates can Carpe Tree'em look at a tree in Blewett?",
        "Can I request a morning consultation?"
      ]
    },
    {
      "id": "request_tentative_estimate_hold",
      "name": "Request Tentative Estimate Hold",
      "description": "Captures a date-level free-estimate or job-work hold, or a morning-preference consultation hold, for internal review. It does not confirm an appointment.",
      "tags": [
        "scheduling",
        "estimate"
      ]
    },
    {
      "id": "explain_service_area",
      "name": "Explain Service Area",
      "description": "Explains the public service-area boundary and asks for site details when serviceability is unclear.",
      "tags": [
        "service-area"
      ]
    },
    {
      "id": "explain_public_pricing_policy",
      "name": "Explain Public Pricing Policy",
      "description": "Explains that firm pricing requires a reviewed estimate, with photos and site context helping the estimator.",
      "tags": [
        "pricing",
        "policy"
      ]
    }
  ]
}
