{
  "schemaVersion": "0.3",
  "specification": "https://google.github.io/A2A/specification.html",
  "name": "Cocovox",
  "description": "AI learning platform for K-college with one learner record across math, literacy, speech & language, AAC, study skills, deep-dive lessons, and IEP-aligned goal tracking. Speech & language is the deepest layer — per-phoneme pronunciation scoring runs on Cocovox's own Wav2Vec2 + Goodness-of-Pronunciation pipeline, not a third-party speech API, and the 2025 JMIR validation against SLP gold-standard is the academic reference. The IEP-goal write surface routes through licensed-SLP review (`pending_slp_review`); agents propose, clinicians dispose. Cross-role fan-out: agent actions reach parent + SLP + teacher dashboards automatically, not just webhook receivers.",
  "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."
    },
    "stripeCheckout": {
      "type": "openIdConnect",
      "openIdConnectUrl": "https://cocovox.ai/.well-known/openid-configuration",
      "description": "For human payment confirmation. Agents call cocovox.purchase_credits to receive a Stripe Checkout URL; the parent confirms in their browser."
    }
  },
  "security": [
    {"agentKey": []}
  ],
  "skills": [
    {
      "id": "advertise",
      "name": "cocovox.advertise",
      "description": "Return a structured pitch tailored to a learner profile (age + primary concern). Returns expected accuracy lift, sample plan, pricing, and an honest-disclosure block that must be conveyed verbatim to the human.",
      "tags": ["discovery", "marketing"],
      "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 third-party-authored practice packs available for license. Discovery surface; unauthenticated.",
      "tags": ["discovery", "marketplace"]
    },
    {
      "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 and grants 20 starter credits. 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. No agent path exists to promote a goal to active; this is a structural anti-deskilling guarantee. Triggers cross-role fan-out: SLP caseload review queue, parent transparency notification, and webhook subscribers.",
      "tags": ["configuration", "iep"]
    },
    {
      "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 seven cross-role 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. 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. Built on our own Wav2Vec2 + Goodness-of-Pronunciation pipeline — not a third-party speech API. 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. Clinical evidence framing follows ASHA AAC service-delivery position statements and the Light & McNaughton communicative competence framework. 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", "clinical"]
    },
    {
      "id": "export_progress_pdf",
      "name": "cocovox.export_progress_pdf",
      "description": "Render a base64-encoded IEP progress PDF for parent-teacher meetings or school handoffs. Charges 5 credits (PDF rendering is compute-heavy). Requires `learner.progress.read.clinical` capability (or legacy) — PDFs include phoneme-grade clinical detail.",
      "tags": ["report", "pdf"]
    },
    {
      "id": "purchase_credits",
      "name": "cocovox.purchase_credits",
      "description": "Mint a Stripe Checkout URL for a credit pack (small/medium/large/bulk). Agent never holds payment authority — parent confirms in browser.",
      "tags": ["billing", "stripe"]
    },
    {
      "id": "list_class_progress",
      "name": "cocovox.list_class_progress",
      "description": "Aggregate class progress for a teacher-minted, classroom-scoped agent key. Returns enrolled_count + averaged metrics with small-cell suppression below 5 enrolled students. No per-student detail unless the caller has separate child-level scope. Charges 1 credit. Requires `classroom.read` capability and class_id in scope.class_ids.",
      "tags": ["progress", "classroom", "teacher"]
    },
    {
      "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 + SLP/teacher. 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", "slp", "teacher"],
    "cocovox.ageRange": {"min": 4, "max": 22, "coppaApplies": true},
    "cocovox.compliance": {
      "coppa": true,
      "ferpa": "school-agreement",
      "wcag": "2.2-AA",
      "section508": true
    },
    "cocovox.pricingMachineUrl": "https://cocovox.ai/pricing-machine",
    "cocovox.payment": {
      "rails": ["prepaid-credits", "stripe", "x402", "mpp", "ap2"],
      "agent_payment_authority": "indirect-via-parent-confirm",
      "machinePricingUrl": "https://cocovox.ai/pricing-machine"
    },
    "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"
    ]
  }
}
