{
  "schemaVersion": "0.3",
  "specification": "https://google.github.io/A2A/specification.html",
  "name": "Cocovox",
  "description": "Cocovox is an AI tutor for K-college learners, from kindergarten through college. When a learner is stuck, it gives a hint, not the answer, and a parent sees what their child worked on and how it went. These tools let an agent that a parent has authorised enrol a child, read the child's weekly progress digest, set up home practice and issue progress credentials, for the children that parent's key covers. Classroom tools and clinical scoring are switched off during early access. Pronunciation feedback is estimated from speech-recognition word confidence: a proxy for practice, not a validated clinical measure. Goals an agent proposes wait for a licensed SLP's review (`pending_slp_review`); no agent path makes a goal active.",
  "url": "https://cocovox.ai",
  "version": "0.1.0",
  "documentationUrl": "https://cocovox.ai/docs",
  "provider": {
    "organization": "Cocovox",
    "url": "https://cocovox.ai"
  },
  "iconUrl": "https://cocovox.ai/icons/icon-512x512-light.png",
  "termsOfServiceUrl": "https://cocovox.ai/terms",
  "privacyPolicyUrl": "https://cocovox.ai/privacy",
  "contactEmail": "partners@cocovox.ai",
  "supportsAuthenticatedExtendedCard": false,
  "capabilities": {
    "streaming": true,
    "pushNotifications": true,
    "stateTransitionHistory": false
  },
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["text/plain", "application/json", "application/pdf"],
  "securitySchemes": {
    "agentKey": {
      "type": "apiKey",
      "in": "header",
      "name": "Agent-Key",
      "description": "Per-agent API key (agk_*) minted by a parent at https://cocovox.ai/settings/agent-keys. Scoped to a single parent account, capability-restricted, with a monthly credit budget set by the human owner."
    }
  },
  "security": [
    {"agentKey": []}
  ],
  "skills": [
    {
      "id": "advertise",
      "name": "cocovox.advertise",
      "description": "Return an overview tailored to a learner profile (age + primary concern): a sample plan, a pricing note (free during early access), and an honest-disclosure block that must be conveyed verbatim to the human. Its accuracy and timeline ranges are unvalidated placeholders marked evidence_status \"preliminary\": no cohort study has run, so they are not a forecast.",
      "tags": ["discovery"],
      "examples": [
        "I want to evaluate Cocovox for a 7-year-old struggling with /r/ articulation"
      ]
    },
    {
      "id": "list_content_packs",
      "name": "cocovox.list_content_packs",
      "description": "List practice packs. Today it returns an empty list: no packs are published. Discovery surface; unauthenticated.",
      "tags": ["discovery", "content-packs"]
    },
    {
      "id": "bloop_student",
      "name": "cocovox.bloop_student",
      "description": "Provision a child sub-account on the calling parent's behalf. Returns a magic-link login URL. Requires Agent-Key with parent.children.write capability.",
      "tags": ["onboarding"],
      "examples": [
        "Set up my 8-year-old Maya for /r/ articulation practice"
      ]
    },
    {
      "id": "set_iep_goal",
      "name": "cocovox.set_iep_goal",
      "description": "Propose an IEP-style goal for licensed-SLP review. Lands in pending_slp_review status: agents propose, clinicians dispose, and no agent path promotes a goal to active. Notifies the parent, the SLP's review queue when an SLP is assigned, and webhook subscribers. Clinical tools are switched off in early access, so a proposed goal waits there.",
      "tags": ["configuration", "goals"]
    },
    {
      "id": "subscribe_progress_webhook",
      "name": "cocovox.subscribe_progress_webhook",
      "description": "Register an HTTPS endpoint to receive progress events. Live: weekly_digest, iep_goal_review_pending, milestone_reached. Plus ten agent-action events: agent.bloop_student.completed, agent.iep_goal.proposed, agent.weekly_digest.read, agent.phoneme_summary.read, agent.iep_pdf.exported, agent.credit_topup.initiated, agent.credit_topup.completed, agent.practice_session.started, agent.credential.issued, agent.credential.revoked. The two agent.credit_topup.* events report a credit top-up, and Cocovox is free during early access, so they do not fire today. Outbound POSTs carry an HMAC-SHA256 signature in `X-Cocovox-Signature: t=<unix>,v1=<hex>` (Stripe-style) plus a legacy `X-Cocovox-Webhook-Token` header for backward compat.",
      "tags": ["push", "subscriptions"]
    },
    {
      "id": "get_progress",
      "name": "cocovox.get_progress",
      "description": "Fetch a parent-facing weekly digest for a child the caller is authorized for. Charges 1 credit. Requires `learner.progress.read.summary` capability (or `.clinical`, or legacy `learner.progress.read`).",
      "tags": ["progress", "monitoring"]
    },
    {
      "id": "get_phoneme_pronunciation_summary",
      "name": "cocovox.get_phoneme_pronunciation_summary",
      "description": "Per-phoneme pronunciation accuracy, error patterns, and trend. Currently estimated from speech-recognition word confidence — a proxy, not a validated clinical measure. Charges 1 credit. Requires `learner.progress.read.clinical` capability (or legacy `learner.progress.read`); the granular cap lets parents grant summary-only access without exposing phoneme-grade clinical data.",
      "tags": ["progress", "speech", "phoneme"]
    },
    {
      "id": "get_aac_vocabulary_status",
      "name": "cocovox.get_aac_vocabulary_status",
      "description": "Aggregate AAC vocabulary state for a learner: active vs mastered AAC goal counts, total vocabulary words across active goals, and a sorted word list. Output reflects what is currently on the child's keyboard, not historic accumulation. Write path: AAC goals are proposed via cocovox.set_iep_goal with domain='aac' (same pending_slp_review clinical gate). Charges 1 credit. Requires `learner.progress.read.clinical` capability.",
      "tags": ["progress", "aac"]
    },
    {
      "id": "export_progress_pdf",
      "name": "cocovox.export_progress_pdf",
      "description": "Render a base64-encoded IEP-style progress PDF for a meeting with a school or therapist. Charges 5 credits (PDF rendering is compute-heavy). Requires `learner.progress.read.clinical` capability (or legacy): PDFs include phoneme detail, estimated from speech-recognition word confidence.",
      "tags": ["report", "pdf"]
    },
    {
      "id": "list_class_progress",
      "name": "cocovox.list_class_progress",
      "description": "Switched off in early access: classroom tools are off, and the agent-keys page offers no classroom capability. Aggregate class progress for a classroom-scoped agent key, with no per-student detail unless the caller has separate child-level scope. Today it returns enrolled_count only: active_last_7_days and average_mastery stay null until a class mastery rollup ships. Small-cell suppression applies below 5 enrolled students. Charges 1 credit. Requires `classroom.read` capability and class_id in scope.class_ids.",
      "tags": ["progress", "classroom"]
    },
    {
      "id": "consume_credits",
      "name": "cocovox.consume_credits",
      "description": "Explicitly charge `amount` credits against the agent-key budget. For third-party agents built on top of Cocovox that meter their own compute against a parent-owned budget. Idempotent on (agent_key_id, idempotency_key).",
      "tags": ["billing", "metering"]
    },
    {
      "id": "start_practice_session",
      "name": "cocovox.start_practice_session",
      "description": "Schedule a home-practice activity for a child in a specified mode. Provisions a parent-mediated assignment the child and parent engage with (not a live voice session) and notifies the parent, and the child's SLP or teacher if one is linked. Requires `learner.practice.write` and child_id in scope. Charges 1 credit.",
      "tags": ["practice", "assignment"],
      "examples": [
        "Set up a /r/ word-reading practice for my daughter this week"
      ]
    },
    {
      "id": "issue_credential",
      "name": "cocovox.issue_credential",
      "description": "Issue a signed continuous-progress credential (Open Badges 3.0 / W3C VC) plus a signed PDF companion. Cocovox fills the measured evidence; the agent cannot inflate the claim, and an honest disclosure is embedded in the signed payload. Requires verifiable parental consent and `learner.credentials.issue`. Charges 5 credits.",
      "tags": ["credentials", "verifiable"],
      "examples": [
        "Issue a progress badge for my son's articulation work"
      ]
    },
    {
      "id": "verify_credential",
      "name": "cocovox.verify_credential",
      "description": "Verify a Cocovox-issued credential. Public, no auth. Checks the RS256 signature against https://cocovox.ai/.well-known/jwks.json and reports revocation status.",
      "tags": ["credentials", "verification", "public"],
      "examples": [
        "Verify this Cocovox credential a family shared with me"
      ]
    },
    {
      "id": "revoke_credential",
      "name": "cocovox.revoke_credential",
      "description": "Revoke a previously-issued Cocovox credential — the consent-withdrawal path. After revocation, verify_credential reports valid=false. Same authority that issued it can revoke (`learner.credentials.issue` + child_id in scope). Idempotent, non-metered.",
      "tags": ["credentials", "revocation", "consent"],
      "examples": [
        "Revoke the progress credential issued for my child last month"
      ]
    }
  ],
  "interfaces": [
    {
      "type": "mcp",
      "transport": "streamable-http",
      "url": "https://cocovox.ai/mcp/rpc/",
      "discovery": "https://cocovox.ai/.well-known/mcp.json"
    },
    {
      "type": "rest",
      "openApiUrl": "https://cocovox.ai/openapi.json",
      "baseUrl": "https://cocovox.ai/mcp/v1"
    }
  ],
  "extensions": {
    "cocovox.audience": ["parent"],
    "cocovox.ageRange": {"min": 5, "max": 22, "coppaApplies": true},
    "cocovox.compliance": {
      "coppa": "partial",
      "ferpa": "not-claimed",
      "wcag": "not-claimed",
      "section508": "not-claimed",
      "notes": "A parent is confirmed (a $0.50 card hold that is always cancelled) before a child can use Cocovox. COPPA conformance has no counsel sign-off yet, so it is partial, not claimed. Classroom tools are off during early access, so no school shares education records under FERPA. No accessibility audit has been completed, so no WCAG or Section 508 conformance is claimed."
    },
    "cocovox.pricingMachineUrl": "https://cocovox.ai/pricing-machine",
    "cocovox.pricing": {
      "status": "free-early-access",
      "summary": "Cocovox is free during early access. There are no paid plans yet.",
      "credits": "Credits are a usage budget the parent sets per agent key. They are not money, and nothing can be bought."
    },
    "cocovox.events": [
      "weekly_digest",
      "iep_goal_review_pending",
      "milestone_reached",
      "agent.bloop_student.completed",
      "agent.iep_goal.proposed",
      "agent.weekly_digest.read",
      "agent.phoneme_summary.read",
      "agent.iep_pdf.exported",
      "agent.credit_topup.initiated",
      "agent.credit_topup.completed",
      "agent.practice_session.started",
      "agent.credential.issued",
      "agent.credential.revoked"
    ]
  }
}
