{ "name": "learning-harness", "version": "0.2.0", "description": "A standalone learning harness: a teacher agent (AI SDK) with quiz/ask interactions, session artifacts, and a derived knowledge graph of what the learner knows.", "type": "module", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "test": "NODE_ENV=test tsx --test tests/*.test.ts tests/*.test.tsx", "lint": "eslint .", "typecheck": "tsc --noEmit" }, "dependencies": { "@ai-sdk/react": "^4.0.79", "@earendil-works/pi-agent-core": "^0.85.1", "@earendil-works/pi-ai": "^0.85.1", "@huggingface/transformers": "^4.2.0", "@mozilla/readability": "^0.6.0", "@radix-ui/react-use-controllable-state": "^1.2.6", "@rive-app/react-webgl2": "^4.32.1", "@streamdown/cjk": "^1.0.3", "@streamdown/code": "^1.1.1", "@streamdown/math": "^1.0.2", "@streamdown/mermaid": "^1.0.2", "@xyflow/react": "^12.11.3", "ai": "^7.0.76", "ansi-to-react": "^6.2.6", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "d3-force": "^3.0.0", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0", "embla-carousel-react": "^8.6.0", "katex": "^0.16.47", "linkedom": "^0.18.13", "lucide-react": "^1.33.0", "media-chrome": "^4.19.2", "mermaid": "^11.17.0", "motion": "^13.1.1", "nanoid": "^6.0.1", "next": "^16.3.2", "next-themes": "^0.4.6", "puppeteer-core": "^25.8.0", "radix-ui": "^1.6.7", "react": "^19.2.8", "react-dom": "^19.2.8", "react-jsx-parser": "^2.4.1", "remark-breaks": "^4.0.0", "streamdown": "^2.5.0", "tailwind-merge": "^3.6.0", "tokenlens": "^1.3.1", "turndown": "^7.2.4", "use-stick-to-bottom": "^1.1.6", "zod": "^4.4.3" }, "devDependencies": { "@next/eslint-plugin-next": "^16.3.3", "@tailwindcss/postcss": "^4.3.3", "@types/node": "^24.0.0", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.4", "@types/turndown": "^5.0.6", "@typescript-eslint/parser": "^8.68.0", "eslint": "^9.39.5", "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-import": "^2.32.0", "tailwindcss": "^4.3.3", "tsx": "^4.19.0", "typescript": "^5.6.0" } }