{
  "name": "FairPath Agent Tool Surface",
  "version": "0.1.0",
  "status": "read_heavy_broker_live",
  "homepage": "https://fairpath.app",
  "llms": "https://fairpath.app/llms.txt",
  "full_reference": "https://fairpath.app/llms-full.txt",
  "agent_guidance": "https://fairpath.app/ai-agents.txt",
  "discovery": {
    "canonical_manifest": "https://fairpath.app/agent-tools.json",
    "robots": "https://fairpath.app/robots.txt",
    "sitemap": "https://fairpath.app/sitemap.xml",
    "known_explicit_user_agents": [
      "GPTBot",
      "OAI-SearchBot",
      "ChatGPT-User",
      "PerplexityBot",
      "Perplexity-User",
      "ClaudeBot",
      "Claude-User",
      "Googlebot",
      "Google-Extended",
      "Bingbot",
      "Amazonbot",
      "CCBot"
    ],
    "fallback_crawl_policy": "robots.txt also allows User-agent: * so agent platforms without a documented crawler token can still discover FairPath public guidance.",
    "native_app_status": "No ChatGPT App, Claude connector, Gemini extension, Grok integration, or DeepSeek integration is live yet."
  },
  "agent_platforms": [
    {
      "platform": "chatgpt",
      "discovery_status": "public_guidance_and_manifest_live",
      "native_app_status": "not_live"
    },
    {
      "platform": "claude",
      "discovery_status": "public_guidance_and_manifest_live",
      "native_app_status": "not_live"
    },
    {
      "platform": "gemini",
      "discovery_status": "public_guidance_and_manifest_live",
      "native_app_status": "not_live"
    },
    {
      "platform": "grok",
      "discovery_status": "covered_by_user_agent_star_until_reliable_public_crawler_token_exists",
      "native_app_status": "not_live"
    },
    {
      "platform": "deepseek",
      "discovery_status": "covered_by_user_agent_star_until_reliable_public_crawler_token_exists",
      "native_app_status": "not_live"
    }
  ],
  "runtime": {
    "broker_url": "https://tjtspcwvzilazsqqluyy.supabase.co/functions/v1/fairpath-agent-broker",
    "method": "POST",
    "content_type": "application/json",
    "identity_headers": [
      "x-fairpath-agent-key",
      "x-fairpath-agent-session",
      "x-fairpath-agent-platform"
    ],
    "deployed_tools": [
      "get_county_requirements",
      "explain_argument_lanes",
      "check_property",
      "get_packet_status"
    ],
    "notes": [
      "Requests must include toolName, requestedScopes, grantedScopes, and input.",
      "check_property requires an approved x-fairpath-agent-key, x-fairpath-agent-session, and consent with addressConsentGranted=true, a recent ISO-8601 consentedAt timestamp, and an opaque evidenceId.",
      "The broker persists only hashes of the normalized address and consent evidence id before property lookup.",
      "get_packet_status requires packet:read plus a matching authenticated user bearer token or valid guest packet session token.",
      "Packet download URLs, checkout creation, and homeowner filing-status updates remain unavailable until separately shipped.",
      "Write-capable tools remain unavailable until separately shipped."
    ]
  },
  "mcp": {
    "status": "hosted_transport_live",
    "hosted_endpoint": "https://tjtspcwvzilazsqqluyy.supabase.co/functions/v1/fairpath-mcp-readonly",
    "protocol_version": "2025-06-18",
    "transport": "json_rpc_http",
    "tool_names": [
      "fairpath_get_county_requirements",
      "fairpath_explain_argument_lanes",
      "fairpath_check_property"
    ],
    "notes": [
      "The hosted MCP transport is live for the same read-only tools as the broker.",
      "No ChatGPT App is live yet.",
      "Only read-only tools are exposed through the MCP transport.",
      "Property checks require an approved agent identity, bound agent session, and recent consent attestation."
    ]
  },
  "service_boundary": {
    "national_posture": "FairPath accepts U.S. addresses and routes lower-depth jurisdictions into a national argument workflow with transparent data-confidence language, evidence gaps, notice uploads, owner facts, public records, ATTOM fallback where available, and jurisdiction-appropriate filing guidance where FairPath can responsibly provide it.",
    "deeper_automation_counties": [
      "harris_tx",
      "montgomery_tx",
      "fort_bend_tx",
      "brazoria_tx",
      "galveston_tx",
      "waller_tx",
      "collin_tx",
      "denton_tx"
    ],
    "compliance": "FairPath prepares property-tax argument records and evidence packets. The homeowner chooses whether to file and submits any county filing themselves. This is county-specific filing guidance, not legal or tax advice."
  },
  "product_capabilities": {
    "condition_to_quote": {
      "status": "founder_gated_rollout",
      "description": "FairPath can organize homeowner photos and repair facts into a preliminary modeled scope, compare nearby contractors, and prepare a non-anchoring quote request without revealing the modeled amount.",
      "homeowner_controls": [
        "contractor_selection",
        "property_address_sharing",
        "condition_photo_sharing",
        "final_message_review",
        "send_action"
      ],
      "currently_available": [
        "photo_and_scope_review",
        "nearby_contractor_discovery",
        "map_and_approximate_distance",
        "exact_quote_request_preview"
      ],
      "gated_next_lane": [
        "immutable_draft_persistence",
        "gmail_draft_creation",
        "confirmed_send_tracking",
        "reply_and_quote_intake",
        "contractor_verified_writeback"
      ],
      "prohibited_claims": [
        "preliminary_model_is_a_contractor_quote",
        "automatic_contractor_email",
        "automatic_follow_up",
        "contractor_contact_before_homeowner_send"
      ]
    }
  },
  "permission_scopes": [
    "public_guidance:read",
    "property:check",
    "argument_record:write",
    "checkout:create",
    "packet:read",
    "packet:update_status"
  ],
  "authenticated_lifecycle_contract": {
    "runtime_available": true,
    "runtime_available_tools": [
      "get_packet_status"
    ],
    "runtime_unavailable_tools": [
      "create_checkout_session",
      "get_packet_download_url",
      "record_homeowner_filed"
    ],
    "credential_types": [
      "authenticated_user",
      "guest_session_token"
    ],
    "rules": [
      "get_packet_status and get_packet_download_url require packet:read plus an owning authenticated user or valid guest session token.",
      "record_homeowner_filed requires packet:update_status plus homeownerConfirmed=true; FairPath must not claim it filed with the county.",
      "create_checkout_session requires checkout:create plus explicit confirmed purchase intent.",
      "Download URLs must be time-limited and must not be returned without the matching lifecycle credential."
    ]
  },
  "tools": [
    {
      "name": "get_county_requirements",
      "auth": "public",
      "scope": ["public_guidance:read"],
      "side_effect": "none",
      "runtime_available": true
    },
    {
      "name": "explain_argument_lanes",
      "auth": "public",
      "scope": ["public_guidance:read"],
      "side_effect": "none",
      "runtime_available": true
    },
    {
      "name": "check_property",
      "auth": "approved_identity_session_and_address_consent_required",
      "scope": ["property:check"],
      "side_effect": "none",
      "runtime_available": true
    },
    {
      "name": "build_argument_record",
      "auth": "address_consent_required",
      "scope": ["property:check", "argument_record:write"],
      "side_effect": "builds_argument_record",
      "runtime_available": false
    },
    {
      "name": "create_checkout_session",
      "auth": "auth_or_guest_token_required",
      "scope": ["checkout:create"],
      "side_effect": "creates_checkout",
      "runtime_available": false
    },
    {
      "name": "get_packet_status",
      "auth": "auth_or_guest_token_required",
      "scope": ["packet:read"],
      "side_effect": "none",
      "runtime_available": true
    },
    {
      "name": "get_packet_download_url",
      "auth": "auth_or_guest_token_required",
      "scope": ["packet:read"],
      "side_effect": "none",
      "runtime_available": false
    },
    {
      "name": "record_homeowner_filed",
      "auth": "auth_or_guest_token_required",
      "scope": ["packet:update_status"],
      "side_effect": "updates_homeowner_confirmed_status",
      "runtime_available": false
    }
  ],
  "prohibited_actions": [
    "direct_county_filing",
    "success_probability",
    "settlement_accept_decline_recommendation",
    "legal_advice",
    "tax_advice",
    "checkout_without_explicit_consent",
    "packet_access_without_auth_or_guest_token"
  ]
}
