mirror of
https://github.com/vercel/chat.git
synced 2026-09-14 18:32:29 +08:00
03d274283f
Adds `examples/nuxt-chat`, a Nuxt 4 reference app for Chat SDK scoped to
the Slack and web adapters.
The Nitro server exposes `/api/webhooks/{platform}` for Slack events and
`/api/chat` for the browser UI, with H3-to-Fetch conversion that
preserves the raw request body for signature verification. Bot handlers
are ported from `nextjs-chat` — interactive cards, modals, slash
commands, transcripts, reactions, and AI streaming — without the
workflow demos.
The `/chat` page is a client-only Vue UI using `@chat-adapter/web/vue`
and the AI SDK. A Slack app manifest ships with the scopes and events
needed for pins, reactions, channel joins, and interactivity.
Monorepo plumbing covers changeset ignore, CI build exclusion,
`AGENTS.md`, knip entry paths for the Nuxt 4 `app/` directory, and biome
globals for Nitro auto-imports.
---------
Co-authored-by: Ben Sabic <bensabic@users.noreply.github.com>
83 lines
2.0 KiB
JSON
83 lines
2.0 KiB
JSON
{
|
|
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
|
"extends": [
|
|
"ultracite/biome/core",
|
|
"ultracite/biome/react",
|
|
"ultracite/biome/next"
|
|
],
|
|
"linter": {
|
|
"rules": {
|
|
"suspicious": {
|
|
"noEmptyBlockStatements": "off",
|
|
"useAwait": "off",
|
|
"noSkippedTests": "off"
|
|
},
|
|
"complexity": {
|
|
"noExcessiveCognitiveComplexity": "off"
|
|
},
|
|
"performance": {
|
|
"noBarrelFile": "off"
|
|
},
|
|
"style": {
|
|
"useNumericSeparators": "off"
|
|
},
|
|
"a11y": {
|
|
"noSvgWithoutTitle": "off"
|
|
}
|
|
}
|
|
},
|
|
"files": {
|
|
"includes": [
|
|
"**/*",
|
|
"!apps/docs/app/\\[lang\\]/docs",
|
|
"!apps/docs/app/\\[lang\\]/llms.mdx",
|
|
"!apps/docs/app/\\[lang\\]/llms.txt",
|
|
"!apps/docs/app/\\[lang\\]/og",
|
|
"!apps/docs/app/\\[lang\\]/rss.xml",
|
|
"!apps/docs/app/\\[lang\\]/layout.tsx",
|
|
"!apps/docs/app/\\[lang\\]/sitemap.md",
|
|
"!apps/docs/app/actions/feedback",
|
|
"!apps/docs/app/api",
|
|
"!apps/docs/app/styles/geistdocs.css",
|
|
"!apps/docs/app/robots.ts",
|
|
"!apps/docs/app/sitemap.ts",
|
|
"!apps/docs/components/ai-elements",
|
|
"!apps/docs/components/geistdocs",
|
|
"!apps/docs/components/ui",
|
|
"!apps/docs/hooks/geistdocs",
|
|
"!apps/docs/hooks/use-mobile.ts",
|
|
"!apps/docs/lib/geistdocs",
|
|
"!apps/docs/lib/utils.ts",
|
|
"!apps/docs/geistdocs.tsx",
|
|
"!apps/docs/next.config.ts",
|
|
"!apps/docs/postcss.config.mjs",
|
|
"!apps/docs/source.config.ts",
|
|
"!apps/docs/proxy.ts"
|
|
]
|
|
},
|
|
"overrides": [
|
|
{
|
|
"includes": ["examples/nuxt-chat/**/*.vue"],
|
|
"linter": {
|
|
"rules": {
|
|
"correctness": {
|
|
"useHookAtTopLevel": "off",
|
|
"noUnusedVariables": "off"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"includes": ["examples/nuxt-chat/**"],
|
|
"javascript": {
|
|
"globals": [
|
|
"defineNuxtConfig",
|
|
"defineEventHandler",
|
|
"createError",
|
|
"getRouterParam"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|