{
  "$comment": "Generated from packages/service/* at build time. Docs for each service: docs.markdown.",
  "totals": {
    "services": 42,
    "ready": 6,
    "wip": 36,
    "browser": 42,
    "opsSupported": 557,
    "opsTotal": 583
  },
  "categories": [
    {
      "slug": "payments",
      "label": "Payments",
      "blurb": "Charges, subscriptions, checkout and HSA/FSA billing.",
      "count": 2
    },
    {
      "slug": "health",
      "label": "Health & labs",
      "blurb": "EHRs, lab ordering, diagnostics, telehealth, nutrition.",
      "count": 11
    },
    {
      "slug": "pharmacy",
      "label": "Pharmacy",
      "blurb": "eRx, compounding pharmacies and fulfilment.",
      "count": 5
    },
    {
      "slug": "communication",
      "label": "Communication",
      "blurb": "Email, SMS, chat, video and inbox testing.",
      "count": 6
    },
    {
      "slug": "marketing",
      "label": "Marketing",
      "blurb": "Customer data, campaigns and referral tracking.",
      "count": 3
    },
    {
      "slug": "ai",
      "label": "AI & speech",
      "blurb": "LLM runtimes, retrieval, speech synthesis and transcription.",
      "count": 3
    },
    {
      "slug": "observability",
      "label": "Observability",
      "blurb": "Product analytics, feature flags and telemetry.",
      "count": 2
    },
    {
      "slug": "productivity",
      "label": "Productivity",
      "blurb": "Calendars, issue trackers, CMS and surveys.",
      "count": 4
    },
    {
      "slug": "logistics",
      "label": "Maps & logistics",
      "blurb": "Places, geocoding and shipment tracking.",
      "count": 2
    },
    {
      "slug": "identity",
      "label": "Identity",
      "blurb": "Identity verification and KYC.",
      "count": 2
    },
    {
      "slug": "databases",
      "label": "Databases",
      "blurb": "In-memory SQL engines with real dialect semantics.",
      "count": 2
    }
  ],
  "services": [
    {
      "name": "junction",
      "package": "@crvouga/mockingbird-service-junction",
      "displayName": "Junction",
      "description": "Stateful mock of the Junction (Vital) user API driven by its OpenAPI contract and verified by differential property tests against the Junction sandbox.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "ready",
      "tierLabel": "Ready",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-junction"
      },
      "install": "npm install -D @crvouga/mockingbird-service-junction",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-junction\"",
      "operations": {
        "supported": 40,
        "total": 40,
        "unsupported": []
      },
      "contract": {
        "title": "Junction API (Mockingbird subset)",
        "upstream": "Hand-authored subset from Junction public OpenAPI snippets in the docs."
      },
      "examples": [],
      "docs": {
        "page": "/services/junction",
        "markdown": "/services/junction.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/junction/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/junction/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-junction",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/junction"
    },
    {
      "name": "medplum",
      "package": "@crvouga/mockingbird-service-medplum",
      "displayName": "Medplum",
      "description": "Stateful, portable mock of the self-hosted Medplum server (FHIR R4 REST, OAuth2 and admin API) that runs anywhere JavaScript runs, proven at parity with a real self-hosted Medplum used as the oracle.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "ready",
      "tierLabel": "Ready",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-medplum"
      },
      "install": "npm install -D @crvouga/mockingbird-service-medplum",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-medplum\"",
      "operations": {
        "supported": 52,
        "total": 52,
        "unsupported": []
      },
      "contract": {
        "title": "Medplum API (Mockingbird contract)",
        "upstream": null
      },
      "examples": [],
      "docs": {
        "page": "/services/medplum",
        "markdown": "/services/medplum.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/medplum/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/medplum/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-medplum",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/medplum"
    },
    {
      "name": "oauth",
      "package": "@crvouga/mockingbird-service-oauth",
      "displayName": "OAuth & Social Login",
      "description": "Portable social-login mock with Google, Apple, Microsoft, GitHub and generic OIDC profiles, private relay identities, reproducible edge cases, signed tokens and an accessible UI.",
      "category": "identity",
      "categoryLabel": "Identity",
      "tier": "ready",
      "tierLabel": "Ready",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-oauth"
      },
      "install": "npm install -D @crvouga/mockingbird-service-oauth",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-oauth\"",
      "operations": {
        "supported": 32,
        "total": 32,
        "unsupported": []
      },
      "contract": {
        "title": "Mockingbird OAuth & Social Login",
        "upstream": null
      },
      "examples": [
        {
          "id": "google-login",
          "title": "Try a complete OAuth login",
          "description": "Choose popup or redirect, sign in through OAuth Mock, and return to an example app. The client, Hono server, and provider all run in process.",
          "url": "/services/oauth#example-google-login"
        }
      ],
      "docs": {
        "page": "/services/oauth",
        "markdown": "/services/oauth.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/oauth/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/oauth/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-oauth",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/oauth"
    },
    {
      "name": "postgres",
      "package": "@crvouga/mockingbird-service-postgres",
      "displayName": "PostgreSQL",
      "description": "Pure TypeScript in-memory PostgreSQL implementation with zero WASM/native dependencies",
      "category": "databases",
      "categoryLabel": "Databases",
      "tier": "ready",
      "tierLabel": "Ready",
      "runtime": "portable",
      "kind": "sql",
      "surfaces": {
        "inProcess": false,
        "browser": true,
        "server": false,
        "cli": null
      },
      "install": "npm install -D @crvouga/mockingbird-service-postgres",
      "entry": "import { Database } from \"@crvouga/mockingbird-service-postgres\"",
      "operations": {
        "supported": 0,
        "total": 0,
        "unsupported": []
      },
      "contract": {
        "title": null,
        "upstream": null
      },
      "examples": [],
      "docs": {
        "page": "/services/postgres",
        "markdown": "/services/postgres.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/postgres/README.md",
        "support": null
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-postgres",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/postgres"
    },
    {
      "name": "sqlite",
      "package": "@crvouga/mockingbird-service-sqlite",
      "displayName": "SQLite",
      "description": "Pure TypeScript in-memory SQLite implementation with zero WASM/native dependencies",
      "category": "databases",
      "categoryLabel": "Databases",
      "tier": "ready",
      "tierLabel": "Ready",
      "runtime": "portable",
      "kind": "sql",
      "surfaces": {
        "inProcess": false,
        "browser": true,
        "server": false,
        "cli": null
      },
      "install": "npm install -D @crvouga/mockingbird-service-sqlite",
      "entry": "import { Database } from \"@crvouga/mockingbird-service-sqlite\"",
      "operations": {
        "supported": 0,
        "total": 0,
        "unsupported": []
      },
      "contract": {
        "title": null,
        "upstream": null
      },
      "examples": [],
      "docs": {
        "page": "/services/sqlite",
        "markdown": "/services/sqlite.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/sqlite/README.md",
        "support": null
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-sqlite",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/sqlite"
    },
    {
      "name": "stripe",
      "package": "@crvouga/mockingbird-service-stripe",
      "displayName": "Stripe",
      "description": "Stateful mock of the Stripe API (accounts by key, customers, payments, subscriptions with renewals, invoices, checkout with a hosted page, a Stripe.js stand-in, signed webhooks) at API versions 2024-06-20 and 2025-02-24.acacia, verified by differential property tests against Stripe test mode.",
      "category": "payments",
      "categoryLabel": "Payments",
      "tier": "ready",
      "tierLabel": "Ready",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-stripe"
      },
      "install": "npm install -D @crvouga/mockingbird-service-stripe",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-stripe\"",
      "operations": {
        "supported": 111,
        "total": 115,
        "unsupported": [
          "PostCharges",
          "PostChargesCharge",
          "PostCheckoutSessionsSession",
          "PostDisputesDispute"
        ]
      },
      "contract": {
        "title": "Stripe API (Mockingbird subset)",
        "upstream": null
      },
      "examples": [],
      "docs": {
        "page": "/services/stripe",
        "markdown": "/services/stripe.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/stripe/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/stripe/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-stripe",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/stripe"
    },
    {
      "name": "aha",
      "package": "@crvouga/mockingbird-service-aha",
      "displayName": "AHA",
      "description": "Stateful mock of the AHA at-home phlebotomy partner API: HMAC-signed create-order and cancel, raw or wrapped envelopes, idempotency keys, and the order-status webhooks (Scheduled, Check Out, …) our bloodwork handler consumes.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-aha"
      },
      "install": "npm install -D @crvouga/mockingbird-service-aha",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-aha\"",
      "operations": {
        "supported": 2,
        "total": 2,
        "unsupported": []
      },
      "contract": {
        "title": "AHA (Advanced Health Academy) partner API (Mockingbird subset)",
        "upstream": "Hand-authored from aha.service.ts, aha.types.ts (zod request/response schemas) and aha.lab-provider.ts. Success responses come in one of two envelopes (raw, or {success, data}) because our two clients disagree (G-A1); the mock serves either."
      },
      "examples": [],
      "docs": {
        "page": "/services/aha",
        "markdown": "/services/aha.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/aha/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/aha/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-aha",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/aha"
    },
    {
      "name": "bedrock",
      "package": "@crvouga/mockingbird-service-bedrock",
      "displayName": "AWS Bedrock",
      "description": "Stateful, scriptable mock of AWS Bedrock Runtime (Converse, ConverseStream, InvokeModel incl. Titan embeddings, Nova Sonic bidirectional streams over h2c) and AgentCore InvokeHarness, with exact event-stream framing.",
      "category": "ai",
      "categoryLabel": "AI & speech",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-bedrock"
      },
      "install": "npm install -D @crvouga/mockingbird-service-bedrock",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-bedrock\"",
      "operations": {
        "supported": 5,
        "total": 6,
        "unsupported": [
          "InvokeModelWithResponseStream"
        ]
      },
      "contract": {
        "title": "Amazon Bedrock Runtime + AgentCore harness (Mockingbird subset)",
        "upstream": "Shapes follow the AWS SDK v3 Smithy schemas (restJson1). Errors carry `x-amzn-ErrorType: <Name>:http://internal.amazon.com/coral/com.amazon.bedrock/` and a `{\"message\"}` body, as Bedrock sends them."
      },
      "examples": [],
      "docs": {
        "page": "/services/bedrock",
        "markdown": "/services/bedrock.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/bedrock/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/bedrock/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-bedrock",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/bedrock"
    },
    {
      "name": "aws-speech",
      "package": "@crvouga/mockingbird-service-aws-speech",
      "displayName": "AWS Polly & Transcribe",
      "description": "Stateful mock of AWS Polly (SynthesizeSpeech, StartSpeechSynthesisStream) and Transcribe (streaming over h2c, batch jobs), with exact event-stream framing and scripted transcripts.",
      "category": "ai",
      "categoryLabel": "AI & speech",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-aws-speech"
      },
      "install": "npm install -D @crvouga/mockingbird-service-aws-speech",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-aws-speech\"",
      "operations": {
        "supported": 4,
        "total": 4,
        "unsupported": []
      },
      "contract": {
        "title": "Amazon Polly + Amazon Transcribe (Mockingbird subset)",
        "upstream": "Polly and Transcribe Streaming are restJson1 (errors in `x-amzn-ErrorType` + `{\"message\"}`); Transcribe batch is awsJson1_1 (errors as `{\"__type\", \"Message\"}`). One mock serves all three hosts (`AWS_ENDPOINT_URL_POLLY`, `AWS_ENDPOINT_URL_TRANSCRIBE_STREAMING`, `AWS_ENDPOINT_URL_TRANSCRIBE`) because their paths do not collide."
      },
      "examples": [],
      "docs": {
        "page": "/services/aws-speech",
        "markdown": "/services/aws-speech.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/aws-speech/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/aws-speech/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-aws-speech",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/aws-speech"
    },
    {
      "name": "caretalk",
      "package": "@crvouga/mockingbird-service-caretalk",
      "displayName": "CareTalk",
      "description": "Stateful mock of CareTalk's external API: client-login tokens, GetForm definitions, SavePatientForm rounds, patient search/insert, states, free slots and appointments.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-caretalk"
      },
      "install": "npm install -D @crvouga/mockingbird-service-caretalk",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-caretalk\"",
      "operations": {
        "supported": 9,
        "total": 9,
        "unsupported": []
      },
      "contract": {
        "title": "CareTalk external API (Mockingbird subset)",
        "upstream": "Wire shapes from apps/backend/src/modules/global-services/services/caretalk/*.ts (zod schemas and interfaces)."
      },
      "examples": [],
      "docs": {
        "page": "/services/caretalk",
        "markdown": "/services/caretalk.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/caretalk/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/caretalk/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-caretalk",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/caretalk"
    },
    {
      "name": "customerio",
      "package": "@crvouga/mockingbird-service-customerio",
      "displayName": "Customer.io",
      "description": "Stateful mock of Customer.io: Segment-compatible CDP (identify/track/batch, SDK drop-in), App API transactional email/SMS/inbox sends with an outbox, message catalog, link-click tracking, and signed reporting webhooks.",
      "category": "marketing",
      "categoryLabel": "Marketing",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-customerio"
      },
      "install": "npm install -D @crvouga/mockingbird-service-customerio",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-customerio\"",
      "operations": {
        "supported": 10,
        "total": 10,
        "unsupported": []
      },
      "contract": {
        "title": "Customer.io CDP + App API (Mockingbird subset)",
        "upstream": "Hand-authored from Customer.io's CDP (Segment spec) and App API reference, trimmed to what our consumer sends: customer-io.client.service.ts / notification-adapter.ts / transactional-email-adapter.ts (backend), transactional-client.ts (notification-processor), customerio-trigger-name-validator.ts (notification-service) and mobile-links-click-reporter.service.ts."
      },
      "examples": [],
      "docs": {
        "page": "/services/customerio",
        "markdown": "/services/customerio.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/customerio/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/customerio/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-customerio",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/customerio"
    },
    {
      "name": "daily",
      "package": "@crvouga/mockingbird-service-daily",
      "displayName": "Daily",
      "description": "Stateful mock of the Daily.co REST API: rooms, presence, eject, meeting tokens (minted and self-signed HS256, verified and decodable), and transcription/recording webhooks with transcripts written to S3.",
      "category": "communication",
      "categoryLabel": "Communication",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-daily"
      },
      "install": "npm install -D @crvouga/mockingbird-service-daily",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-daily\"",
      "operations": {
        "supported": 8,
        "total": 8,
        "unsupported": []
      },
      "contract": {
        "title": "Daily.co REST API (Mockingbird subset)",
        "upstream": "Hand-authored from docs.daily.co/reference/rest-api and our consumers (apps/backend daily-video.service.ts + schemas, apps/geviti-emr-backend daily-service.ts)."
      },
      "examples": [],
      "docs": {
        "page": "/services/daily",
        "markdown": "/services/daily.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/daily/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/daily/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-daily",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/daily"
    },
    {
      "name": "easypost",
      "package": "@crvouga/mockingbird-service-easypost",
      "displayName": "EasyPost",
      "description": "Stateful mock of the EasyPost trackers API: create/re-use trackers, EasyPost's test tracking codes, admin status transitions and EasyPost's error envelope.",
      "category": "logistics",
      "categoryLabel": "Maps & logistics",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-easypost"
      },
      "install": "npm install -D @crvouga/mockingbird-service-easypost",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-easypost\"",
      "operations": {
        "supported": 3,
        "total": 3,
        "unsupported": []
      },
      "contract": {
        "title": "EasyPost Trackers API (Mockingbird subset)",
        "upstream": "Shapes from https://docs.easypost.com/docs/trackers; request/response fields our consumer reads come from packages/lib/src/shipment-tracking-status/easypost-client.ts."
      },
      "examples": [],
      "docs": {
        "page": "/services/easypost",
        "markdown": "/services/easypost.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/easypost/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/easypost/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-easypost",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/easypost"
    },
    {
      "name": "edamam",
      "package": "@crvouga/mockingbird-service-edamam",
      "displayName": "Edamam",
      "description": "Stateful mock of the Edamam APIs our apps call: food-database parser, nutrients and image analysis, nutrition analysis, recipe search v2, meal-planner select and shopping lists, over a built-in food and recipe corpus.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-edamam"
      },
      "install": "npm install -D @crvouga/mockingbird-service-edamam",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-edamam\"",
      "operations": {
        "supported": 10,
        "total": 10,
        "unsupported": []
      },
      "contract": {
        "title": "Edamam APIs (Mockingbird subset)",
        "upstream": "Edamam publishes per-API docs, no single OpenAPI; shapes trimmed to the fields our consumers read (zod schemas in edamam-nutrition.adapter.ts and edamam-meal-planning.schemas.ts)."
      },
      "examples": [],
      "docs": {
        "page": "/services/edamam",
        "markdown": "/services/edamam.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/edamam/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/edamam/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-edamam",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/edamam"
    },
    {
      "name": "firstpromoter",
      "package": "@crvouga/mockingbird-service-firstpromoter",
      "displayName": "FirstPromoter",
      "description": "Stateful mock of the FirstPromoter v2 API: promoters (adopt-before-create by cust_id), signup tracking by tid / promoter_id / ref token, iframe login, archive, and Basic-auth lead_becomes_referral webhooks.",
      "category": "marketing",
      "categoryLabel": "Marketing",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-firstpromoter"
      },
      "install": "npm install -D @crvouga/mockingbird-service-firstpromoter",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-firstpromoter\"",
      "operations": {
        "supported": 7,
        "total": 7,
        "unsupported": []
      },
      "contract": {
        "title": "FirstPromoter API v2 (Mockingbird subset)",
        "upstream": "Hand-authored from B/global-services/services/first-promoter/first-promoter.service.ts and first-promoter.types.ts (FirstPromoterV2ResponseSchema, FirstPromoterV2ListResponseSchema, FirstPromoterV2ArchiveResponseSchema, FirstPromoterAccessTokenResponseSchema)."
      },
      "examples": [],
      "docs": {
        "page": "/services/firstpromoter",
        "markdown": "/services/firstpromoter.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/firstpromoter/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/firstpromoter/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-firstpromoter",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/firstpromoter"
    },
    {
      "name": "flex",
      "package": "@crvouga/mockingbird-service-flex",
      "displayName": "Flex",
      "description": "Stateful mock of the Flex HSA/FSA payments API: products (recorded catalog corpus), checkout sessions in payment, off-session and setup modes, customers, setup intents, refunds, the hosted checkout page, and Svix-signed webhooks.",
      "category": "payments",
      "categoryLabel": "Payments",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-flex"
      },
      "install": "npm install -D @crvouga/mockingbird-service-flex",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-flex\"",
      "operations": {
        "supported": 13,
        "total": 13,
        "unsupported": []
      },
      "contract": {
        "title": "Flex HSA/FSA payments API (Mockingbird subset)",
        "upstream": "Hand-authored from the wire shapes our consumer reads and writes (flex-api.client.ts, flex-payment.types.ts, flex-product.types.ts, flex-webhook.service.ts, do-flex-hosted-checkout.ts)."
      },
      "examples": [],
      "docs": {
        "page": "/services/flex",
        "markdown": "/services/flex.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/flex/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/flex/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-flex",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/flex"
    },
    {
      "name": "formbricks",
      "package": "@crvouga/mockingbird-service-formbricks",
      "displayName": "Formbricks",
      "description": "Stateful mock of Formbricks (Geviti fork): client environment state seeded from our production survey clone, response creation with the fork's validation errors, the v1 management API, the widget script, and responseFinished webhooks.",
      "category": "productivity",
      "categoryLabel": "Productivity",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-formbricks"
      },
      "install": "npm install -D @crvouga/mockingbird-service-formbricks",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-formbricks\"",
      "operations": {
        "supported": 8,
        "total": 8,
        "unsupported": []
      },
      "contract": {
        "title": "Formbricks client + management API (Mockingbird subset, Geviti fork)",
        "upstream": "Hand-authored from the fork's route handlers (v1 client environment, v2 client responses, v1 management responses/surveys) and our consumers: M/lib/dynamic-form/dynamic-form-service/ formbricks.ts, B/erx/services/erx-forms.service.ts, B/onboarding-tasks/formbricks-intake.service.ts, tooling/formbricks-cli, and the responseFinished webhook receiver."
      },
      "examples": [],
      "docs": {
        "page": "/services/formbricks",
        "markdown": "/services/formbricks.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/formbricks/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/formbricks/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-formbricks",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/formbricks"
    },
    {
      "name": "fullscript",
      "package": "@crvouga/mockingbird-service-fullscript",
      "displayName": "Fullscript",
      "description": "Stateful mock of the Fullscript lab-ordering API: per-practitioner OAuth, clinic, session grants, forward-only lab orders with results, lab-order events, expiring result PDFs, and Fullscript-Signature webhooks.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-fullscript"
      },
      "install": "npm install -D @crvouga/mockingbird-service-fullscript",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-fullscript\"",
      "operations": {
        "supported": 10,
        "total": 10,
        "unsupported": []
      },
      "contract": {
        "title": "Fullscript API (Mockingbird subset)",
        "upstream": "Wire shapes from apps/geviti-emr-backend/src/services/fullscript-*.ts and routers/v1/fullscript/*; the vendor's API reference is behind a partner login."
      },
      "examples": [],
      "docs": {
        "page": "/services/fullscript",
        "markdown": "/services/fullscript.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/fullscript/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/fullscript/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-fullscript",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/fullscript"
    },
    {
      "name": "genebygene",
      "package": "@crvouga/mockingbird-service-genebygene",
      "displayName": "Gene by Gene",
      "description": "Stateful mock of Gene by Gene's Nucleus API v2 and auth host: tokens with credential blocking, catalog, shipping quotes, orders, kits, demographics, three-layer cancel, results with presigned downloads and S3 writes, subscriptions, and GxG-signed webhooks.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-genebygene"
      },
      "install": "npm install -D @crvouga/mockingbird-service-genebygene",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-genebygene\"",
      "operations": {
        "supported": 30,
        "total": 51,
        "unsupported": [
          "ListAttributeDefinitionsByEntityType",
          "ListAttributeGroups",
          "GetAttributeGroup",
          "CreateEhrOrder",
          "GetEhrResults",
          "CancelKitOrderLinesBulk",
          "DownloadKitOrderLines",
          "DeleteKit",
          "SetKitGender",
          "ListKitOrders",
          "ClearKitAttributes",
          "SetKitAttribute",
          "DeleteKitAttribute",
          "UploadKitAttributesCsv",
          "UploadKitDocument",
          "ResetNotificationSubscriptionSecret",
          "ListUserNotificationSubscriptions",
          "ListOrderLineKits",
          "AddKitResult",
          "DownloadResultsCsv",
          "GetResultUrl"
        ]
      },
      "contract": {
        "title": "Nucleus API v2.0 (Gene by Gene), vendored for Mockingbird",
        "upstream": null
      },
      "examples": [],
      "docs": {
        "page": "/services/genebygene",
        "markdown": "/services/genebygene.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/genebygene/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/genebygene/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-genebygene",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/genebygene"
    },
    {
      "name": "google-calendar",
      "package": "@crvouga/mockingbird-service-google-calendar",
      "displayName": "Google Calendar",
      "description": "Stateful mock of the Google Calendar v3 API and Google OAuth our EMR calls: events list/insert/update/delete/watch, channels.stop, calendarList/calendars, token exchange/refresh/revoke and userinfo, with signed-by-header push notifications.",
      "category": "productivity",
      "categoryLabel": "Productivity",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-google-calendar"
      },
      "install": "npm install -D @crvouga/mockingbird-service-google-calendar",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-google-calendar\"",
      "operations": {
        "supported": 12,
        "total": 12,
        "unsupported": []
      },
      "contract": {
        "title": "Google Calendar v3 + Google OAuth (Mockingbird subset)",
        "upstream": "Shapes from https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest and https://developers.google.com/identity/protocols/oauth2; consumer: apps/geviti-emr-backend/src/services/google-calendar-service.ts, business/authorize/authorize.business.ts, routers/v1/webhooks/controller.ts."
      },
      "examples": [],
      "docs": {
        "page": "/services/google-calendar",
        "markdown": "/services/google-calendar.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/google-calendar/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/google-calendar/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-google-calendar",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/google-calendar"
    },
    {
      "name": "google-maps",
      "package": "@crvouga/mockingbird-service-google-maps",
      "displayName": "Google Maps",
      "description": "Mock of Google Places Autocomplete / Details / Find Place, the Geocoding API and a Maps JavaScript (places) shim, over a QA address corpus, with Google's status codes and fault presets.",
      "category": "logistics",
      "categoryLabel": "Maps & logistics",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-google-maps"
      },
      "install": "npm install -D @crvouga/mockingbird-service-google-maps",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-google-maps\"",
      "operations": {
        "supported": 5,
        "total": 5,
        "unsupported": []
      },
      "contract": {
        "title": "Google Places, Geocoding and Maps JavaScript API (Mockingbird subset)",
        "upstream": "Hand-authored from Google's documented response shapes and the fields our consumer reads (address-autocomplete-native-rest.tsx, address-autocomplete-web.tsx, use-geocoded-address.ts). Google publishes no OpenAPI document for these endpoints."
      },
      "examples": [],
      "docs": {
        "page": "/services/google-maps",
        "markdown": "/services/google-maps.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/google-maps/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/google-maps/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-google-maps",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/google-maps"
    },
    {
      "name": "healthie",
      "package": "@crvouga/mockingbird-service-healthie",
      "displayName": "Healthie",
      "description": "Stateful mock of the Healthie GraphQL API (legacy surface): signIn, users, currentUser, updateUser/updateClient (incl. multipart avatar), locations, documents and folders with served downloads, form answers, offerings, billing items, and the IP-allowlisted status webhooks.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-healthie"
      },
      "install": "npm install -D @crvouga/mockingbird-service-healthie",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-healthie\"",
      "operations": {
        "supported": 2,
        "total": 2,
        "unsupported": []
      },
      "contract": {
        "title": "Healthie GraphQL API (Mockingbird subset)",
        "upstream": "Hand-authored from the selection sets in our consumer (apps/backend/src/modules/global-services/services/healthie-client/healthie-client.service.ts)."
      },
      "examples": [],
      "docs": {
        "page": "/services/healthie",
        "markdown": "/services/healthie.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/healthie/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/healthie/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-healthie",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/healthie"
    },
    {
      "name": "intercom",
      "package": "@crvouga/mockingbird-service-intercom",
      "displayName": "Intercom",
      "description": "Stateful mock of the Intercom REST API 2.11: contacts (search, create with 409 on duplicates, update, get), conversations (create with Idempotency-Key, reply as JSON or multipart, close/open, get, cursor search), admins, and X-Hub-Signature-signed admin reply/close/open webhooks.",
      "category": "communication",
      "categoryLabel": "Communication",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-intercom"
      },
      "install": "npm install -D @crvouga/mockingbird-service-intercom",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-intercom\"",
      "operations": {
        "supported": 12,
        "total": 12,
        "unsupported": []
      },
      "contract": {
        "title": "Intercom REST API 2.11 (Mockingbird subset)",
        "upstream": "Trimmed from Intercom's published 2.11 API reference to the operations and fields our consumers use (intercom-messaging.adapter.ts, intercom-api.adapter.ts) and the webhook receivers (messaging.controller.ts, the EMR IntercomWebhookService)."
      },
      "examples": [],
      "docs": {
        "page": "/services/intercom",
        "markdown": "/services/intercom.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/intercom/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/intercom/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-intercom",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/intercom"
    },
    {
      "name": "klaviyo",
      "package": "@crvouga/mockingbird-service-klaviyo",
      "displayName": "Klaviyo",
      "description": "Stateful mock of the Klaviyo events API: JSON:API event create (Ordered Product, Placed Order), event reads, unique_id dedupe, JSON:API errors and an outbox.",
      "category": "marketing",
      "categoryLabel": "Marketing",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-klaviyo"
      },
      "install": "npm install -D @crvouga/mockingbird-service-klaviyo",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-klaviyo\"",
      "operations": {
        "supported": 3,
        "total": 3,
        "unsupported": []
      },
      "contract": {
        "title": "Klaviyo events API (Mockingbird subset)",
        "upstream": "Trimmed from https://developers.klaviyo.com/en/reference/create_event and get_events, shaped by B/global-services/services/klaviyo/klaviyo.sevice.ts (the only consumer)."
      },
      "examples": [],
      "docs": {
        "page": "/services/klaviyo",
        "markdown": "/services/klaviyo.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/klaviyo/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/klaviyo/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-klaviyo",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/klaviyo"
    },
    {
      "name": "llamacloud",
      "package": "@crvouga/mockingbird-service-llamacloud",
      "displayName": "LlamaCloud",
      "description": "Stateful mock of the LlamaCloud platform API: project and pipeline lookup, pipeline documents, and deterministic (scripted or term-overlap) retrieval, verified against the official llama_cloud_services SDK.",
      "category": "ai",
      "categoryLabel": "AI & speech",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-llamacloud"
      },
      "install": "npm install -D @crvouga/mockingbird-service-llamacloud",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-llamacloud\"",
      "operations": {
        "supported": 10,
        "total": 10,
        "unsupported": []
      },
      "contract": {
        "title": "LlamaCloud platform API (Mockingbird subset)",
        "upstream": "Hand-authored from the wire shapes of the official Python client (llama-cloud 0.1.45, the Fern-generated client that llama-cloud-services 0.6.88 drives) and our backend adapter (llamacloud-knowledge.adapter.ts). Response models are trimmed to the fields those clients require or read."
      },
      "examples": [],
      "docs": {
        "page": "/services/llamacloud",
        "markdown": "/services/llamacloud.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/llamacloud/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/llamacloud/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-llamacloud",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/llamacloud"
    },
    {
      "name": "mailosaur",
      "package": "@crvouga/mockingbird-service-mailosaur",
      "displayName": "Mailosaur",
      "description": "Stateful mock of the Mailosaur email/SMS testing API (messages search, get, delete, long-poll) with an HTTP ingest so other mocks can drop mail in (Mockingbird service contract).",
      "category": "communication",
      "categoryLabel": "Communication",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-mailosaur"
      },
      "install": "npm install -D @crvouga/mockingbird-service-mailosaur",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-mailosaur\"",
      "operations": {
        "supported": 8,
        "total": 8,
        "unsupported": []
      },
      "contract": {
        "title": "Mailosaur API (Mockingbird subset)",
        "upstream": "Hand-authored from mailosaur@11.1.0 (esm/operations/messages.js, esm/models/*.js) and apps/backend/src/modules/dev-tools/lib/mailosaur-client.ts."
      },
      "examples": [],
      "docs": {
        "page": "/services/mailosaur",
        "markdown": "/services/mailosaur.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/mailosaur/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/mailosaur/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-mailosaur",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/mailosaur"
    },
    {
      "name": "makor-cpg",
      "package": "@crvouga/mockingbird-service-makor-cpg",
      "displayName": "Makor CPG",
      "description": "Stateful mock of the legacy Makor AI (CPG) API: care plans, plus-user, bloodwork webhook, subscriptions, Wholescripts orders, AI patient summaries and async-review scripts (processing → complete on the mock clock), with permissive CORS for browser-direct calls.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-makor-cpg"
      },
      "install": "npm install -D @crvouga/mockingbird-service-makor-cpg",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-makor-cpg\"",
      "operations": {
        "supported": 11,
        "total": 11,
        "unsupported": []
      },
      "contract": {
        "title": "Legacy Makor AI API \"CPG\" (Mockingbird subset)",
        "upstream": "Hand-authored from the consumer's wire shapes: backend makor-ai.types.ts and makor-ai-client.service.ts; EMR frontend cpg-api.ts, user-summary.service.ts, async-review-script.service.ts and types/async-review-script.types.ts. The vendor publishes no spec."
      },
      "examples": [],
      "docs": {
        "page": "/services/makor-cpg",
        "markdown": "/services/makor-cpg.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/makor-cpg/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/makor-cpg/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-makor-cpg",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/makor-cpg"
    },
    {
      "name": "otel",
      "package": "@crvouga/mockingbird-service-otel",
      "displayName": "OpenTelemetry",
      "description": "Stateful mock of an OTLP/HTTP collector (JSON and protobuf traces and logs) and the OpenObserve search API over the same store.",
      "category": "observability",
      "categoryLabel": "Observability",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-otel"
      },
      "install": "npm install -D @crvouga/mockingbird-service-otel",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-otel\"",
      "operations": {
        "supported": 7,
        "total": 7,
        "unsupported": []
      },
      "contract": {
        "title": "OTLP/HTTP collector and OpenObserve search (Mockingbird subset)",
        "upstream": "OTLP/HTTP per opentelemetry-proto v1 (https://opentelemetry.io/docs/specs/otlp/); the O2 routes follow OpenObserve's API (/api-doc/openapi.json, v0.92) trimmed to what our clients call."
      },
      "examples": [],
      "docs": {
        "page": "/services/otel",
        "markdown": "/services/otel.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/otel/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/otel/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-otel",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/otel"
    },
    {
      "name": "odx",
      "package": "@crvouga/mockingbird-service-odx",
      "displayName": "Optimal DX",
      "description": "Stateful mock of the (retired) Optimal DX partner API: patients, partner links, HL7 and structured lab imports, Functional Health Reports (JSON/PDF), webhook registrations, and signed PatientTest webhooks.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-odx"
      },
      "install": "npm install -D @crvouga/mockingbird-service-odx",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-odx\"",
      "operations": {
        "supported": 15,
        "total": 15,
        "unsupported": []
      },
      "contract": {
        "title": "Optimal DX partner API (Mockingbird subset)",
        "upstream": "Hand-authored from optimal.dx.service.ts / optimal.dx.types.ts, the webhook guard and DTO (odx-signature.guard.ts, odx-webhook-data.dto.ts) and the QA harness (packages/qa odx-client.ts)."
      },
      "examples": [],
      "docs": {
        "page": "/services/odx",
        "markdown": "/services/odx.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/odx/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/odx/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-odx",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/odx"
    },
    {
      "name": "payload-cms",
      "package": "@crvouga/mockingbird-service-payload-cms",
      "displayName": "Payload CMS",
      "description": "Stateful mock of the Payload CMS collection REST API: paginated finds with a where-query subset, find by id, a seeded marketing collection and admin-editable documents.",
      "category": "productivity",
      "categoryLabel": "Productivity",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-payload-cms"
      },
      "install": "npm install -D @crvouga/mockingbird-service-payload-cms",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-payload-cms\"",
      "operations": {
        "supported": 2,
        "total": 2,
        "unsupported": []
      },
      "contract": {
        "title": "Payload CMS REST API (Mockingbird subset)",
        "upstream": "Shapes from https://payloadcms.com/docs/rest-api/overview and https://payloadcms.com/docs/queries/overview; the consumer is apps/backend/src/modules/cms/payload-cms/payload-cms.service.ts."
      },
      "examples": [],
      "docs": {
        "page": "/services/payload-cms",
        "markdown": "/services/payload-cms.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/payload-cms/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/payload-cms/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-payload-cms",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/payload-cms"
    },
    {
      "name": "persona",
      "package": "@crvouga/mockingbird-service-persona",
      "displayName": "Persona",
      "description": "Stateful mock of the Persona identity-verification API: inquiry create, list (reusable lookup), get, a hosted flow page, admin lifecycle transitions, and Persona-Signature webhooks.",
      "category": "identity",
      "categoryLabel": "Identity",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-persona"
      },
      "install": "npm install -D @crvouga/mockingbird-service-persona",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-persona\"",
      "operations": {
        "supported": 5,
        "total": 5,
        "unsupported": []
      },
      "contract": {
        "title": "Persona API (Mockingbird subset)",
        "upstream": "Hand-authored: Persona publishes reference docs but no OpenAPI document; the shapes follow https://docs.withpersona.com/reference and our consumer's zod schemas."
      },
      "examples": [],
      "docs": {
        "page": "/services/persona",
        "markdown": "/services/persona.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/persona/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/persona/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-persona",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/persona"
    },
    {
      "name": "pharmetika",
      "package": "@crvouga/mockingbird-service-pharmetika",
      "displayName": "Pharmetika",
      "description": "Stateful mock of the Pharmetika compounding-pharmacy provider portal: clinics, patients, medication-order validate / EPCS prepare / submit / lookup, the v7 cancel, the medication-template catalog, and status webhooks.",
      "category": "pharmacy",
      "categoryLabel": "Pharmacy",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-pharmetika"
      },
      "install": "npm install -D @crvouga/mockingbird-service-pharmetika",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-pharmetika\"",
      "operations": {
        "supported": 9,
        "total": 9,
        "unsupported": []
      },
      "contract": {
        "title": "Pharmetika provider portal API (Mockingbird subset)",
        "upstream": "Hand-authored from the wire shapes our consumer reads and writes (pharmetika-fulfillment.adapter.ts, pharmetika-live.client.ts, and the adapter spec's recorded bodies)."
      },
      "examples": [],
      "docs": {
        "page": "/services/pharmetika",
        "markdown": "/services/pharmetika.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/pharmetika/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/pharmetika/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-pharmetika",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/pharmetika"
    },
    {
      "name": "plane",
      "package": "@crvouga/mockingbird-service-plane",
      "displayName": "Plane",
      "description": "Stateful mock of the Plane REST API v1: cursor-paginated work items, comments, links, states and labels, with Plane's rate limit and error shapes.",
      "category": "productivity",
      "categoryLabel": "Productivity",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-plane"
      },
      "install": "npm install -D @crvouga/mockingbird-service-plane",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-plane\"",
      "operations": {
        "supported": 11,
        "total": 11,
        "unsupported": []
      },
      "contract": {
        "title": "Plane REST API (Mockingbird subset)",
        "upstream": "Shapes from https://developers.plane.so/api-reference; consumer: apps/backend/src/modules/bug-reports/adapters/native-fetch-plane.adapter.ts, plane-http-client.ts, plane-response.ts."
      },
      "examples": [],
      "docs": {
        "page": "/services/plane",
        "markdown": "/services/plane.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/plane/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/plane/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-plane",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/plane"
    },
    {
      "name": "portal-agent",
      "package": "@crvouga/mockingbird-service-portal-agent",
      "displayName": "Portal Agent",
      "description": "Stateful mock of our eRx portal agent (LifeFile/VPI browser runner): the fulfilment job endpoint with strict response rules, a job store, fault presets, and x-internal-key callbacks.",
      "category": "pharmacy",
      "categoryLabel": "Pharmacy",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-portal-agent"
      },
      "install": "npm install -D @crvouga/mockingbird-service-portal-agent",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-portal-agent\"",
      "operations": {
        "supported": 1,
        "total": 1,
        "unsupported": []
      },
      "contract": {
        "title": "eRx portal agent job API (Mockingbird subset)",
        "upstream": "Hand-authored from portal-agent-fulfillment.base.ts (dispatchPortalAgentJob, parsePortalAgentJobResponse), portal-agent-fulfillment.adapter.ts and vpi-fulfillment.adapter.ts (buildPayload), and pharmacy-webhook.controller.ts (callback)."
      },
      "examples": [],
      "docs": {
        "page": "/services/portal-agent",
        "markdown": "/services/portal-agent.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/portal-agent/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/portal-agent/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-portal-agent",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/portal-agent"
    },
    {
      "name": "posthog",
      "package": "@crvouga/mockingbird-service-posthog",
      "displayName": "PostHog",
      "description": "Stateful mock of PostHog: /flags v2 and legacy /decide evaluation with per-test flag, variant and payload control, remote config, gzip/base64 capture (/batch/, /e/, /i/v0/e/), recordings intake, and the feature-flag management and HogQL API slice.",
      "category": "observability",
      "categoryLabel": "Observability",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-posthog"
      },
      "install": "npm install -D @crvouga/mockingbird-service-posthog",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-posthog\"",
      "operations": {
        "supported": 16,
        "total": 16,
        "unsupported": []
      },
      "contract": {
        "title": "PostHog feature flags, capture and management API (Mockingbird subset)",
        "upstream": "Hand-authored from @posthog/core posthog-core-stateless (getFlags, sendBatch, getRemoteConfig, getSurveysStateless), posthog-js request.ts / posthog-featureflags.ts, and the consumer's posthog-server.adapter.ts, posthog-server.ts (EMR frontend), website-posthog-purchase.sink.ts, posthog-hogql.client.ts and feature-flags-cli."
      },
      "examples": [],
      "docs": {
        "page": "/services/posthog",
        "markdown": "/services/posthog.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/posthog/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/posthog/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-posthog",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/posthog"
    },
    {
      "name": "prism",
      "package": "@crvouga/mockingbird-service-prism",
      "displayName": "Prism Labs",
      "description": "Stateful mock of the Prism Labs body-scan API: subjects, scans, presigned capture upload, processing stages to READY, and deterministic body-composition, measurement, health-report and asset results.",
      "category": "health",
      "categoryLabel": "Health & labs",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-prism"
      },
      "install": "npm install -D @crvouga/mockingbird-service-prism",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-prism\"",
      "operations": {
        "supported": 11,
        "total": 11,
        "unsupported": []
      },
      "contract": {
        "title": "Prism Labs body-scan API (Mockingbird subset)",
        "upstream": "Wire shapes from apps/backend/src/modules/body-scan/adapters/outbound/prism-scan.adapter.ts and packages/body-scan-capture-page/src/main.ts (the PUT upload)."
      },
      "examples": [],
      "docs": {
        "page": "/services/prism",
        "markdown": "/services/prism.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/prism/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/prism/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-prism",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/prism"
    },
    {
      "name": "resend",
      "package": "@crvouga/mockingbird-service-resend",
      "displayName": "Resend",
      "description": "Stateful mock of the Resend email API (send with idempotency, received emails, attachments) with an outbox and Svix-signed inbound webhooks (Mockingbird service contract).",
      "category": "communication",
      "categoryLabel": "Communication",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-resend"
      },
      "install": "npm install -D @crvouga/mockingbird-service-resend",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-resend\"",
      "operations": {
        "supported": 5,
        "total": 5,
        "unsupported": []
      },
      "contract": {
        "title": "Resend API (Mockingbird subset)",
        "upstream": "Trimmed from https://resend.com/docs/api-reference (emails/send-email, emails/retrieve-email, receiving/retrieve-received-email, receiving/list-attachments); request/response shapes cross-checked against resend@4.8.0 (dist/index.mjs) and our consumer (send-emails.service.ts, notification-dispatcher email.ts, resend-inbound-email.client.ts)."
      },
      "examples": [],
      "docs": {
        "page": "/services/resend",
        "markdown": "/services/resend.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/resend/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/resend/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-resend",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/resend"
    },
    {
      "name": "rxvortex",
      "package": "@crvouga/mockingbird-service-rxvortex",
      "displayName": "RxVortex",
      "description": "Stateful mock of the RxVortex (Strive) pharmacy API: OAuth token, order submit, status, cancel, recovery by sender order id, preset catalog, and signed status webhooks.",
      "category": "pharmacy",
      "categoryLabel": "Pharmacy",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-rxvortex"
      },
      "install": "npm install -D @crvouga/mockingbird-service-rxvortex",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-rxvortex\"",
      "operations": {
        "supported": 5,
        "total": 5,
        "unsupported": []
      },
      "contract": {
        "title": "RxVortex (Strive) pharmacy API (Mockingbird subset)",
        "upstream": "Hand-authored from the wire shapes our consumer reads and writes (rxvortex-auth.service.ts, rxvortex-fulfillment.adapter.ts, rxvortex-live.client.ts)."
      },
      "examples": [],
      "docs": {
        "page": "/services/rxvortex",
        "markdown": "/services/rxvortex.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/rxvortex/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/rxvortex/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-rxvortex",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/rxvortex"
    },
    {
      "name": "slack",
      "package": "@crvouga/mockingbird-service-slack",
      "displayName": "Slack",
      "description": "Stateful mock of Slack incoming webhooks and the Web API (chat.postMessage and friends) with an outbox of every alert the app sent.",
      "category": "communication",
      "categoryLabel": "Communication",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-slack"
      },
      "install": "npm install -D @crvouga/mockingbird-service-slack",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-slack\"",
      "operations": {
        "supported": 20,
        "total": 20,
        "unsupported": []
      },
      "contract": {
        "title": "Slack incoming webhooks and Web API (Mockingbird subset)",
        "upstream": "Hand-authored from https://api.slack.com/methods and https://api.slack.com/messaging/webhooks (Slack publishes no maintained OpenAPI for these methods)."
      },
      "examples": [],
      "docs": {
        "page": "/services/slack",
        "markdown": "/services/slack.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/slack/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/slack/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-slack",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/slack"
    },
    {
      "name": "twilio",
      "package": "@crvouga/mockingbird-service-twilio",
      "displayName": "Twilio",
      "description": "Stateful mock of Twilio Verify, Lookup v2, Messaging and Recordings on one port, with signed inbound SMS and voice webhooks (Mockingbird service contract).",
      "category": "communication",
      "categoryLabel": "Communication",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-twilio"
      },
      "install": "npm install -D @crvouga/mockingbird-service-twilio",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-twilio\"",
      "operations": {
        "supported": 10,
        "total": 10,
        "unsupported": []
      },
      "contract": {
        "title": "Twilio Verify, Lookup, Messaging and Recordings (Mockingbird subset)",
        "upstream": "Trimmed from Twilio's public API reference (twilio-oai) to the operations our consumer calls (twilio.service.ts, twilio-conversation-sms.adapter.ts, notification-dispatcher channels/sms.ts, twilio-recording-http.adapter.ts); Lookup v2 shapes verified against the live API."
      },
      "examples": [],
      "docs": {
        "page": "/services/twilio",
        "markdown": "/services/twilio.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/twilio/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/twilio/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-twilio",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/twilio"
    },
    {
      "name": "vpi",
      "package": "@crvouga/mockingbird-service-vpi",
      "displayName": "VPI",
      "description": "Stateful mock of the VPI compounding pharmacy API: JWT authentication, products, clinic, patients, providers, saveNewPrescription drafts and the three paged prescription status lists.",
      "category": "pharmacy",
      "categoryLabel": "Pharmacy",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-vpi"
      },
      "install": "npm install -D @crvouga/mockingbird-service-vpi",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-vpi\"",
      "operations": {
        "supported": 18,
        "total": 18,
        "unsupported": []
      },
      "contract": {
        "title": "VPI compounding pharmacy API (Mockingbird subset)",
        "upstream": "Hand-derived from apps/backend/src/modules/erx/clients/vpi-api.contracts.ts and the client-local schemas in vpi-api.client.ts (request bodies are exactly what the client sends; responses are what its zod schemas accept)."
      },
      "examples": [],
      "docs": {
        "page": "/services/vpi",
        "markdown": "/services/vpi.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/vpi/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/vpi/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-vpi",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/vpi"
    },
    {
      "name": "wholescripts",
      "package": "@crvouga/mockingbird-service-wholescripts",
      "displayName": "Wholescripts",
      "description": "Stateful mock of the Wholescripts supplement fulfilment API: product and private-label catalogs, order submit, status polling and cancel, with admin status transitions.",
      "category": "pharmacy",
      "categoryLabel": "Pharmacy",
      "tier": "wip",
      "tierLabel": "Work in progress",
      "runtime": "portable",
      "kind": "http",
      "surfaces": {
        "inProcess": true,
        "browser": true,
        "server": true,
        "cli": "mockingbird-wholescripts"
      },
      "install": "npm install -D @crvouga/mockingbird-service-wholescripts",
      "entry": "import { createRuntime } from \"@crvouga/mockingbird-service-wholescripts\"",
      "operations": {
        "supported": 5,
        "total": 5,
        "unsupported": []
      },
      "contract": {
        "title": "Wholescripts supplement fulfilment API (Mockingbird subset)",
        "upstream": "Hand-authored from the wire shapes our consumers read and write (backend and EMR wholescripts.types.ts zod schemas, the Makor wholescripts client, adapter and mappers)."
      },
      "examples": [],
      "docs": {
        "page": "/services/wholescripts",
        "markdown": "/services/wholescripts.md",
        "readme": "https://github.com/crvouga/mockingbird/blob/main/packages/service/wholescripts/README.md",
        "support": "https://github.com/crvouga/mockingbird/blob/main/packages/service/wholescripts/SUPPORT.md"
      },
      "npm": "https://www.npmjs.com/package/@crvouga/mockingbird-service-wholescripts",
      "source": "https://github.com/crvouga/mockingbird/tree/main/packages/service/wholescripts"
    }
  ]
}