5bf6013460
Progressive lesson streaming via onSegment callback (fixes SSE for non-English users — locale was shadowed in lesson-reader useEffect). Adds: BullMQ workers, Redis stream buffer, token budget enforcement, Langfuse tracing, golden-eval runner, Playwright e2e scaffolding, lesson depth/locale/preferences schema, mastery map UI, admin panel (blueprints/users/reports/quality/misconceptions), image queries, source citations, view transitions, reading animations, i18n (next-intl), PDF export, surprise endpoint, and 402 passing unit tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
85 lines
2.6 KiB
JSON
85 lines
2.6 KiB
JSON
{
|
|
"name": "curio",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "next lint",
|
|
"format": "prettier --write .",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "playwright test",
|
|
"drizzle-kit": "drizzle-kit",
|
|
"db:generate": "dotenv -e .env.local -- drizzle-kit generate",
|
|
"db:migrate": "dotenv -e .env.local -- drizzle-kit migrate",
|
|
"db:studio": "dotenv -e .env.local -- drizzle-kit studio",
|
|
"seed": "tsx --env-file=.env.local scripts/seed.ts",
|
|
"test:golden": "tsx --env-file=.env.local tests/golden/run-grading-eval.ts",
|
|
"test:golden:misconceptions": "tsx --env-file=.env.local tests/golden/run-misconception-eval.ts",
|
|
"test:golden:content": "tsx --env-file=.env.local tests/golden/run-content-eval.ts",
|
|
"workers": "tsx --env-file=.env.local jobs/bootstrap.ts"
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/amazon-bedrock": "^4.0.119",
|
|
"@ai-sdk/anthropic": "^1.0.0",
|
|
"@ai-sdk/azure": "^3.0.76",
|
|
"@ai-sdk/cohere": "^3.0.39",
|
|
"@ai-sdk/google": "^3.0.83",
|
|
"@ai-sdk/groq": "^3.0.42",
|
|
"@ai-sdk/mistral": "^3.0.40",
|
|
"@ai-sdk/openai": "^1.0.0",
|
|
"@ai-sdk/provider": "^1.0.0",
|
|
"@ai-sdk/xai": "^3.0.96",
|
|
"@auth/drizzle-adapter": "^1.11.2",
|
|
"@react-pdf/renderer": "^4.5.1",
|
|
"@upstash/ratelimit": "^2.0.8",
|
|
"@upstash/redis": "^1.38.0",
|
|
"ai": "^4.3.0",
|
|
"bcryptjs": "^3.0.3",
|
|
"bullmq": "^5.79.0",
|
|
"drizzle-orm": "^0.40.0",
|
|
"ioredis": "^5.4.0",
|
|
"langfuse": "^3.0.0",
|
|
"next": "^15.3.0",
|
|
"next-auth": "5.0.0-beta.31",
|
|
"next-intl": "^4.13.0",
|
|
"nodemailer": "^9.0.1",
|
|
"ollama-ai-provider": "^1.2.0",
|
|
"pg": "^8.13.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-markdown": "^10.1.0",
|
|
"remark": "^15.0.1",
|
|
"remark-breaks": "^4.0.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-parse": "^11.0.0",
|
|
"server-only": "^0.0.1",
|
|
"unified": "^11.0.5",
|
|
"zod": "^3.24.0"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.49.0",
|
|
"@tailwindcss/postcss": "^4.1.0",
|
|
"@types/bcryptjs": "^3.0.0",
|
|
"@types/mdast": "^4.0.4",
|
|
"@types/node": "^22.0.0",
|
|
"@types/nodemailer": "^8.0.1",
|
|
"@types/pg": "^8.11.0",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@vitejs/plugin-react": "^4.4.0",
|
|
"dotenv": "^16.4.0",
|
|
"dotenv-cli": "^11.0.0",
|
|
"drizzle-kit": "^0.30.0",
|
|
"eslint": "^9.0.0",
|
|
"eslint-config-next": "^15.3.0",
|
|
"prettier": "^3.5.0",
|
|
"tailwindcss": "^4.1.0",
|
|
"tsx": "^4.19.0",
|
|
"typescript": "^5.8.0",
|
|
"vitest": "^3.1.0"
|
|
}
|
|
}
|