Files
vercel__chat/apps/docs/adapters.json
mazhe-nerd 293356525d feat: docs: add Lark / Feishu adapter (#517)
## Summary

Adds
[`@larksuite/vercel-chat-adapter`](https://www.npmjs.com/package/@larksuite/vercel-chat-adapter),
the Lark / Feishu adapter for Chat SDK, as a **vendor-official community
adapter**.

- **Package**: `@larksuite/vercel-chat-adapter` — published on npm under
the official `larksuite` scope
- **Built on**:
[`@larksuiteoapi/node-sdk`](https://www.npmjs.com/package/@larksuiteoapi/node-sdk)'s
`LarkChannel`, the official Lark Node SDK
- **Docs source**: external README referenced by `adapters.json` lives
in
[`larksuite/node-sdk`](https://github.com/larksuite/node-sdk/tree/cbc4adf13cbcb93b389db01faf428e3b3cef053c/docs/vercel-chat-adapter)
(the official Lark vendor-owned GitHub org, pinned at commit
`cbc4adf1`); the in-tree MDX in this PR is the rendered detail page
(`mdxBody: true`)
- **Capabilities**: native cardkit typewriter streaming, interactive
cards, reactions, edit / delete, message history (via SDK
`normalize()`), DM detection, mention handling, and scan-to-create app
onboarding through `registerLarkApp`

## Changes

| File | Change |
|---|---|
| `apps/docs/adapters.json` | Add Lark / Feishu entry (`community:
true`, `vendorOfficial: true`) |
| `apps/docs/content/adapters/vendor-official/lark.mdx` | New
hand-authored MDX detail page (frontmatter with full features matrix,
install / quick start / configuration / transport / streaming / ID
encoding / history / safety / limitations / FeatureSupport) |
| `apps/docs/content/adapters/vendor-official/meta.json` | Append
`"lark"` to the sidebar `pages` array |
| `packages/integration-tests/src/docs-adapters.test.ts` | Append
`"lark"` to the hardcoded vendor-official slug list asserted by
`Vendor-Official adapter MDX › contains exactly the expected adapters` |

No icon registered in `adapters.json` / `iconMap` / `adapterLogos` —
matches the existing pattern for vendor-official adapters (Beeper,
Resend, Liveblocks, Zernio, Photon).

## Vendor Official tier

Per `docs/contributing/building.mdx` (Qualifications for vendor official
tier):

- ✅ **Commitment for continued maintenance** — owned by the Lark /
Feishu team
- ✅ **GitHub hosting in official vendor-owned org** — adapter README
lives in [`larksuite/node-sdk`](https://github.com/larksuite/node-sdk),
the official Lark org
- ✅ **Documentation in primary vendor docs** — will be cross-linked from
the official Lark Open Platform developer documentation
- ✅ **Announcement** — will be announced through Lark developer
changelog / channels

## A note on source visibility

The adapter source is not currently open-sourced due to internal
release-process requirements. What is public:

- The npm package itself (consumable by any user)
- The README, hosted in `larksuite/node-sdk` (official Lark org)
- The underlying
[`@larksuiteoapi/node-sdk`](https://github.com/larksuite/node-sdk) on
which it is built — this *is* fully open-source

## Test plan

- [x] `pnpm --filter docs build` — docs app builds cleanly;
`/en/adapters/vendor-official/lark` and
`/en/adapters/vendor-official/lark/og` routes are generated
- [x] `pnpm typecheck` — passes (33 tasks)
- [x] `pnpm check` (Ultracite / Biome) — 438 files, no fixes
- [x] `pnpm --filter @chat-adapter/integration-tests test docs-adapters`
— 232 tests pass (frontmatter, vendor-official roster, adapters.json ↔
MDX sync)
- [x] Manual: `/adapters` lists the Lark / Feishu card in the **Vendor
Official** section; `/adapters/vendor-official/lark` renders the MDX
detail page with the FeatureSupport matrix
2026-05-29 12:40:43 +10:00

310 lines
11 KiB
JSON

[
{
"name": "Slack",
"slug": "slack",
"type": "platform",
"description": "Build bots for Slack workspaces with full support for threads, reactions, and interactive messages.",
"packageName": "@chat-adapter/slack",
"icon": "slack",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-slack"
},
{
"name": "Microsoft Teams",
"slug": "teams",
"type": "platform",
"description": "Deploy bots to Microsoft Teams with adaptive cards, mentions, and conversation threading.",
"packageName": "@chat-adapter/teams",
"icon": "teams",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-teams"
},
{
"name": "Google Chat",
"slug": "google-chat",
"type": "platform",
"description": "Integrate with Google Chat spaces for team collaboration and automated workflows.",
"packageName": "@chat-adapter/gchat",
"icon": "google-chat",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-gchat"
},
{
"name": "Discord",
"slug": "discord",
"type": "platform",
"description": "Create Discord bots with slash commands, threads, and rich embeds.",
"packageName": "@chat-adapter/discord",
"icon": "discord",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-discord"
},
{
"name": "GitHub",
"slug": "github",
"type": "platform",
"description": "Build bots that respond to pull request and issue comment threads.",
"packageName": "@chat-adapter/github",
"icon": "github",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-github"
},
{
"name": "Linear",
"slug": "linear",
"type": "platform",
"description": "Automate Linear issue comment threads with bot responses and workflows.",
"packageName": "@chat-adapter/linear",
"icon": "linear",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-linear"
},
{
"name": "Telegram",
"slug": "telegram",
"type": "platform",
"description": "Connect to Telegram with support for groups, channels, and inline keyboards.",
"packageName": "@chat-adapter/telegram",
"icon": "telegram",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-telegram"
},
{
"name": "WhatsApp Business Cloud",
"slug": "whatsapp",
"type": "platform",
"icon": "whatsapp",
"description": "Connect to WhatsApp Business Cloud for customer messaging and automated conversations.",
"packageName": "@chat-adapter/whatsapp",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-whatsapp"
},
{
"name": "Twilio",
"slug": "twilio",
"type": "platform",
"icon": "twilio",
"description": "Build SMS and MMS bots with Twilio Messaging webhooks and the Messages API.",
"packageName": "@chat-adapter/twilio",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-twilio"
},
{
"name": "Messenger",
"slug": "messenger",
"type": "platform",
"description": "Build bots for Facebook Messenger with support for templates, buttons, reactions, and postbacks.",
"packageName": "@chat-adapter/messenger",
"icon": "messenger",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-messenger"
},
{
"name": "Web",
"slug": "web",
"type": "platform",
"description": "Serve a browser chat UI from the same bot using the AI SDK useChat protocol — works out of the box with @ai-sdk/react and ai-elements.",
"packageName": "@chat-adapter/web",
"icon": "web",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/adapter-web"
},
{
"name": "Redis",
"slug": "redis",
"type": "state",
"description": "Production-ready state adapter using Redis for persistence and distributed locking.",
"packageName": "@chat-adapter/state-redis",
"icon": "redis",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/state-redis"
},
{
"name": "ioredis",
"slug": "ioredis",
"type": "state",
"description": "Redis state adapter using ioredis with cluster and sentinel support.",
"packageName": "@chat-adapter/state-ioredis",
"icon": "ioredis",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/state-ioredis"
},
{
"name": "PostgreSQL",
"slug": "postgres",
"type": "state",
"description": "Production state adapter using PostgreSQL for persistence and distributed locking.",
"packageName": "@chat-adapter/state-pg",
"icon": "postgres",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/state-pg"
},
{
"name": "Memory",
"slug": "memory",
"type": "state",
"description": "In-memory state adapter for development and testing environments.",
"packageName": "@chat-adapter/state-memory",
"icon": "memory",
"beta": true,
"readme": "https://github.com/vercel/chat/tree/main/packages/state-memory"
},
{
"name": "Cloudflare Durable Objects",
"slug": "cloudflare-do",
"type": "state",
"community": true,
"description": "Cloudflare Durable Objects state adapter with SQLite-backed persistence, distributed locking, and caching.",
"packageName": "chat-state-cloudflare-do",
"author": "dcartertwo",
"readme": "https://github.com/dcartertwo/chat-state-cloudflare-do/tree/13ebf545b302b7c8fdabf7de9c5de678e047ce5e"
},
{
"name": "MySQL",
"slug": "mysql",
"type": "state",
"community": true,
"description": "Community MySQL state adapter with persistence, distributed locking, caching, lists, and queues.",
"packageName": "chat-state-mysql",
"author": "DivyanshGolyan",
"readme": "https://github.com/DivyanshGolyan/chat-state-mysql/tree/26502f2c43e2aee16b0b58f2066a81e01b2c289b"
},
{
"name": "Beeper Matrix",
"slug": "matrix",
"type": "platform",
"community": true,
"description": "Matrix adapter for Chat SDK, built and maintained by Beeper.",
"packageName": "@beeper/chat-adapter-matrix",
"author": "Beeper",
"readme": "https://github.com/beeper/chat-adapter-matrix/tree/632fb141b07d7243f2a09ee12ec55854c628217d",
"vendorOfficial": true
},
{
"name": "Photon iMessage",
"slug": "imessage",
"type": "platform",
"community": true,
"description": "iMessage adapter for Chat SDK. Supports both local (on-device) and Photon iMessage integration.",
"packageName": "chat-adapter-imessage",
"author": "Photon",
"readme": "https://github.com/photon-hq/vercel-chat-adapter-imessage/tree/8e6ae8f1b824db798664c98be91138f083e02262",
"vendorOfficial": true
},
{
"name": "Webex",
"slug": "webex",
"type": "platform",
"community": true,
"description": "Community Webex adapter for Chat SDK with support for spaces, threads, and adaptive cards.",
"packageName": "@bitbasti/chat-adapter-webex",
"author": "SebastianBodza",
"readme": "https://github.com/SebastianBodza/chat-adapter-webex/tree/982d76b24217dfe2e248ec13a17d16c2df32e09e"
},
{
"name": "Resend",
"slug": "resend",
"type": "platform",
"community": true,
"description": "Bidirectional email adapter for Chat SDK with threading, rich HTML emails, and attachment support via Resend.",
"packageName": "@resend/chat-sdk-adapter",
"author": "Resend",
"readme": "https://github.com/resend/resend-chat-sdk/tree/6b66fc12eabdf2529422fc0c0cf946392f1b5a76",
"vendorOfficial": true
},
{
"name": "Zernio",
"slug": "zernio",
"type": "platform",
"community": true,
"description": "Unified social media DM adapter covering Instagram, Facebook, Telegram, WhatsApp, X/Twitter, Bluesky, and Reddit through a single integration.",
"packageName": "@zernio/chat-sdk-adapter",
"author": "Zernio",
"readme": "https://github.com/zernio-dev/chat-sdk-adapter/tree/0a51a1d224536ae5d117a3afb6ab992fab167214",
"vendorOfficial": true
},
{
"name": "Baileys WhatsApp",
"slug": "baileys",
"type": "platform",
"community": true,
"description": "Chat SDK adapter for Baileys (Unofficial WhatsApp API).",
"packageName": "chat-adapter-baileys",
"author": "rama-adi",
"readme": "https://github.com/rama-adi/chat-adapter-baileys/tree/b5454e7c04c75d91b06213f16a4af82ddb4a120f"
},
{
"name": "Liveblocks",
"slug": "liveblocks",
"type": "platform",
"community": true,
"description": "Liveblocks Comments adapter for building conversational bots on top of Liveblocks rooms, threads, and comments.",
"packageName": "@liveblocks/chat-sdk-adapter",
"author": "Liveblocks",
"readme": "https://github.com/liveblocks/liveblocks/tree/a939486c73819ea78a96443d54cb5557881d80b6/packages/liveblocks-chat-sdk-adapter",
"vendorOfficial": true
},
{
"name": "Sendblue iMessage",
"slug": "sendblue",
"type": "platform",
"community": true,
"description": "iMessage adapter for Chat SDK using Sendblue for building your own iMessage bots.",
"packageName": "chat-adapter-sendblue",
"author": "midday-ai",
"readme": "https://github.com/midday-ai/chat-adapter-sendblue/tree/5125a9d018f5d05dca063cd4d7e554fdb92ecce8"
},
{
"name": "Blooio iMessage",
"slug": "blooio",
"type": "platform",
"community": true,
"description": "Blooio adapter for Chat SDK to send and receive iMessage, RCS, and SMS from your bot.",
"packageName": "chat-adapter-blooio",
"author": "midday-ai",
"readme": "https://github.com/midday-ai/chat-adapter-blooio/tree/283678e3490275c7b440221ce3cdeac56bbfb60a"
},
{
"name": "Zalo",
"slug": "zalo",
"type": "platform",
"community": true,
"description": "Zalo adapter for Chat SDK using Zalo for building your own Zalo bots.",
"packageName": "chat-adapter-zalo",
"author": "buiducnhat",
"readme": "https://github.com/buiducnhat/chat-adapter-zalo/tree/a11acb91efa9752c6d15c0a00c759b92c479e6fa"
},
{
"name": "Mattermost",
"slug": "mattermost",
"type": "platform",
"community": true,
"description": "Mattermost adapter for Chat SDK with support for posts, reactions, and slash commands.",
"packageName": "chat-adapter-mattermost",
"author": "thiagoferolla",
"readme": "https://github.com/thiagoferolla/chat-adapter-mattermost/tree/70eb85321cba65d511f6e158b9a2f5aac2aa922c"
},
{
"name": "AgentPhone",
"slug": "agentphone",
"type": "platform",
"community": true,
"description": "Unified SMS, MMS, iMessage, and voice adapter for Chat SDK with HMAC-verified webhooks, iMessage reactions, and voice call transcripts via AgentPhone.",
"packageName": "@agentphone/chat-sdk-adapter",
"author": "AgentPhone",
"readme": "https://github.com/AgentPhone-AI/chat-sdk-adapter",
"vendorOfficial": true
},
{
"name": "Lark / Feishu",
"slug": "lark",
"type": "platform",
"community": true,
"description": "Lark / Feishu adapter for Chat SDK with native cardkit streaming, interactive cards, and reactions.",
"packageName": "@larksuite/vercel-chat-adapter",
"author": "Lark / Feishu",
"readme": "https://github.com/larksuite/node-sdk/tree/cbc4adf13cbcb93b389db01faf428e3b3cef053c/docs/vercel-chat-adapter",
"vendorOfficial": true
}
]