462 lines
24 KiB
JSON
462 lines
24 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(mkdir:*)",
|
|
"Bash(chmod:*)",
|
|
"Bash(curl:*)",
|
|
"Bash(tar:*)",
|
|
"Bash(python3:*)",
|
|
"Bash(tree:*)",
|
|
"Bash(brew install:*)",
|
|
"Bash(./generate_samples.sh:*)",
|
|
"Bash(make:*)",
|
|
"Bash(git init:*)",
|
|
"Bash(git add:*)",
|
|
"Bash(git commit:*)",
|
|
"Bash(git reset:*)",
|
|
"Bash(qpdf:*)",
|
|
"Bash(git remote add:*)",
|
|
"Bash(git push:*)",
|
|
"Bash(pdftoppm:*)",
|
|
"Bash(python -m pytest tests/test_quiz_functionality.py -v)",
|
|
"Bash(python:*)",
|
|
"Bash(git restore:*)",
|
|
"Bash(open test_heaven_beads.html)",
|
|
"Bash(open test_scaling.html)",
|
|
"Read(//private/tmp/**)",
|
|
"Bash(open test_smart_input.html)",
|
|
"Bash(open test_matching.html)",
|
|
"Bash(open test_matching_with_indicators.html)",
|
|
"Bash(open test_matching_responsive.html)",
|
|
"Bash(open test_matching_final.html)",
|
|
"Bash(open test_matching_fully_responsive.html)",
|
|
"Bash(open test_matching_one_click.html)",
|
|
"Bash(open test_matching_two_player.html)",
|
|
"Bash(open test_player_indicators.html)",
|
|
"Bash(open test_countdown_timer.html)",
|
|
"Bash(open test_matched_card_deemphasis.html)",
|
|
"Bash(open test_all_fixes.html)",
|
|
"Bash(open test_print_behavior.html)",
|
|
"Bash(open test_pdf_generation.html)",
|
|
"Bash(open test_improved_print.html)",
|
|
"Bash(open ../test_improved_print.html)",
|
|
"Bash(open ../test_pdf_direct.html)",
|
|
"Bash(open ../test_print_fixed.html)",
|
|
"Bash(open ../test_sectioned_layout.html)",
|
|
"Bash(open ../test_beautiful_ui.html)",
|
|
"Bash(open ../test_tutorial_complete.html)",
|
|
"Bash(open ../test_arithmetic_complete.html)",
|
|
"Bash(open ../test_complete_guide.html)",
|
|
"Bash(open ../test_welcome_intro.html)",
|
|
"Bash(open ../test_prefix_conflicts.html)",
|
|
"Bash(open ../test_debug_prefix.html)",
|
|
"Bash(open ../test_memory_fix.html)",
|
|
"Bash(open ../test_complement_twins.html)",
|
|
"Bash(open test_complement_twins.html)",
|
|
"Bash(open test_particle_effects.html)",
|
|
"Bash(open test_adaptive_difficulty.html)",
|
|
"Bash(open ../test_memory_grid_hiding.html)",
|
|
"Bash(open ../test_memory_partial_hiding.html)",
|
|
"Bash(open test_achievement_system.html)",
|
|
"Bash(open test_polished_matching.html)",
|
|
"Bash(open test_fixed_matching_controls.html)",
|
|
"Bash(open test_complement_filtering.html)",
|
|
"Bash(open test_race_track.html)",
|
|
"Bash(open test_input_reliability.html)",
|
|
"Bash(open test_emergency_fix.html)",
|
|
"Bash(open test_timeout_config.html)",
|
|
"Bash(open test_medal_scoring.html)",
|
|
"Bash(open flashcards_en.html)",
|
|
"Bash(find:*)",
|
|
"Bash(open test_lightning_sprint.html)",
|
|
"Bash(open debug_tunnel_digging.html)",
|
|
"Bash(git stash:*)",
|
|
"Bash(git checkout:*)",
|
|
"Bash(open test_endrace_fix.html)",
|
|
"Bash(grep:*)",
|
|
"Bash(npx create-next-app:*)",
|
|
"Bash(pnpm install:*)",
|
|
"Bash(pnpm build:*)",
|
|
"Bash(pnpm --filter @soroban/core install)",
|
|
"Bash(pnpm --filter @soroban/core build)",
|
|
"Bash(pnpm --filter @soroban/client build)",
|
|
"Bash(pnpm panda:*)",
|
|
"Bash(pnpm turbo run:*)",
|
|
"Bash(pnpm --filter @soroban/web type-check)",
|
|
"Bash(sed:*)",
|
|
"Bash(pnpm type-check:*)",
|
|
"Bash(git bisect:*)",
|
|
"Bash(pnpm --filter @soroban/web dev)",
|
|
"Bash(pnpm --filter @soroban/web panda:*)",
|
|
"Bash(npx @pandacss/dev:*)",
|
|
"Bash(pnpm add:*)",
|
|
"Bash(pnpm:*)",
|
|
"WebFetch(domain:github.com)",
|
|
"Bash(node:*)",
|
|
"Read(//tmp/**)",
|
|
"Bash(open http://localhost:3000/test-typst)",
|
|
"Bash(open http://localhost:3001/test-typst)",
|
|
"WebFetch(domain:www.radix-ui.com)",
|
|
"Read(//Users/antialias/**)",
|
|
"Bash(turbo run:*)",
|
|
"Bash(npx turbo run:*)",
|
|
"Bash(open http://localhost:3003/guide)",
|
|
"Bash(open http://localhost:3000/games/memory-quiz)",
|
|
"Bash(open http://localhost:3002/tutorial-editor)",
|
|
"Bash(open http://localhost:3001/tutorial-editor)",
|
|
"Bash(timeout 30s pnpm test src/components/tutorial/__tests__/ReasonTooltip.provenance.test.tsx)",
|
|
"Bash(timeout 30s pnpm test src/components/tutorial/__tests__/ReasonTooltip.simple.test.tsx)",
|
|
"Bash(timeout:*)",
|
|
"Bash(open http://localhost:3002/games/memory-quiz)",
|
|
"Bash(open http://localhost:6009)",
|
|
"Bash(open http://localhost:3004/tutorial-editor)",
|
|
"Bash(open http://localhost:6008)",
|
|
"Bash(npm run gallery:*)",
|
|
"Bash(ssh:*)",
|
|
"Bash(open http://localhost:3000/games/matching)",
|
|
"Bash(docker build:*)",
|
|
"Bash(docker run:*)",
|
|
"WebSearch",
|
|
"Bash(docker logs:*)",
|
|
"Bash(docker rm:*)",
|
|
"Bash(open \"http://localhost:3001/games/matching\")",
|
|
"Bash(scp:*)",
|
|
"Bash(cat:*)",
|
|
"Bash(npm test:*)",
|
|
"Bash(gh run list:*)",
|
|
"Bash(gh run view:*)",
|
|
"Bash(nslookup:*)",
|
|
"Bash(docker stop:*)",
|
|
"Bash(open http://localhost:3000/games)",
|
|
"Bash(open http://localhost:3004/games)",
|
|
"Bash(npx tsc:*)",
|
|
"Bash(git rm:*)",
|
|
"Bash(git check-ignore:*)",
|
|
"Bash(open http://localhost:3002/arcade)",
|
|
"Bash(open http://localhost:3002/games)",
|
|
"Bash(open http://localhost:3000/arcade)",
|
|
"Bash(open http://localhost:3004/arcade)",
|
|
"Bash(open http://localhost:3005/arcade)",
|
|
"Bash(npx next lint:*)",
|
|
"Bash(npx next build:*)",
|
|
"Bash(git log:*)",
|
|
"Bash(gh run watch:*)",
|
|
"Bash(open http://localhost:3005/games/matching)",
|
|
"Bash(open test_fullscreen_persistence.html)",
|
|
"Bash(npx eslint:*)",
|
|
"Bash(npm run build:*)",
|
|
"Bash(awk:*)",
|
|
"Bash(gh release list:*)",
|
|
"Bash(gh release view:*)",
|
|
"Bash(git pull:*)",
|
|
"WebFetch(domain:antialias.github.io)",
|
|
"Bash(open http://localhost:3006/games/matching)",
|
|
"Bash(gh api:*)",
|
|
"Bash(npx playwright test:*)",
|
|
"Bash(open http://localhost:3001/games/matching)",
|
|
"Bash(open http://localhost:3001/games/memory-quiz)",
|
|
"Bash(open http://localhost:3002)",
|
|
"Bash(open \"data:text/html,<script>console.log(''Current localStorage:'', localStorage.getItem(''soroban-abacus-display-config'')); localStorage.setItem(''soroban-abacus-display-config'', JSON.stringify({colorScheme: ''place-value'', beadShape: ''diamond'', hideInactiveBeads: false, coloredNumerals: false, scaleFactor: 1.0, soundEnabled: true, soundVolume: 0.8})); console.log(''After test save:'', localStorage.getItem(''soroban-abacus-display-config''));</script><h1>Check browser console</h1>\")",
|
|
"Bash(npx playwright:*)",
|
|
"Bash(open \"data:text/html,<script>\nconsole.log(''Current localStorage:'', localStorage.getItem(''soroban-abacus-display-config'')); \nlocalStorage.setItem(''soroban-abacus-display-config'', JSON.stringify({\n colorScheme: ''place-value'', \n beadShape: ''diamond'', \n hideInactiveBeads: false, \n coloredNumerals: false, \n scaleFactor: 1.0, \n soundEnabled: true, \n soundVolume: 0.8\n})); \nconsole.log(''After test save:'', localStorage.getItem(''soroban-abacus-display-config''));\n</script><h1>Check browser console</h1>\")",
|
|
"Bash(xargs sed:*)",
|
|
"Bash(open http://localhost:3003/games/matching)",
|
|
"Bash(open http://localhost:3003/arcade/matching)",
|
|
"Bash(open http://localhost:3000)",
|
|
"Bash(open http://localhost:3003/games/memory-quiz)",
|
|
"Bash(open http://localhost:3001)",
|
|
"Bash(open http://localhost:3001/arcade)",
|
|
"Bash(open http://localhost:6006)",
|
|
"Bash(open http://localhost:3002/games/matching)",
|
|
"Bash(open http://localhost:3002/create)",
|
|
"Bash(open http://localhost:3002/games/complement-race/practice)",
|
|
"Bash(open http://localhost:3002/games/complement-race)",
|
|
"Bash(npx vitest run:*)",
|
|
"Bash(sqlite3:*)",
|
|
"Bash(NODE_ENV=development node server.js)",
|
|
"Bash(lsof:*)",
|
|
"Bash(xargs kill:*)",
|
|
"Bash(./test-arcade-api.sh:*)",
|
|
"Bash(pkill:*)",
|
|
"Bash(shasum:*)",
|
|
"Bash(open http://localhost:3000/arcade/matching)",
|
|
"Bash(echo:*)",
|
|
"Bash(npm run type-check:*)",
|
|
"mcp__sqlite__read_query",
|
|
"mcp__sqlite__list_tables",
|
|
"mcp__sqlite__describe_table",
|
|
"Bash(npm run format:*)",
|
|
"Bash(npm run lint:fix:*)",
|
|
"Bash(npm run lint:*)",
|
|
"Bash(npx drizzle-kit:*)",
|
|
"Bash(npm run db:migrate:*)",
|
|
"Bash(npm run pre-commit:*)",
|
|
"Bash(npm run seed:test-students:*)",
|
|
"Bash(npx @biomejs/biome lint:*)",
|
|
"Bash(npm run build:seed-script:*)",
|
|
"Bash(ls:*)",
|
|
"mcp__sqlite__write_query",
|
|
"Bash(apps/web/src/lib/curriculum/session-mode.ts )",
|
|
"Bash(apps/web/src/app/api/curriculum/[playerId]/session-mode/ )",
|
|
"Bash(apps/web/src/hooks/useSessionMode.ts )",
|
|
"Bash(apps/web/src/components/practice/SessionModeBanner.tsx )",
|
|
"Bash(apps/web/src/components/practice/SessionModeBanner.stories.tsx )",
|
|
"Bash(apps/web/src/components/practice/index.ts )",
|
|
"Bash(apps/web/src/app/practice/[studentId]/dashboard/DashboardClient.tsx )",
|
|
"Bash(apps/web/src/app/practice/[studentId]/summary/SummaryClient.tsx )",
|
|
"Bash(apps/web/src/components/practice/StartPracticeModal.tsx )",
|
|
"Bash(apps/web/src/components/practice/StartPracticeModal.stories.tsx)",
|
|
"Bash(apps/web/src/lib/curriculum/session-planner.ts )",
|
|
"Bash(apps/web/src/lib/curriculum/index.ts )",
|
|
"Bash(apps/web/src/app/api/curriculum/[playerId]/sessions/plans/route.ts )",
|
|
"Bash(apps/web/src/hooks/useSessionPlan.ts )",
|
|
"Bash(apps/web/src/components/practice/StartPracticeModal.tsx)",
|
|
"Bash(apps/web/.claude/REMEDIATION_CTA_PLAN.md)",
|
|
"Bash(npx @biomejs/biome:*)",
|
|
"Bash(apps/web/package.json )",
|
|
"Bash(pnpm-lock.yaml )",
|
|
"Bash(apps/web/src/components/practice/BannerSlots.tsx )",
|
|
"Bash(apps/web/src/components/practice/BannerSlots.stories.tsx )",
|
|
"Bash(apps/web/src/components/practice/ProjectingBanner.tsx )",
|
|
"Bash(apps/web/src/components/practice/ProjectingBanner.stories.tsx )",
|
|
"Bash(apps/web/src/components/practice/PracticeSubNav.tsx )",
|
|
"Bash(apps/web/src/contexts/SessionModeBannerContext.tsx )",
|
|
"Bash(apps/web/src/app/practice/[studentId]/summary/SummaryClient.tsx)",
|
|
"Bash(\"apps/web/src/app/practice/[studentId]/dashboard/DashboardClient.tsx\" )",
|
|
"Bash(apps/web/src/utils/__tests__/problemGenerator.budget.test.ts )",
|
|
"Bash(apps/web/src/utils/__tests__/problemGenerator.stateAware.test.ts )",
|
|
"Bash(apps/web/src/utils/__tests__/skillComplexity.test.ts )",
|
|
"Bash(apps/web/src/lib/curriculum/progress-manager.ts )",
|
|
"Bash(apps/web/src/lib/curriculum/config/complexity-budgets.ts )",
|
|
"Bash(apps/web/src/lib/curriculum/config/skill-costs.ts )",
|
|
"Bash(apps/web/src/lib/curriculum/config/bkt-integration.ts )",
|
|
"Bash(apps/web/src/app/api/curriculum/[playerId]/skills/route.ts )",
|
|
"Bash(apps/web/src/utils/skillComplexity.ts )",
|
|
"Bash(apps/web/src/test/journey-simulator/comprehensive-ab-test.test.ts )",
|
|
"Bash(apps/web/src/components/practice/TermSkillAnnotation.tsx )",
|
|
"Bash(apps/web/src/components/practice/DetailedProblemCard.tsx )",
|
|
"Bash(apps/web/src/db/schema/session-plans.ts)",
|
|
"Bash(\"apps/web/src/app/api/curriculum/[playerId]/skills/route.ts\" )",
|
|
"Bash(npm run test:*)",
|
|
"Bash(\"apps/web/src/app/practice/[studentId]/placement-test/\" )",
|
|
"Bash(\"apps/web/src/app/practice/[studentId]/skills/SkillsClient.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/ManualSkillSelector.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/OfflineSessionForm.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/OfflineSessionForm.stories.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/PlacementTest.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/PlacementTest.stories.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/PracticeSubNav.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/ProgressDashboard.tsx\" )",
|
|
"Bash(\"apps/web/src/components/practice/ProgressDashboard.stories.tsx\" )",
|
|
"Bash(\"apps/web/src/lib/curriculum/placement-test.ts\" )",
|
|
"Bash(\"apps/web/src/test/journey-simulator/profiles/per-skill-deficiency.ts\")",
|
|
"Bash(mcp__sqlite__read_query:*)",
|
|
"Bash(mcp__sqlite__describe_table:*)",
|
|
"Bash(git diff:*)",
|
|
"Bash(git show:*)",
|
|
"Bash(npx tsx:*)",
|
|
"Bash(xargs ls:*)",
|
|
"Bash(mcp__sqlite__list_tables)",
|
|
"WebFetch(domain:developer.chrome.com)",
|
|
"Bash(claude mcp add:*)",
|
|
"Bash(claude mcp:*)",
|
|
"Bash(git rev-parse:*)",
|
|
"Bash(wc:*)",
|
|
"Bash(src/lib/classroom/query-invalidations.ts )",
|
|
"Bash(src/lib/classroom/socket-emitter.ts )",
|
|
"Bash(src/lib/classroom/socket-events.ts )",
|
|
"Bash(src/lib/queryKeys.ts )",
|
|
"Bash(src/hooks/useClassroomSocket.ts )",
|
|
"Bash(src/hooks/useParentSocket.ts )",
|
|
"Bash(\"src/app/api/classrooms/[classroomId]/enrollment-requests/[requestId]/approve/route.ts\" )",
|
|
"Bash(\"src/app/api/classrooms/[classroomId]/enrollment-requests/[requestId]/deny/route.ts\" )",
|
|
"Bash(\"src/app/api/enrollment-requests/[requestId]/deny/route.ts\" )",
|
|
"Bash(src/components/practice/NotesModal.tsx )",
|
|
"Bash(src/components/classroom/EnterClassroomButton.tsx )",
|
|
"Bash(src/components/classroom/index.ts )",
|
|
"Bash(src/app/practice/PracticeClient.tsx)",
|
|
"Bash(apps/web/src/app/api/curriculum/[playerId]/sessions/plans/[planId]/route.ts )",
|
|
"Bash(apps/web/src/app/api/enrollment-requests/[requestId]/approve/route.ts )",
|
|
"Bash(apps/web/src/components/classroom/EnterClassroomButton.tsx )",
|
|
"Bash(apps/web/src/hooks/useClassroom.ts )",
|
|
"Bash(apps/web/src/hooks/useClassroomSocket.ts )",
|
|
"Bash(apps/web/src/hooks/usePlayerEnrollmentSocket.ts )",
|
|
"Bash(apps/web/src/lib/classroom/query-invalidations.ts )",
|
|
"Bash(apps/web/src/lib/classroom/socket-emitter.ts )",
|
|
"Bash(apps/web/src/lib/classroom/socket-events.ts)",
|
|
"Bash(apps/web/src/components/practice/SessionObserver.tsx )",
|
|
"Bash(apps/web/src/components/practice/TeacherPausedOverlay.tsx )",
|
|
"Bash(apps/web/drizzle/0043_add_session_pause_columns.sql )",
|
|
"Bash(apps/web/drizzle/meta/0043_snapshot.json)",
|
|
"Bash(apps/web/src/hooks/useSessionBroadcast.ts )",
|
|
"Bash(apps/web/src/app/practice/[studentId]/PracticeClient.tsx )",
|
|
"Bash(apps/web/src/components/classroom/ClassroomTab.tsx)",
|
|
"Bash(src/app/practice/[studentId]/PracticeClient.tsx )",
|
|
"Bash(src/components/classroom/ClassroomDashboard.tsx )",
|
|
"Bash(src/components/classroom/ClassroomTab.tsx )",
|
|
"Bash(src/components/classroom/SessionObserverModal.tsx )",
|
|
"Bash(src/components/practice/ActiveSession.tsx )",
|
|
"Bash(src/components/practice/index.ts )",
|
|
"Bash(src/components/practice/PracticeFeedback.tsx )",
|
|
"Bash(src/components/practice/PurposeBadge.tsx )",
|
|
"Bash(src/components/ui/Tooltip.tsx )",
|
|
"Bash(src/constants/zIndex.ts )",
|
|
"Bash(src/hooks/useSessionBroadcast.ts )",
|
|
"Bash(src/hooks/useSessionObserver.ts )",
|
|
"Bash(src/socket-server.ts)",
|
|
"Bash(src/components/MyAbacus.tsx )",
|
|
"Bash(src/contexts/MyAbacusContext.tsx )",
|
|
"Bash(src/components/practice/StartPracticeModal.tsx )",
|
|
"Bash(src/components/tutorial/SkillTutorialLauncher.tsx )",
|
|
"Bash(src/hooks/useSkillTutorialBroadcast.ts)",
|
|
"Bash(\"src/app/practice/[studentId]/PracticeClient.tsx\" )",
|
|
"Bash(apps/web/drizzle/meta/0044_snapshot.json )",
|
|
"Bash(apps/web/drizzle/meta/_journal.json )",
|
|
"Bash(apps/web/src/app/practice/PracticeClient.tsx )",
|
|
"Bash(apps/web/src/components/classroom/EnrollChildModal.tsx )",
|
|
"Bash(apps/web/src/components/classroom/index.ts )",
|
|
"Bash(apps/web/src/components/family/FamilyCodeDisplay.tsx )",
|
|
"Bash(apps/web/src/components/practice/NotesModal.tsx )",
|
|
"Bash(apps/web/src/components/practice/StudentFilterBar.tsx )",
|
|
"Bash(apps/web/src/components/practice/StudentSelector.tsx )",
|
|
"Bash(apps/web/src/components/practice/StudentActionMenu.tsx )",
|
|
"Bash(apps/web/src/components/practice/ViewSelector.tsx )",
|
|
"Bash(apps/web/src/components/practice/studentActions.ts )",
|
|
"Bash(apps/web/src/hooks/useStudentActions.ts )",
|
|
"Bash(apps/web/src/hooks/useUnifiedStudents.ts )",
|
|
"Bash(apps/web/src/types/student.ts)",
|
|
"Bash(drizzle/meta/0044_snapshot.json )",
|
|
"Bash(drizzle/meta/_journal.json )",
|
|
"Bash(\"src/app/practice/[studentId]/dashboard/DashboardClient.tsx\" )",
|
|
"Bash(src/components/classroom/EnrollChildModal.tsx )",
|
|
"Bash(src/components/family/FamilyCodeDisplay.tsx )",
|
|
"Bash(src/components/practice/StudentFilterBar.tsx )",
|
|
"Bash(src/components/practice/StudentSelector.tsx )",
|
|
"Bash(src/components/practice/StudentActionMenu.tsx )",
|
|
"Bash(src/components/practice/ViewSelector.tsx )",
|
|
"Bash(src/components/practice/studentActions.ts )",
|
|
"Bash(src/hooks/useStudentActions.ts )",
|
|
"Bash(src/hooks/useUnifiedStudents.ts )",
|
|
"Bash(src/types/student.ts)",
|
|
"Bash(ANALYZE=true pnpm next build:*)",
|
|
"Bash(du:*)",
|
|
"Bash(gzip:*)",
|
|
"Bash({}/1024/1024\" | bc\\)MB\")",
|
|
"Bash(114595/1024\" | bc\\) KB\" curl -s 'http://localhost:3000/_next/static/chunks/app/practice/page.js')",
|
|
"Bash(done)",
|
|
"Bash(PLAYWRIGHT_SKIP_BROWSER_GC=1 npx playwright test:*)",
|
|
"Bash(BASE_URL=http://localhost:3000 npx playwright test:*)",
|
|
"Bash(BASE_URL=http://localhost:3000 pnpm --filter @soroban/web exec playwright test:*)",
|
|
"Bash(BASE_URL=http://localhost:3000 pnpm exec playwright test:*)",
|
|
"Bash(git rebase:*)",
|
|
"Bash(GIT_EDITOR=true git rebase:*)",
|
|
"Bash(npm run test:run:*)",
|
|
"Bash(git mv:*)",
|
|
"Bash(drizzle/0050_abandoned_salo.sql )",
|
|
"Bash(drizzle/meta/0050_snapshot.json )",
|
|
"Bash(src/db/schema/practice-attachments.ts )",
|
|
"Bash(src/db/schema/index.ts )",
|
|
"Bash(\"src/app/api/curriculum/[playerId]/attachments/\" )",
|
|
"Bash(\"src/app/api/curriculum/[playerId]/offline-sessions/\" )",
|
|
"Bash(\"src/app/api/curriculum/[playerId]/sessions/[sessionId]/\" )",
|
|
"Bash(src/components/practice/PhotoUploadZone.tsx )",
|
|
"Bash(src/components/practice/SessionPhotoGallery.tsx )",
|
|
"Bash(src/components/practice/OfflineSessionModal.tsx )",
|
|
"Bash(src/components/practice/VirtualizedSessionList.tsx )",
|
|
"Bash(\"src/app/practice/[studentId]/summary/SummaryClient.tsx\" )",
|
|
"Bash(git ls-tree:*)",
|
|
"Bash(apps/web/drizzle/0051_luxuriant_selene.sql )",
|
|
"Bash(apps/web/drizzle/0052_remarkable_karnak.sql )",
|
|
"Bash(apps/web/drizzle/0053_premium_expediter.sql )",
|
|
"Bash(apps/web/drizzle/meta/0051_snapshot.json )",
|
|
"Bash(apps/web/drizzle/meta/0052_snapshot.json )",
|
|
"Bash(apps/web/drizzle/meta/0053_snapshot.json )",
|
|
"Bash(\"apps/web/src/app/api/curriculum/[playerId]/attachments/[attachmentId]/file/route.ts\" )",
|
|
"Bash(\"apps/web/src/app/api/curriculum/[playerId]/attachments/[attachmentId]/route.ts\" )",
|
|
"Bash(\"apps/web/src/app/api/curriculum/[playerId]/attachments/[attachmentId]/original/\" )",
|
|
"Bash(\"apps/web/src/app/api/curriculum/[playerId]/sessions/[sessionId]/attachments/route.ts\" )",
|
|
"Bash(apps/web/src/components/practice/DocumentAdjuster.tsx )",
|
|
"Bash(apps/web/src/components/practice/OfflineWorkSection.tsx )",
|
|
"Bash(apps/web/src/components/practice/PhotoViewerEditor.tsx )",
|
|
"Bash(apps/web/src/components/practice/ScrollspyNav.tsx )",
|
|
"Bash(apps/web/src/components/practice/useDocumentDetection.ts )",
|
|
"Bash(apps/web/src/db/schema/practice-attachments.ts)",
|
|
"Bash(drizzle/0051_luxuriant_selene.sql )",
|
|
"Bash(drizzle/0052_remarkable_karnak.sql )",
|
|
"Bash(drizzle/0053_premium_expediter.sql )",
|
|
"Bash(drizzle/meta/0051_snapshot.json )",
|
|
"Bash(drizzle/meta/0052_snapshot.json )",
|
|
"Bash(drizzle/meta/0053_snapshot.json )",
|
|
"Bash(\"src/app/api/curriculum/[playerId]/attachments/[attachmentId]/file/route.ts\" )",
|
|
"Bash(\"src/app/api/curriculum/[playerId]/attachments/[attachmentId]/route.ts\" )",
|
|
"Bash(\"src/app/api/curriculum/[playerId]/attachments/[attachmentId]/original/\" )",
|
|
"Bash(\"src/app/api/curriculum/[playerId]/sessions/[sessionId]/attachments/route.ts\" )",
|
|
"Bash(src/components/practice/DocumentAdjuster.tsx )",
|
|
"Bash(src/components/practice/OfflineWorkSection.tsx )",
|
|
"Bash(src/components/practice/PhotoViewerEditor.tsx )",
|
|
"Bash(src/components/practice/ScrollspyNav.tsx )",
|
|
"Bash(src/components/practice/useDocumentDetection.ts )",
|
|
"Bash(src/db/schema/practice-attachments.ts)",
|
|
"Bash(apps/web/src/components/vision/ )",
|
|
"Bash(apps/web/src/hooks/useAbacusVision.ts )",
|
|
"Bash(apps/web/src/hooks/useCameraCalibration.ts )",
|
|
"Bash(apps/web/src/hooks/useDeskViewCamera.ts )",
|
|
"Bash(apps/web/src/hooks/useFrameStability.ts )",
|
|
"Bash(apps/web/src/lib/vision/ )",
|
|
"Bash(apps/web/src/types/vision.ts)",
|
|
"WebFetch(domain:raw.githubusercontent.com)",
|
|
"Bash(head:*)",
|
|
"Bash(apps/web/public/js-aruco2/ )",
|
|
"Bash(apps/web/src/app/create/vision-markers/ )",
|
|
"Bash(apps/web/src/lib/vision/arucoDetection.ts )",
|
|
"Bash(apps/web/src/components/vision/AbacusVisionBridge.tsx )",
|
|
"Bash(pnpm-lock.yaml)",
|
|
"Bash(apps/web/src/app/api/remote-camera/ )",
|
|
"Bash(apps/web/src/app/remote-camera/ )",
|
|
"Bash(apps/web/src/components/vision/RemoteCameraQRCode.tsx )",
|
|
"Bash(apps/web/src/components/vision/RemoteCameraReceiver.tsx )",
|
|
"Bash(apps/web/src/hooks/useRemoteCameraDesktop.ts )",
|
|
"Bash(apps/web/src/hooks/useRemoteCameraPhone.ts )",
|
|
"Bash(apps/web/src/hooks/useRemoteCameraSession.ts )",
|
|
"Bash(apps/web/src/lib/remote-camera/ )",
|
|
"Bash(apps/web/src/lib/vision/perspectiveTransform.ts )",
|
|
"Bash(apps/web/src/socket-server.ts)",
|
|
"Bash(apps/web/src/components/vision/CalibrationOverlay.tsx )",
|
|
"Bash(apps/web/src/components/practice/ActiveSession.tsx )",
|
|
"Bash(open -a Preview:*)",
|
|
"Bash(pip3 install:*)",
|
|
"Bash(pip3 uninstall:*)",
|
|
"Bash(/opt/homebrew/bin/python3:*)",
|
|
"Bash(/usr/bin/python3:*)",
|
|
"Bash(/opt/homebrew/bin/pip3 install:*)",
|
|
"Bash(source:*)",
|
|
"Bash(pip install:*)",
|
|
"Bash(/opt/homebrew/opt/python@3.11/bin/python3.11:*)",
|
|
"Bash(tensorflowjs_converter:*)",
|
|
"Bash(public/models/abacus-column-classifier/column-classifier.keras )",
|
|
"Bash(public/models/abacus-column-classifier/)",
|
|
"Bash(public/models/abacus-column-classifier/column-classifier.h5 )",
|
|
"Bash(apps/web/scripts/train-column-classifier/train_model.py )",
|
|
"Bash(apps/web/src/app/remote-camera/[sessionId]/page.tsx )",
|
|
"Bash(apps/web/src/hooks/useColumnClassifier.ts )",
|
|
"Bash(apps/web/src/lib/vision/columnClassifier.ts )",
|
|
"Bash(\"apps/web/src/app/remote-camera/[sessionId]/page.tsx\" )",
|
|
"Bash(apps/web/drizzle/0054_new_mathemanic.sql )",
|
|
"Bash(apps/web/drizzle/meta/0054_snapshot.json )",
|
|
"Bash(apps/web/src/components/AbacusDisplayDropdown.tsx )",
|
|
"Bash(apps/web/src/db/schema/abacus-settings.ts )",
|
|
"Bash(packages/abacus-react/src/AbacusContext.tsx)",
|
|
"Bash(apps/web/src/lib/vision/frameProcessor.ts )",
|
|
"Bash(apps/web/src/lib/vision/beadDetector.ts )",
|
|
"Bash(apps/web/public/models/abacus-column-classifier/model.json )",
|
|
"Bash(.claude/settings.local.json)"
|
|
],
|
|
"deny": [],
|
|
"ask": []
|
|
},
|
|
"enableAllProjectMcpServers": true,
|
|
"enabledMcpjsonServers": [
|
|
"sqlite"
|
|
]
|
|
}
|