Server: chatcopsNext(), one catch-all route for Next.js
I maintainer di solito rispondono entro 1 giorno
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
F-12 task 5. In Next.js the chat needs two route files today: app/api/chat/route.ts and app/api/chat/session/route.ts, which re-exports the first (website/src/content/docs/server/fetch-runtimes.mdx:13-40). Forgetting the second breaks session tokens. A Next adapter can serve every sub-path from one catch-all route:
// app/api/chat/[[...path]]/route.ts
import { chatcopsNext } from '@chatcops/server/next';
export const { POST, OPTIONS } = chatcopsNext({
provider: { type: 'claude', apiKey: process.env.ANTHROPIC_API_KEY! },
systemPrompt: 'You are a helpful assistant.',
sessionSecrets: [process.env.CHATCOPS_SESSION_SECRET!],
});
export const runtime = 'nodejs';
What to do
- A new
packages/server/src/adapters/next.tswithchatcopsNext(config), returning{ POST, OPTIONS }, both(request: Request) => Promise<Response>. Build it likechatcopsVercelHandler(packages/server/src/adapters/vercel.ts): onecreateChatHandlerat module scope, andfetchChatResponsewith the client IP.fetchChatResponsealready sends a path ending in/sessionto the session endpoint (isSessionPathinpackages/server/src/http.ts), so the catch-all works without routing of its own. Add aGETlater, with handoff (F-10). - Add
"./next"to theexportsinpackages/server/package.json, next to./vercel. - Docs: change the Next.js section of
fetch-runtimes.mdxto the single catch-all route, and keep the two-file version as a short note for older code.
Acceptance criteria
- Unit tests with real
Requestobjects: a chat POST to/api/chat, a session POST to/api/chat/session, anOPTIONSpreflight, and a request without a token getting 401 - You tried it in a fresh Next.js app (
npx create-next-app@latest), following the updated docs, and the widget chats with it. Say what you ran in the PR. -
pnpm docs:checkpasses (it checks that the server example setssessionSecrets) - A minor changeset for
@chatcops/server;pnpm test:coverage,pnpm lint,pnpm publintandpnpm api(commit the snapshot) pass
Comment on this issue to be assigned.
- Lingua principale
- TypeScript
- Stelle
- 13
- Fork
- 7
- Merge medio
- 3h 15m
- PR unite (30g)
- 330
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di codercops/chatcops
-
Widget: a code block tagged `c++`, `c#` or `objective-c` shows part of the tag as codeForse già presa @prakashNalla l’ha presa oggi. Apertabug widget
codercops/chatcops#578 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Docs: Astro, Nuxt and SvelteKit guides for the serverForse già presa @anurag2787 l’ha presa 1 giorno fa. Apertadocumentation
codercops/chatcops#575 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
@chatcops/react: a <ChatCops> component and useChatCops() hookForse già presa @Saifjafri212213 l’ha presa oggi. Apertaenhancement widget
codercops/chatcops#573 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 25/100
codercops/chatcops#546 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 64/100
codercops/chatcops#542 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di codercops/chatcops
Issue simili
-
needs-area
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/typespec-azure#5936 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
vercel-labs/scriptc#2910 ·
I maintainer di solito rispondono entro 1 giorno
-
automation missing-model model-sync provider:fireworks-ai
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
anomalyco/models.dev#12458 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno