{
  "permissions": {
    "allow": [
      "Bash(typst:*)",
      "Read(//Users/antialias/projects/soroban-abacus-flashcards/packages/**)",
      "Bash(npm install:*)",
      "Bash(pnpm add:*)",
      "Bash(npm run gallery:node:*)",
      "Bash(node:*)",
      "Bash(pnpm info:*)",
      "Bash(pnpm remove:*)",
      "Bash(pnpm search:*)",
      "Bash(pnpm run:*)",
      "Bash(npm run gallery:*)",
      "Bash(cp:*)",
      "Bash(/dev/null)",
      "Bash(git add:*)",
      "Bash(git commit:*)",
      "Read(//Users/antialias/projects/soroban-abacus-flashcards/**)",
      "Bash(pnpm install:*)",
      "Bash(pkill:*)",
      "Bash(timeout 30s pnpm run build-storybook)",
      "Bash(timeout 60s pnpm run build-storybook)",
      "Bash(curl:*)",
      "WebFetch(domain:localhost)",
      "Bash(pnpm list:*)",
      "Bash(git reset:*)",
      "Bash(git checkout:*)",
      "Bash(cat:*)",
      "Bash(git log:*)",
      "Bash(python:*)",
      "Bash(pnpm test:*)",
      "Bash(timeout:*)",
      "Bash(pnpm build:*)",
      "Bash(npx playwright:*)",
      "Bash(npx storybook@latest init:*)",
      "Bash(pnpm update:*)",
      "Bash(npm run build:*)",
      "Bash(npm run dev:*)",
      "Bash(npm test:*)",
      "Bash(npx tsc:*)",
      "WebSearch",
      "WebFetch(domain:www.npmjs.com)",
      "Bash(open http://localhost:3001/tutorial-editor)",
      "Bash(open http://localhost:3004/tutorial-editor)",
      "Bash(git push:*)",
      "Bash(open http://localhost:3005/tutorial-editor)",
      "Bash(find:*)",
      "Bash(pnpm vitest:*)",
      "Bash(open http://localhost:3006/tutorial-editor)",
      "Bash(open http://localhost:3007/tutorial-editor)",
      "Bash(open http://localhost:3000/tutorial-editor)",
      "Bash(npx vitest:*)",
      "Bash(open http://localhost:3008/tutorial-editor)",
      "Bash(npm run storybook:*)",
      "Bash(open http://localhost:6006/)",
      "Bash(npm run test:*)",
      "Bash(git rm:*)",
      "Bash(git check-ignore:*)",
      "Bash(killall:*)",
      "Bash(npx tsx:*)",
      "Bash(open http://localhost:3002/tutorial-editor)",
      "Bash(xargs rm:*)",
      "WebFetch(domain:www.radix-ui.com)",
      "Bash(git stash:*)",
      "Bash(pnpm --filter=@soroban/web test src/components/tutorial/__tests__/TutorialCelebrationTooltip.e2e.test.ts)",
      "Bash(pnpm --filter=@soroban/web test src/components/tutorial/__tests__/TutorialPlayerCelebration.integration.test.tsx --timeout=10000)",
      "Bash(pnpm --filter=@soroban/web test src/components/tutorial/__tests__/TutorialPlayerCelebration.integration.test.tsx)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/pedagogicalAlgorithmTests.test.ts)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/pedagogicalAlgorithmTests.test.ts --timeout=5000 --run)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/termPositionDebug.test.ts)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/pedagogicalSnapshot.test.ts)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/termPositionBuilder.test.ts)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/pedagogicalSnapshot.test.ts --run)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/pedagogicalSnapshot.test.ts -u)",
      "Bash(LEGACY_SNAPSHOTS=1 pnpm vitest src/utils/__tests__/pedagogicalSnapshot.test.ts --run)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/pedagogicalCore.test.ts --run)",
      "Bash(pnpm --filter=@soroban/web test src/utils/__tests__/pedagogicalCore.test.ts)"
    ],
    "deny": [],
    "ask": []
  }
}
