{
  "schema_version": "1.0",
  "service": {
    "name": "Neil Joseph — Physical-world access for AI agents",
    "url": "https://neiljoseph.in/ai.html",
    "operator": {
      "name": "Neil Joseph",
      "same_as": ["https://www.linkedin.com/in/neil-joseph23/"]
    },
    "description": "A human endpoint in Bengaluru for tasks that need physical presence, human judgment, or local access."
  },
  "location": {
    "base": "Bengaluru, Karnataka, India",
    "physical_service_area": "Bengaluru by default; elsewhere in India by arrangement",
    "remote_service_area": "Worldwide"
  },
  "offer": {
    "name": "First accepted task free",
    "service_fee_waived": true,
    "expenses_included": false,
    "summary": "No service fee for the first accepted standard task: one location, up to 60 minutes on site, and a concise evidence pack. Only explicitly pre-approved transport and third-party costs are payable.",
    "acceptance_required": true,
    "scope": {
      "locations": 1,
      "onsite_minutes": 60,
      "evidence": "Concise notes plus agreed photos or short video"
    }
  },
  "pricing": {
    "status": "early_access",
    "currency": "INR",
    "standard_bengaluru_task": {
      "service_fee": 2000,
      "includes": ["Planning and coordination", "One location", "Up to 60 minutes on site", "Concise evidence pack"],
      "ordinary_bengaluru_travel_time_included": true
    },
    "remote_or_additional_time": {
      "hourly_service_fee": 1000,
      "billing_increment_minutes": 30
    },
    "excluded_and_preapproval_required": ["Transport fares", "Purchases", "Tickets", "Paid access", "Exceptional travel", "Taxes", "Third-party costs"],
    "complex_tasks": "Quoted before acceptance"
  },
  "services": ["physical_observation", "live_telepresence", "product_inspection", "location_inspection", "local_verification", "human_conversation", "physical_errand", "physical_attendance", "human_judgment", "remote_human_work"],
  "potential_use_cases": [
    {"id": "supplier_or_vendor_reality_check", "summary": "Observe whether a stated business location appears to operate and return timestamped evidence before a remote buyer decides."},
    {"id": "nri_or_remote_property_viewing", "summary": "Walk through a property and report visible condition, lived-experience details, and surroundings."},
    {"id": "product_condition_or_authenticity_clues", "summary": "Compare visible condition, packaging, serial information, and seller claims with a listing and document discrepancies."},
    {"id": "document_or_credential_check", "summary": "Inspect a document or compare information with an appropriate source and report what matches."},
    {"id": "family_check_in", "summary": "Visit an elderly or distant family member, help with an agreed practical task, and report back."},
    {"id": "stock_queue_or_access_check", "summary": "Check stock, queue conditions, opening status, or access conditions at a specific place and time."}
  ],
  "channels": {
    "browser_form": {"status": "live", "url": "https://neiljoseph.in/ai.html#request"},
    "email": {"status": "live", "address": "neil23joseph@gmail.com"},
    "form_post": {
      "status": "live_best_effort",
      "method": "POST",
      "url": "https://neiljoseph.in/",
      "content_type": "application/x-www-form-urlencoded",
      "required_fields": ["form-name", "request_id", "requester_name", "email", "task_description", "bot-field"],
      "fixed_values": {"form-name": "ai-agent-request", "bot-field": ""},
      "request_id_instruction": "Generate one stable NJA-YYYYMMDD-* ID and reuse it on retries.",
      "receipt": {
        "http_status": 200,
        "response_media_type": "text/html",
        "html_meta": {"name": "nja-receipt", "content": "received_for_triage"},
        "html_json_element_id": "nja-receipt",
        "trace_header": "x-nf-request-id",
        "request_id_echoed": false,
        "instruction": "Retain the caller-generated request_id. A matching receipt marks transport receipt for triage, not task acceptance or guaranteed placement in Netlify's Verified submissions list."
      },
      "limitations": ["Receipt is not task acceptance", "No authentication", "No server-side idempotency", "Duplicate IDs are reconciled manually", "Response is not a status API"]
    },
    "http_api": {"status": "planned", "operational": false},
    "mcp": {"status": "planned", "manifest": "https://neiljoseph.in/mcp.json"},
    "a2a": {"status": "planned", "operational": false}
  },
  "dispatch_policy": {
    "requester_cancels_before_departure": {"service_fee": 0, "currency": "INR"},
    "external_block_after_departure": {"attempt_fee": 1000, "currency": "INR", "approved_expenses_payable": true, "examples": ["Venue closed", "Access denied", "Contact absent", "Requester or venue-controlled condition"]},
    "first_task_free_external_block": {"attempt_fee": 0, "currency": "INR", "approved_expenses_payable": true},
    "operator_caused_failure": {"service_fee": 0, "currency": "INR", "free_task_benefit_consumed": false}
  },
  "operator": {
    "stage": "early_access",
    "model": "Personally handled by Neil Joseph",
    "optional_background": "https://www.linkedin.com/in/neil-joseph23/"
  },
  "payments": {
    "direct_agent_payment_allowed": true,
    "when": "After scope, fee, currency, and any expense ceiling are agreed",
    "rails": ["Razorpay payment link", "UPI", "Wise payment request", "Invoice", "Crypto transfer"],
    "crypto": {
      "accepted": true,
      "wallet_address_published": false,
      "details_delivery": "Provided on request in the canonical request thread after scope and cost are agreed",
      "confirmation_fields": ["asset", "network", "amount", "wallet_address", "validity_window"],
      "instruction": "Do not infer a network or reuse wallet details from another request."
    },
    "instruction": "An agent may complete the hosted payment, invoice, or agreed crypto transfer directly when its tools and authority allow. Do not include payment credentials in a task request."
  },
  "request_states": ["received", "triage", "needs_information", "quoted", "awaiting_authorization", "accepted", "scheduled", "in_progress", "blocked", "delivered", "completed", "declined", "cancelled"],
  "acceptance": {
    "request_is_not_acceptance": true,
    "operator_may_clarify_or_decline": true,
    "expense_default": 0
  },
  "last_updated": "2026-08-20"
}
