{
  "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:*)"
    ],
    "deny": [],
    "ask": []
  }
}
