{ "name": "coding-mentor-agent", "version": "0.1.0", "license": "MIT", "type": "module", "private": true, "scripts": { "dev": "tsx src/server/main.ts", "dev:frontend": "vite --host 127.0.0.1", "build": "tsc --noEmit && vite build", "test": "vitest run", "test:student-loop": "python tests/e2e/run_student_loop_discovery.py --profile realistic", "test:student-loop:realistic": "python tests/e2e/run_student_loop_discovery.py --profile realistic", "test:student-loop:realistic:until-clean": "python tests/e2e/run_student_loop_discovery.py --profile realistic --until-clean", "test:student-loop:local": "python tests/e2e/run_student_loop.py", "test:student-loop:strict": "python tests/e2e/run_student_loop_matrix.py --strict", "test:student-loop:until-clean": "python tests/e2e/run_student_loop_matrix.py --until-clean", "test:student-loop:discover": "python tests/e2e/run_student_loop_discovery.py --profile realistic", "test:student-loop:discover:until-clean": "python tests/e2e/run_student_loop_discovery.py --profile realistic --until-clean", "test:student-loop:live-provider": "python tests/e2e/run_student_loop_discovery.py --live-provider", "test:student-loop:release": "python tests/e2e/run_student_loop_discovery.py --profile release", "test:student-loop:security": "python tests/e2e/run_student_loop_discovery.py --profile security", "test:student-loop:agentic-practice": "python tests/e2e/agentic_practice_verification.py", "test:student-loop:full-realistic": "python tests/e2e/run_student_loop_discovery.py --profile full_realistic_closure", "test:student-loop:full-realistic:until-clean": "python tests/e2e/run_student_loop_discovery.py --profile full_realistic_closure --until-clean", "test:watch": "vitest", "lint": "tsc --noEmit", "start": "tsx src/server/main.ts", "start:sandbox": "tsx src/sandbox/main.ts" }, "dependencies": { "@codemirror/lang-python": "^6.2.1", "@codemirror/view": "^6.43.6", "@earendil-works/pi-ai": "^0.84.2", "@earendil-works/pi-coding-agent": "^0.84.2", "@earendil-works/pi-web-ui": "^0.75.3", "@mariozechner/mini-lit": "^0.2.0", "@sinclair/typebox": "^0.34.41", "ajv": "^8.17.1", "codemirror": "^6.0.2", "lit": "^3.3.3", "react": "^19.2.7", "react-dom": "^19.2.7", "react-markdown": "^10.1.0", "rehype-sanitize": "^6.0.0", "remark-breaks": "^4.0.0", "remark-gfm": "^4.0.1" }, "devDependencies": { "@playwright/test": "^1.62.1", "@types/node": "^26.1.0", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.5", "@vitest/browser": "^4.1.10", "jsdom": "^30.0.1", "playwright": "^1.57.0", "tsx": "^4.22.4", "typescript": "^7.0.2", "vite": "^8.0.16", "vitest": "^4.1.9" } }