{
  "permissions": {
    "allow": [
      "Bash(git -c core.pager=cat commit -m ':*)",
      "Bash(curl -sS -o /tmp/cc.txt -w \"HTTP %{http_code}\\\\nURL %{url_effective}\\\\n\" -L \"https://app.coolcare.taaazzz-prog.fr/api/mobile-config.php\")",
      "Bash(curl -sS -o /tmp/cc2.txt -w \"HTTP %{http_code}\\\\n\" \"https://app.coolcare.taaazzz-prog.fr/api/mobile-config\")",
      "Bash(curl -sS -o /tmp/cc3.txt -w \"HTTP %{http_code}\\\\n\" \"https://app.coolcare.taaazzz-prog.fr/api/auth.php\")",
      "Bash(curl -sS -o /tmp/mf.txt -w \"HTTP %{http_code}\\\\n\" \"https://demo.missioflow.fr/api/mobile-config.php\")",
      "Bash(curl -sS -o /tmp/mf2.txt -w \"HTTP %{http_code}\\\\n\" \"https://demo.missioflow.fr/api/mobile-config\")",
      "Bash(curl -sS -o /dev/null -w \"HTTP %{http_code} - %{url_effective}\\\\n\" -X POST \"https://app.coolcare.taaazzz-prog.fr/api/mobile/login.php\" -H \"Content-Type: application/json\" -d '{}')",
      "Bash(curl -sS -o /tmp/auth.txt -w \"HTTP %{http_code}\\\\n\" -X POST \"https://app.coolcare.taaazzz-prog.fr/api/auth.php?action=login\" -H \"Content-Type: application/json\" -d '{\"email\":\"x\",\"password\":\"y\"}')",
      "Bash(curl -sS -o /dev/null -w \"HTTP %{http_code}\\\\n\" -X POST \"https://app.coolcare.taaazzz-prog.fr/api/login.php\" -H \"Content-Type: application/json\" -d '{}')",
      "Bash(curl -sS -o /dev/null -w \"HTTP %{http_code}\\\\n\" \"https://app.coolcare.taaazzz-prog.fr/api/me.php\")",
      "Bash(curl -sS -o /dev/null -w \"HTTP %{http_code}\\\\n\" \"https://app.coolcare.taaazzz-prog.fr/api/refresh.php\")",
      "Bash(grep -nE \"users.*table|CREATE TABLE.*users|user_type|role\" /home/taaazzz/projects/coolcare-app/database/*.sql /home/taaazzz/projects/coolcare-app/bdd/*.sql)",
      "Bash(node -e \"JSON.parse\\(require\\('fs'\\).readFileSync\\('package.json'\\)\\);console.log\\('package.json OK'\\)\")",
      "Bash(npx -y expo-doctor)",
      "Bash(php -l src/controllers/interventions/InterventionUpdateSideEffectsProcessor.php)",
      "Bash(php -l src/controllers/InterventionController.php)",
      "Bash(vendor/bin/phpunit tests/Unit/InterventionUpdateSideEffectsProcessorTest.php)",
      "Bash(vendor/bin/phpunit --filter InterventionController tests/Unit)",
      "Bash(grep -E \"\\\\.\\(php|js\\)$\")",
      "Bash(grep -A 20 \"^CREATE TABLE \\\\`interventions\\\\` \" /home/taaazzz/projects/coolcare-app/database/schema.sql)",
      "Bash(grep -A 20 \"^CREATE TABLE \\\\`interventions\\\\` \" /home/taaazzz/projects/missioflow-app/database/schema.sql)",
      "Bash(grep -n 'workflow_step_id\\\\|'\\\\''files'\\\\'' => $files\\\\|'\\\\''auto_message'\\\\''\\\\|display_only\\\\|metadata'\\\\'' =>' public/api/mobile/intervention_steps.php)",
      "Bash(php -l /home/taaazzz/projects/coolcare-app/public/api/mobile/intervention_steps.php)",
      "Bash(php -l /home/taaazzz/projects/missioflow-app/src/controllers/MobileInterventionStepsApiController.php)",
      "Bash(vendor/bin/phpunit tests/Unit/MobileInterventionStepsApiControllerTest.php tests/Unit/InterventionWorkflowServicePhase1CerfaTest.php)",
      "Bash(vendor/bin/phpunit tests/Integration/Cases/MobileInterventionStepsEndpointTest.php)",
      "Bash(grep -E \"\\\\.\\(ts|tsx\\)$\")",
      "Bash(awk '/upload_machine_photo/{f=1} f{print NR\": \"$0} f&&/^    }$/{c++; if\\(c>=1\\)exit}' src/controllers/InterventionWorkflowApiController.php)",
      "Bash(php -l /home/taaazzz/projects/coolcare-app/public/api/mobile/bottles.php)",
      "Bash(php -l /home/taaazzz/projects/missioflow-app/public/api/mobile/bottles.php)",
      "Bash(timeout 90 ./vendor/bin/phpunit tests/Integration/Cases/MobileInterventionsEndpointTest.php)",
      "Bash(awk -v 'fn=function __TRACKED_VAR__' 'index\\($0,fn\\){p=1} p{print} p&&/throw new BouteilleGazException/{c++} p&&c>=2{exit}' src/services/BouteillesGazService.php)",
      "Bash(sed -n '686,740p' src/services/BouteillesGazService.php)",
      "Bash(sed -n '856,905p' src/services/BouteillesGazService.php)",
      "Bash(php -l /home/taaazzz/projects/coolcare-app/public/api/mobile/bottle_action.php)",
      "Bash(php -l /home/taaazzz/projects/missioflow-app/public/api/mobile/bottle_action.php)",
      "Bash(./vendor/bin/php-cs-fixer fix *)",
      "Bash(php -l public/api/mobile/bottle_action.php)",
      "Bash(awk 'NR>=205 && NR<=345' public/api/bouteilles_gaz.php)",
      "Bash(awk 'NR>=221 && NR<=260' public/api/bouteilles_gaz.php)",
      "Bash(git -C /home/taaazzz/projects/coolcare-app status --short -- public/api/mobile/)",
      "Bash(git -C /home/taaazzz/projects/missioflow-app status --short -- public/api/mobile/)",
      "Bash(grep '^\\\\s*if.*$_GET\\\\|^\\\\s*if.*$_POST\\\\|case\\\\s.*:' /home/taaazzz/projects/coolcare-app/public/api/intervention_workflow.php)",
      "Bash(xargs basename -a)",
      "Bash(grep -n \"CREATE TABLE \\\\`techniciens\\\\`\" /home/taaazzz/projects/missioflow-app/database/schema.sql)",
      "Bash(php -l /home/taaazzz/projects/coolcare-app/public/api/mobile/me.php)",
      "Bash(php -l /home/taaazzz/projects/missioflow-app/public/api/mobile/me.php)",
      "Bash(awk 'END{print NR\": \"$0}' src/features/missions/MissionDetailScreen.tsx)",
      "Bash(awk '/jest.mock\\\\\\(\".*interventionsApi/,/\\\\}\\\\\\)\\\\\\)/' __tests__/features/missions/MissionDetailScreen.test.tsx)",
      "Bash(grep -nB1 -A3 \"numero_attestation_capacite\" src/templates/rapport-intervention.php)",
      "Bash(grep -nE '\\\\$company\\\\s*=|CompanyConfig' src/templates/rapport-intervention.php)",
      "Bash(sed -n '124,160p' src/services/TenantContext.php)",
      "Bash(sed -n '224,270p' src/services/TenantContext.php)",
      "Bash(grep -oE \"^\\\\s+\\\\`[a-z_]+\\\\`\")",
      "Bash(php -l /home/taaazzz/projects/missioflow-app/public/api/mobile-config.php)",
      "Bash(grep -iE \"\\\\.\\(png|svg|jpg|webp\\)$\")",
      "Bash(php -l public/api/mobile-config.php)",
      "Bash(ls -d */)",
      "Bash(find . -maxdepth 4 -iname \"mobile-config*.php\" -not -path \"*/worktrees/*\" -not -path \"*/vendor/*\")",
      "Bash(command -v python3)",
      "Bash(python3 -c \"import cairosvg; print\\('cairosvg OK'\\)\")",
      "Bash(python3 -c \"import PIL; print\\('Pillow OK'\\)\")",
      "Bash(timeout 8 npm ping)",
      "Bash(awk '/CREATE TABLE `tenants`/,/^\\\\\\) ENGINE/' database/schema.sql)",
      "Bash(awk '/CREATE TABLE `company_info`/,/^\\\\\\) ENGINE/' database/schema.sql)",
      "Bash(grep -iE \"telephone|habilitation|etalon|=> \\\\\\\\\\\\$|'name'|'email'|'role'|user_type\")",
      "Bash(grep -niE \"telephone|habilitation|etalon|=> \\\\\\\\\\\\$|'name'|'email'|'role'|user_type\" missioflow-app/public/api/mobile/me.php)",
      "Bash(node assets/gen-icons.mjs)",
      "Bash(php -l scripts/send_daily_technician_summary_push.php)",
      "Bash(vendor/bin/phpunit tests/Unit/DailyTechnicianSummaryPushTest.php)",
      "Bash(ls __tests__/features/home/)",
      "Bash(find __tests__ -iname \"*support*\")",
      "Bash(echo \"=== exit $? ===\")",
      "Bash(grep \"\\\\.php$\")",
      "Bash(node -e \"console.log\\(typeof require\\('@react-navigation/native'\\).createNavigationContainerRef\\)\")",
      "Bash(node -e \"const n=require\\('@react-navigation/native'\\); console.log\\('createNavigationContainerRef:', typeof n.createNavigationContainerRef\\);\")",
      "Bash(sed -n '1,70p' tests/Unit/MobileInterventionsListApiControllerTest.php)",
      "Bash(ls /home/taaazzz/projects/missioflow-mobile/__tests__/core/)",
      "Bash(vendor/bin/phpunit tests/Unit/MobileStepFormatterTest.php)",
      "Bash(vendor/bin/phpunit tests/Unit/MobileSyncPullApiControllerTest.php tests/Unit/MobileInterventionStepsApiControllerTest.php tests/Unit/MobileInterventionsListApiControllerTest.php)",
      "Bash(vendor/bin/phpunit --filter 'Mobile.*ApiController' tests/Unit)",
      "Bash(vendor/bin/phpunit --filter 'InterventionWorkflowServicePure' tests/Unit)",
      "Bash(sed -n '400,416p' src/controllers/InterventionController.php)",
      "Bash(sed -n '1,8p' src/controllers/MobileSyncPullApiController.php)",
      "Bash(vendor/bin/phpstan analyse *)",
      "Bash(vendor/bin/phpunit tests/Unit/MobileSyncPullApiControllerTest.php)",
      "Bash(grep -rn \"cloturee\\\\|en_attente\" src/ __tests__/)",
      "Bash(grep -rn \"annulee\" src/ __tests__/)",
      "Bash(grep -iE 'firebase|google-services|\\\\.json$')",
      "Bash(git rev-list *)",
      "Bash(grep -rnE \"access_token=|token=\\\\$\\\\{|[?&]token|[?&]jwt|Bearer.*\\\\?|append\\\\\\(.*token\" src App.tsx)",
      "Bash(grep -E '\\\\$\\\\{')",
      "Bash(sed -n '120,160p' src/core/stepRepository.ts)",
      "Bash(sed -n '620,665p' src/features/missions/WorkflowInterventionScreen.tsx)",
      "Bash(sed -n '560,620p' src/features/missions/WorkflowInterventionScreen.tsx)",
      "Bash(sed -n '575,595p' App.tsx)",
      "Bash(awk 'NR>=185 && NR<=340 && \\(/return \\\\[/ || /=>/ && \\(/intervention/||/workflow/||/steps/||/machine_has_photo/\\)\\)' coolcare-app/src/services/InterventionWorkflowService.php)",
      "Bash(awk 'NR<=1516 && /\\(public|private|protected\\) function /{m=$0; ln=NR} END{print ln\": \"m}' coolcare-app/src/services/InterventionWorkflowService.php)",
      "Bash(awk 'NR>=185 && NR<=300{print NR\": \"$0}' coolcare-app/src/services/InterventionWorkflowService.php)",
      "Bash(git -C coolcare-app status --short)",
      "Bash(git -C missioflow-app status --short)",
      "Bash(grep -rsl 'agentic OS\\\\|RAPPEL\\\\|missioflow-handoff.md\\\\|Au debut du tour' ~/.claude/settings.json ~/.claude/settings.local.json ~/projects/missioflow-mobile/.claude/ ~/projects/*/.claude/settings*.json)",
      "Bash(grep -rsn \"UserPromptSubmit\" ~/.claude/settings*.json ~/projects/*/.claude/settings*.json)",
      "Bash(sed -n '60,80p' projects/missioflow-app/.claude/settings.json)",
      "Bash(sed -n '10,30p' projects/missioflow-SuperAdmin/.claude/settings.json)",
      "Bash(ls -1 projects/missioflow-app/.claude/hooks/ projects/missioflow-SuperAdmin/.claude/hooks/)",
      "Bash(sh missioflow-mobile/.claude/hooks/handoff-prompt.sh)",
      "Bash(sh missioflow-app/.claude/hooks/handoff-prompt.sh)",
      "Bash(sh missioflow-SuperAdmin/.claude/hooks/handoff-prompt.sh)",
      "Bash(sh missioflow-mobile/.claude/hooks/handoff-stop.sh)",
      "Bash(echo \"stop exit=$?\")",
      "Bash(awk '{print $1, $NF}')",
      "Bash(chmod +x missioflow-app/.claude/hooks/handoff-prompt.sh missioflow-app/.claude/hooks/handoff-stop.sh missioflow-SuperAdmin/.claude/hooks/handoff-prompt.sh missioflow-SuperAdmin/.claude/hooks/handoff-stop.sh)",
      "Bash(echo \"  -> $?\")",
      "Bash(npx eslint *)",
      "Bash(node -e \"const s=require\\('./package.json'\\).scripts; console.log\\(JSON.stringify\\(s,null,2\\)\\)\")",
      "Bash(grep -nA40 -iE \"backend|§4|contrat|ingestion|passation\")",
      "Bash(awk '/## 4\\\\./,/## 5\\\\./' OBSERVABILITE_CRASH.md)",
      "Bash(npx eas-cli *)",
      "Bash(grep -E \"\\\\.\\(ts|tsx|js|jsx\\)$\")",
      "Bash(python3 -c \"import json,sys; print\\('\\\\n'.join\\(f'{k}: {v}' for k,v in json.load\\(sys.stdin\\)['scripts'].items\\(\\)\\)\\)\")",
      "Bash(echo \"=== exit: $? ===\")",
      "Bash(node -e \"console.log\\(require\\('./package.json'\\).scripts.test || 'no test script'\\)\")",
      "Bash(echo \"EXIT:$?\")",
      "Bash(sed -n '/function applyDisponibleFilter/,/^    }/p' src/controllers/DevisApiController.php)",
      "Bash(sed -n '/function applyStatutFilter/,/^    }/p' src/controllers/DevisApiController.php)",
      "Bash(grep -nA12 '\"updates\"' app.json)",
      "Bash(curl -s --max-time 15 https://taaazzz.missioflow.fr/api/mobile-config.php)",
      "Bash(curl -s -I --max-time 15 \"https://taaazzz.missioflow.fr/uploads/tenant_1/logos/logo_tenant_1_1777319894.jpg\")",
      "Bash(curl -s --max-time 15 -o /tmp/taaazzz_logo.jpg \"https://taaazzz.missioflow.fr/uploads/tenant_1/logos/logo_tenant_1_1777319894.jpg\")",
      "Bash(grep -E \"\\\\.ts$|intervention\")",
      "Bash(grep -n 'if \\(\\(int\\)\\($row\\\\['\\\\''is_visible'\\\\''\\\\]' /home/taaazzz/projects/missioflow-app/src/controllers/MobileInterventionStepsApiController.php)",
      "Bash(echo \"---EXIT:$?---\")",
      "Bash(grep -n \"apiClient\\\\|clearApiAuthTokens\\\\|setApiAuthTokens\\\\|isApiClientError\\\\|registerSessionRevokedHandler\\\\|from \\\\\"./src/services/authApi\\\\\"\\\\|loadInterventions\" src/../App.tsx | head -30)",
      "Read(//home/taaazzz/projects/missioflow-mobile/**)",
      "Bash(npm view *)",
      "Bash(node -e \"console.log\\('react-native', require\\('./package.json'\\).dependencies['react-native']\\)\")",
      "Bash(node -e \"const p=require\\('./package.json'\\); console.log\\(JSON.stringify\\(p.jest,null,2\\)\\)\")",
      "Bash(echo \"tsc-exit:$?\")",
      "Bash(node -e \"try { console.log\\('resolu ->', require.resolve\\('promise/setimmediate/rejection-tracking'\\)\\); } catch\\(e\\) { console.log\\('NON resolu \\(virtual requis\\)'\\); }\")",
      "Bash(sed -n '1235,1245p' App.tsx)",
      "Bash(sed -n '1165,1180p' App.tsx)",
      "Bash(echo \"---EXIT $?---\")",
      "Bash(echo \"EXIT $?\")",
      "Bash(ssh -o ConnectTimeout=10 -o BatchMode=yes ovh 'echo \"OK connecté\"; echo \"=== conteneurs ===\"; docker ps --format \"{{.Names}}\\\\t{{.Image}}\" 2>/dev/null | head -20')",
      "Bash(node -e ' *)",
      "Bash(adb devices *)",
      "Bash(python3 -c \"from PIL import Image, ImageFilter; print\\('Pillow OK', Image.__version__ if hasattr\\(Image,'__version__'\\) else 'ready'\\)\")",
      "Bash(python3 -m pip --version)",
      "Bash(python3 -m venv --help)",
      "Bash(python3 -m pip install Pillow --quiet --user)",
      "Bash(python3 -c \"from PIL import Image, ImageFilter; print\\('Pillow ready'\\)\")",
      "Bash(python3 -m venv imgvenv)",
      "Bash(/tmp/imgvenv/bin/pip install *)",
      "Bash(/tmp/imgvenv/bin/python -c \"from PIL import Image, ImageFilter; print\\('Pillow ready in venv'\\)\")",
      "Bash(python3 -m pip install Pillow --quiet --user --break-system-packages)",
      "Bash(python3 /tmp/make_store_screens.py)",
      "Bash(unzip -p android/app/*.aab base/manifest/AndroidManifest.xml)",
      "Bash(npx eas *)",
      "Bash(java -version)",
      "Bash(echo \"actuel: $\\(java -version 2>&1)",
      "Bash(node -e \"const p=require\\('./package.json'\\); const d={...p.dependencies,...p.devDependencies}; ['expo','react-native','react-native-screens','react-native-edge-to-edge','@react-native-mlkit/barcode-scanning','react-native-safe-area-context'].forEach\\(k=>console.log\\(k+': '+\\(d[k]||'absent'\\)\\)\\)\")",
      "Bash(node -e \"const p=require\\('./package.json'\\); const d={...p.dependencies}; Object.keys\\(d\\).filter\\(k=>/barcode|scan|camera|mlkit|vision/i.test\\(k\\)\\).forEach\\(k=>console.log\\(k+': '+d[k]\\)\\)\")"
    ]
  }
}
