{ "permissions": { "allow": [ "Bash(findstr /R /I \"create_contact\\\\|locationId.*contact\\\\|POST.*contact\" *.py scripts\\\\*.py)", "Bash(xargs grep -l \"create_contact\")", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\audit_contact_sync_coverage.py\")", "Bash(python -c \"import sync_engine; accounts = sync_engine.parse_accounts_csv\\(\\); branches = [a for a in accounts if a['location_id'] != 'GbKkBpCmKu2QmloKFHy3' and 'demo' not in a['nombre'].lower\\(\\)]; print\\(f'Total branches: {len\\(branches\\)}'\\); [print\\(f' {a[\\\\\"location_id\\\\\"]} {a[\\\\\"nombre\\\\\"]}'\\) for a in branches[:8]]\")", "Bash(python scripts/audit_contact_sync_coverage.py --location fKn9SaXZoKcjjLryg10v --max-contacts 100)", "Bash(python scripts/sync_contacts_branch_to_brand.py --location fKn9SaXZoKcjjLryg10v --limit 30 --max-contacts-brand 8000)", "Bash(python -m py_compile scripts/sync_contacts_branch_to_brand.py)", "Bash(python scripts/sync_contacts_branch_to_brand.py --location 5qebe8IhFUjlcBvJcqCa --limit 20 --max-contacts-brand 8000)", "Bash(python scripts/sync_contacts_branch_to_brand.py --location fKn9SaXZoKcjjLryg10v --limit 10 --max-contacts-brand 8000)", "Bash(python scripts/sync_contacts_branch_to_brand.py --location fKn9SaXZoKcjjLryg10v --limit 5 --workers 2 --max-contacts-brand 8000)", "Bash(python scripts/sync_contacts_branch_to_brand.py --all --limit 5 --workers 3 --max-contacts-brand 8000 --max-contacts 5)", "Bash(python scripts/sync_contacts_branch_to_brand.py --all --limit 10 --workers 4 --max-contacts-brand 8000 --max-contacts 10 --run-id final_check_dry)", "Bash(python scripts/sync_contacts_branch_to_brand.py --all --limit 5 --workers 4 --max-contacts-brand 8000 --max-contacts 5 --run-id final_check_dry)", "Bash(python -c ' *)", "Bash(python scripts/sync_contacts_branch_to_brand.py --apply --all --limit 1 --max-contacts-brand 100 --max-contacts 1)", "Bash(python -m py_compile scripts/sync_contacts_branch_to_brand.py scripts/audit_contact_sync_coverage.py script_runner.py)", "PowerShell($f = \"C:\\\\Users\\\\URIELJ~1\\\\AppData\\\\Local\\\\Temp\\\\claude\\\\H--MegaSync-Proyectos-MP-Manager\\\\461319af-4ad2-4a89-a9fd-5373ad94647c\\\\tasks\\\\bha126a8z.output\"; Write-Output \"Total lineas: $\\(\\(Get-Content $f | Measure-Object -Line\\).Lines\\)\"; Write-Output \"---\"; Write-Output \"Sucursales procesadas:\"; \\(Select-String -Path $f -Pattern \"Procesando sucursal:\"\\).Count; Write-Output \"---\"; Write-Output \"Resumen final encontrado:\"; \\(Select-String -Path $f -Pattern \"RESUMEN DE RECONCILIACION\"\\).Count; Write-Output \"---\"; Write-Output \"Errores section encontrada:\"; \\(Select-String -Path $f -Pattern \"ERRORES Y ADVERTENCIAS\"\\).Count)", "Bash(python scripts/audit_contact_sync_coverage.py --max-contacts 500 --json coverage_baseline.json)", "Bash(python scripts/sync_contacts_branch_to_brand.py --all --workers 4 --max-contacts 200 --max-contacts-brand 12000 --run-id iter2_global)", "Bash(echo \"EXIT=$?\")", "Bash(python scripts/sync_contacts_branch_to_brand.py --location qe3s72MRDhbEWlaFZ2Ko --max-contacts 50 --max-contacts-brand 12000 --run-id iter3_verifier)", "Bash(python scripts/sync_contacts_branch_to_brand.py --all --workers 4 --max-contacts 10000 --max-contacts-brand 20000 --run-id iter3_v2)", "Bash(python scripts\\\\_diag_canal_origen_audit.py)", "Bash(python scripts/_diag_canal_origen_audit.py)", "Bash(python -m py_compile scripts/canal_origen_resolver.py scripts/tag_canal_origen_workflow.py scripts/fuente_prospecto_workflow.py scripts/run_origen_fuente_workflows.py)", "Bash(python scripts/_test_resolver.py)", "Bash(python scripts/run_origen_fuente_workflows.py --all --dry-run --contact-only)", "Bash(tee dryrun_canal_origen_v1.log)", "Bash(cd \"/h/MegaSync/Proyectos/MP Manager\" && wc -l dryrun_canal_origen_v1.log)", "Bash(tee dryrun_canal_origen_v2.log)", "Bash(python scripts/sync_contacts_branch_to_brand.py --location 5qebe8IhFUjlcBvJcqCa --max-contacts-brand 20000 --run-id pilot_jojutla_pre_dry)", "Bash(python scripts/sync_contacts_branch_to_brand.py --apply --location 5qebe8IhFUjlcBvJcqCa --max-contacts-brand 20000 --run-id pilot_jojutla_apply)", "Bash(python scripts/sync_contacts_branch_to_brand.py --location 5qebe8IhFUjlcBvJcqCa --max-contacts-brand 20000 --run-id pilot_jojutla_post_dry)", "Bash(awk '/^############/{step++} step==1 && /: [0-9]+ contactos actualizados/{print}' dryrun_canal_origen_v2.log)", "Bash(python scripts/run_origen_fuente_workflows.py --all --dry-run --contact-only --sync-main)", "Bash(tee dryrun_final.log)", "Bash(python scripts/sync_contacts_branch_to_brand.py --all --workers 4 --max-contacts 10000 --max-contacts-brand 20000 --run-id post_bulk_dry)", "Bash(python -m py_compile scripts/find_cross_branch_duplicates.py script_runner.py)", "Bash(python scripts/find_cross_branch_duplicates.py --top 3 --no-brand-check)", "Bash(python scripts/find_cross_branch_duplicates.py --top 2)", "Bash(type requirements.txt)", "Bash(python -c \"import openpyxl; print\\('openpyxl', openpyxl.__version__\\)\")", "Bash(python -c \"import openpyxl; print\\(openpyxl.__version__\\)\")", "Bash(python scripts/find_cross_branch_duplicates.py --top 0 --xlsx duplicados_test.xlsx)", "Bash(python -c \"from openpyxl import load_workbook; wb=load_workbook\\('duplicados_test.xlsx'\\); ws=wb.active; print\\('hoja:', ws.title\\); print\\('filas:', ws.max_row\\); print\\('cols:', ws.max_column\\); print\\('headers:', [ws.cell\\(1,i\\).value for i in range\\(1,ws.max_column+1\\)]\\); print\\('fila 2:', [ws.cell\\(2,i\\).value for i in range\\(1,ws.max_column+1\\)]\\)\")", "Bash(del duplicados_test.xlsx)", "Bash(python -m py_compile scripts/find_cross_branch_duplicates.py)", "Bash(python scripts/find_cross_branch_duplicates.py --top 0)", "Bash(python -m py_compile scripts/tag_canal_origen_workflow.py)", "Bash(ls *.xlsx *.csv)", "Bash(ls reports *)", "Bash(ls exports *)", "Bash(ls scripts/*.xlsx)", "Bash(rm -f reporte.xlsx reporte.csv exports/*.xlsx)", "Bash(python -m py_compile scripts/find_cross_branch_duplicates.py main.py script_runner.py)", "Bash(python scripts/find_cross_branch_duplicates.py --top 0 --xlsx)", "Bash(tasklist)", "Bash(wmic process *)", "Bash(python -m py_compile main.py db.py ghl_client.py sync_engine.py script_runner.py)", "Bash(node -c static/js/app.js)", "Bash(python \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\_tmp_search_pilares.py\")", "Bash(python)", "Bash(python scripts/find_cross_branch_duplicates.py --json)", "WebFetch(domain:marketplace.gohighlevel.com)", "Bash(python -m py_compile ghl_client.py)", "Bash(python -m py_compile scripts/sync_forms_brand.py)", "Bash(python -m py_compile scripts/audit_brand_sucursal_vs_form.py scripts/sync_forms_brand.py)", "Bash(python -m py_compile script_runner.py db.py ghl_client.py scripts/sync_forms_brand.py scripts/audit_brand_sucursal_vs_form.py)", "Bash(python scripts/sync_forms_brand.py)", "Bash(python scripts/audit_brand_sucursal_vs_form.py --show verificar)", "Bash(python scripts/audit_brand_sucursal_vs_form.py --filter-marca queretaro --show all)", "Bash(python scripts/audit_brand_sucursal_vs_form.py --filter-marca puebla --show all)", "Bash(python -m py_compile scripts/audit_brand_sucursal_vs_form.py)", "Bash(python -m py_compile db.py ghl_client.py scripts/sync_forms_brand.py scripts/audit_brand_sucursal_vs_form.py script_runner.py)", "WebFetch(domain:highlevel.stoplight.io)", "Bash(python scripts/sync_forms_brand.py --backfill-months 8 --quiet)", "Bash(python -m py_compile db.py scripts/sync_forms_brand.py)", "Bash(python scripts/sync_forms_brand.py --reextract-only)", "Bash(python scripts/audit_brand_sucursal_vs_form.py)", "Bash(python -m py_compile scripts/fix_brand_sucursal_from_form.py)", "Bash(python -m py_compile script_runner.py scripts/fix_brand_sucursal_from_form.py)", "Bash(python scripts/fix_brand_sucursal_from_form.py)", "Bash(python _temp_conflict_list.py)", "Bash(python _temp_create_in_target.py)", "Bash(python _temp_compare_opps.py)", "Bash(rm _temp_compare_opps.py)", "Bash(python _temp_delete_qro_and_validate.py)", "Bash(python scripts/audit_brand_contact_opportunity_map.py)", "Bash(python scripts/audit_brand_contact_opportunity_map.py --show-no-opp --limit 50)", "Bash(python scripts/audit_brand_contact_opportunity_map.py --show-multi-opp)", "Bash(python -m py_compile scripts/audit_brand_vs_branches_discrepancy.py script_runner.py)", "Bash(python scripts/audit_brand_vs_branches_discrepancy.py)", "Bash(python scripts/audit_brand_vs_branches_discrepancy.py --show-sync-gaps --show-multi-opp-gaps)", "Bash(python scripts\\\\compare_pipelines_stages.py --reference-main --live --show-ids)", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\fill_sucursal_tienda_from_location.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\script_runner.py\")", "Bash(Get-ChildItem \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\" -Filter \"*.py\")", "Bash(Measure-Object)", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\tag_canal_origen_workflow.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\common.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\fill_sucursal_tienda_from_location.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\sync_contact_sucursal_to_opportunity.py\")", "Bash(python scripts/run_origen_fuente_workflows.py --location XkduzafvwsrWcEFg6Qlj --dry-run)", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\tag_canal_origen_workflow.py\")", "WebSearch", "Bash(curl -sL \"https://marketplace.gohighlevel.com/docs/ghl/custom-fields/custom-fields-v-2-api/\" -A \"Mozilla/5.0\")", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\tag_canal_origen_workflow.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\common.py\")", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\audit_custom_fields_schema.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\script_runner.py\")", "Bash(python scripts/audit_custom_fields_schema.py --location XkduzafvwsrWcEFg6Qlj)", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\audit_custom_fields_schema.py\")", "Bash(python scripts/audit_custom_fields_schema.py --all)", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\migrate_branch_fieldkeys.py\")", "Bash(python scripts/migrate_branch_fieldkeys.py --location Vf7qQl3L9vakJ8hDtQ8e)", "Bash(python scripts/migrate_branch_fieldkeys.py --location Vf7qQl3L9vakJ8hDtQ8e --field opportunity.modalidad_del_empeno --apply)", "Bash(python scripts/migrate_branch_fieldkeys.py --location XkduzafvwsrWcEFg6Qlj --apply)", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m pip show playwright)", "Bash(python scripts/migrate_branch_fieldkeys.py --all --apply)", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py\")", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\main.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_session_generator.py\")", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\merge_orphan_to_clean.py\")", "Bash(python scripts/merge_orphan_to_clean.py)", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -X utf8 -u \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py\" --action toggle-status --location Z64WQKORPVwXb5mn68Ef --workflow-id 67f98059-d82b-4698-b82a-8f8874a9b263 --current-status published)", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -X utf8 -u \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py\" --action toggle-status --location Z64WQKORPVwXb5mn68Ef --workflow-id 67f98059-d82b-4698-b82a-8f8874a9b263 --current-status draft)", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\fix_cancun_uruapan_residual.py\")", "Bash(python scripts/fix_cancun_uruapan_residual.py)", "Bash(python scripts/fix_cancun_uruapan_residual.py --apply)", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_session_generator.py\")", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\fix_cancun_modalidad.py\")", "Bash(python scripts/fix_cancun_modalidad.py)", "Bash(python scripts/fix_cancun_modalidad.py --apply)", "Bash(python scripts/migrate_branch_fieldkeys.py --batch Vf7qQl3L9vakJ8hDtQ8e,Z64WQKORPVwXb5mn68Ef --apply)", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -X utf8 -u \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py\" --action bulk-draft --batch-file \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\_test_batch.json\")", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\main.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py\")", "Bash(rm -f \"H:/MegaSync/Proyectos/MP Manager/_bulk_batch_\"*.json \"H:/MegaSync/Proyectos/MP Manager/_test_batch.json\" 2>&1 && echo OK)", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\email_otp_reader.py\" \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_session_generator.py\")", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m pip install imap-tools)", "Bash(node --check \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\static\\\\js\\\\app.js\")", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_session_generator.py\")", "Bash(\"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Local\\\\Programs\\\\Python\\\\Python312\\\\python.exe\" -X utf8 -u \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_session_generator.py\")", "Bash(mkdir -p logs/manual)", "Bash(python scripts/reconcile_and_sync_opportunities.py --dry-run --location Z64WQKORPVwXb5mn68Ef)", "Bash(echo \"Return code: $?\")", "Bash(python -m py_compile scripts/audit_brand_vs_branches_totals.py)", "Bash(python scripts/audit_brand_vs_branches_totals.py)", "Bash(python -m py_compile main.py)", "Bash(python scripts/dedupe_branch_pipelines.py --location IE7ci6Ddfk1WvQabEa4q --live)", "Bash(python -m py_compile scripts/dedupe_branch_pipelines.py)", "Bash(python -m py_compile main.py db.py ghl_client.py sync_engine.py script_runner.py scripts/audit_brand_vs_branches_totals.py)", "Bash(python -c \"from scripts import audit_brand_vs_branches_totals as a; data = a.run_audit\\(limit_missing=5\\); print\\('totals:', data['totals']\\); print\\('demos_excluded:', data['demos_excluded']\\); print\\('per_branch count:', len\\(data['per_branch']\\)\\); print\\('missing buckets:', {k: v['total'] for k, v in data['missing'].items\\(\\)}\\)\")", "Bash(python main.py)", "Bash(curl -s -o /dev/null -w \"HTTP %{http_code}\\\\n\" http://127.0.0.1:8000/api/comparativa/marca-vs-sucursales)", "Bash(curl -s -o /dev/null -w \"HTTP %{http_code}\\\\n\" \"http://127.0.0.1:8000/api/comparativa/marca-vs-sucursales/export?bucket=invalido\")", "Bash(curl -s \"http://127.0.0.1:8000/api/scripts\")", "Bash(python -c \"import sys, json; scripts=json.load\\(sys.stdin\\); match=[s for s in scripts.get\\('scripts', scripts\\) if 'audit_brand_vs_branches_totals' in \\(s.get\\('name'\\) or ''\\)]; print\\('found:', match[0] if match else 'NOT FOUND'\\)\")", "Bash(python -c \"import sys, json; scripts=json.load\\(sys.stdin\\); match=[s for s in scripts if 'audit_brand_vs_branches_totals' in \\(s.get\\('name'\\) or ''\\)]; print\\('found:', match[0]['title'] if match else 'NOT FOUND', '| category:', match[0]['category'] if match else ''\\)\")", "Bash(cmd /c stop.bat)", "Bash(curl -s -o /dev/null -w \"HTTP %{http_code}\\\\n\" --max-time 2 http://127.0.0.1:8000/)", "PowerShell($conns = Get-NetTCPConnection -LocalPort 8000 -State Listen -ErrorAction SilentlyContinue; foreach \\($c in $conns\\) { try { Stop-Process -Id $c.OwningProcess -Force -ErrorAction Stop; \"Killed PID $\\($c.OwningProcess\\)\" } catch { \"Failed: $_\" } })", "PowerShell(Get-Process python -ErrorAction SilentlyContinue | Where-Object { $_.StartTime -gt \\(Get-Date\\).AddMinutes\\(-15\\) } | ForEach-Object { \"PID $\\($_.Id\\) Started $\\($_.StartTime\\) Cmd: $\\(\\($_.CommandLine | Out-String\\).Trim\\(\\)\\)\"; Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue })", "PowerShell(Get-WmiObject Win32_Process -Filter \"Name='python.exe'\")", "Bash(python -m py_compile sync_engine.py)", "Bash(python -c \"import sync_engine; print\\('Workers default:', sync_engine.get_sync_max_workers\\(\\)\\)\")", "PowerShell(\"$env:SYNC_ENGINE_MAX_WORKERS = '$env:SYNC_ENGINE_MAX_WORKERS'\"; [System.Environment]::GetEnvironmentVariable\\('SYNC_ENGINE_MAX_WORKERS', 'User'\\); [System.Environment]::GetEnvironmentVariable\\('SYNC_ENGINE_MAX_WORKERS', 'Machine'\\))", "Bash(python -c \"import sync_engine; accs = sync_engine.parse_accounts_csv\\(\\); print\\('Total cuentas en el CSV:', len\\(accs\\)\\)\")", "PowerShell([System.Environment]::SetEnvironmentVariable\\('SYNC_ENGINE_MAX_WORKERS', '1000', 'User'\\); [System.Environment]::GetEnvironmentVariable\\('SYNC_ENGINE_MAX_WORKERS', 'User'\\))", "Bash(python -m py_compile scripts/sync_missing_opps_to_brand.py)", "Bash(python scripts/sync_missing_opps_to_brand.py --yes)", "Bash(curl -s -X POST http://127.0.0.1:8000/api/comparativa/sync-missing-opps -H \"Content-Type: application/json\" -d '{\"dry_run\": true}')", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('dry_run:', d['dry_run']\\); print\\('summary:', d['summary']\\); print\\('items count:', len\\(d['items']\\)\\); print\\('first item:', json.dumps\\(d['items'][0], indent=2, ensure_ascii=False\\) if d['items'] else 'none'\\)\")", "mcp__Claude_Preview__preview_start", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('summary:', d['summary']\\); print\\('items still in bucket:'\\); [print\\(' -', i['opp_id'], i['opp_name'], i['branch_name'], 'status:', i['status']\\) for i in d['items']]\")", "Bash(python scripts/sync_missing_opps_to_brand.py --apply --yes --only-opp pauvJPfmwXHxiT7rBaxb)", "Bash(curl -s http://127.0.0.1:8000/api/comparativa/sync-missing-opps -X POST -H \"Content-Type: application/json\" -d '{\"dry_run\":true}' --max-time 2 -o /dev/null -w \"%{http_code}\\\\n\")", "Bash(curl -s -o /dev/null -w \"%{http_code}\" --max-time 2 http://127.0.0.1:8000/)", "Bash(curl -s -X POST http://127.0.0.1:8000/api/comparativa/sync-missing-opps -H \"Content-Type: application/json\" -d '{\"dry_run\": false, \"yes\": true}' --max-time 120)", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('summary:', d['summary']\\); print\\('run_id:', d.get\\('run_id'\\)\\); print\\('items con error:'\\); [print\\(' -', i['opp_id'], i['opp_name'], '|', i.get\\('error'\\) or 'OK', '|', i['status']\\) for i in d['items']]\")", "Bash(curl -s http://127.0.0.1:8000/api/comparativa/marca-vs-sucursales -o /dev/null -w \"%{http_code}\" --max-time 2)", "Bash(curl -s -X POST http://127.0.0.1:8000/api/scripts/runs --max-time 2 -o /dev/null -w \"%{http_code}\")", "Bash(python -m py_compile scripts/sync_missing_contacts_to_brand.py)", "Bash(python scripts/sync_missing_contacts_to_brand.py --yes)", "Bash(curl -s -X POST http://127.0.0.1:8000/api/comparativa/sync-missing-contacts -H \"Content-Type: application/json\" -d '{\"dry_run\": true}' --max-time 60)", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('summary:', d['summary']\\); print\\('first 3 items:'\\); [print\\(' -', i['name'], '|', i['status'], '|', i.get\\('actions', [{}]\\)[0].get\\('strategy', ''\\)\\) for i in d['items'][:3]]\")", "Bash(curl -s -o /dev/null -w \"%{http_code}\" --max-time 2 http://127.0.0.1:8000/api/comparativa/marca-vs-sucursales)", "Bash(python -m py_compile scripts/sync_missing_opps_to_brand.py scripts/sync_missing_contacts_to_brand.py)", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('summary:', d['summary']\\); print\\('first 4 items:'\\); [print\\(' -', i['name'], '|', i['status'], '|', 'phone:', i.get\\('phone'\\) or '\\(empty\\)', '| email:', i.get\\('email'\\) or '\\(empty\\)'\\) for i in d['items'][:4]]\")", "Bash(curl -s -X POST http://127.0.0.1:8000/api/comparativa/sync-missing-opps -H \"Content-Type: application/json\" -d '{\"dry_run\": true}' --max-time 60)", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('summary:', d['summary']\\); print\\('strategies usadas:'\\); from collections import Counter; print\\(Counter\\(a.get\\('strategy','none'\\) for i in d['items'] for a in i['actions'] if a.get\\('action'\\)=='match_existing_contact'\\)\\); print\\('first 4 items:'\\); [print\\(' -', i['opp_name'], '|', i['status'], '|', 'phone:', i.get\\('branch_contact',{}\\).get\\('phone'\\) or '\\(empty\\)'\\) for i in d['items'][:4]]\")", "Bash(curl -s -X POST http://127.0.0.1:8000/api/comparativa/sync-missing-opps -H \"Content-Type: application/json\" -d '{\"dry_run\": false, \"yes\": true, \"opp_ids\": [\"pauvJPfmwXHxiT7rBaxb\"]}' --max-time 60)", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('summary:', d['summary']\\); print\\('run_id:', d.get\\('run_id'\\)\\); item = d['items'][0]; print\\('item status:', item['status']\\); print\\('actions:'\\); [print\\(' -', a\\) for a in item['actions']]\")", "Bash(python -c \"import sys, json; d=json.load\\(sys.stdin\\); print\\('Bucket missing_opps_in_brand now has:', d['summary']['candidates'], 'candidatas \\(era 11 antes\\)'\\)\")", "Bash(python -m py_compile scripts/sync_brand_to_branch_contacts.py)", "Bash(python scripts/sync_brand_to_branch_contacts.py --yes)", "Bash(curl -s \"http://127.0.0.1:8000/api/comparativa/marca-vs-sucursales?limit_missing=2000\")", "Bash(python -m py_compile main.py scripts/audit_brand_vs_branches_totals.py)", "Bash(python -m py_compile main.py scripts/create_opportunities_for_contacts_without_any.py db.py)", "PowerShell(cmd /c restart.bat 2>&1)", "PowerShell($ok = $false; foreach \\($i in 1..15\\) { try { $r = Invoke-WebRequest -Uri 'http://127.0.0.1:8000/api/contacts/NSDniGzjxotVDNa5YxqW?limit=5' -UseBasicParsing -TimeoutSec 2; if \\($r.StatusCode -eq 200\\) { $ok = $true; break } } catch { Start-Sleep -Milliseconds 800 } }; if \\($ok\\) { \"READY\"; $r.Content.Substring\\(0, [Math]::Min\\(1500, $r.Content.Length\\)\\) } else { \"STILL DOWN\" })", "PowerShell($r = Invoke-WebRequest -Uri 'http://127.0.0.1:8000/api/contacts/NSDniGzjxotVDNa5YxqW?limit=5' -UseBasicParsing; $j = $r.Content | ConvertFrom-Json; \"total: $\\($j.total\\) | test_count: $\\($j.test_count\\)\"; foreach \\($c in $j.contacts\\) { \" - $\\($c.first_name\\) $\\($c.last_name\\) | is_test=$\\($c.is_test\\) | reasons=$\\($c.test_reasons -join '; '\\)\" })", "Bash(python -m py_compile scripts/fix_brand_tienda_from_sucursal.py)", "Bash(python -m py_compile main.py scripts/fix_brand_tienda_from_sucursal.py scripts/audit_brand_vs_branches_totals.py)", "Bash(python -m py_compile main.py script_runner.py)", "Bash(python -m py_compile main.py db.py ghl_client.py sync_engine.py script_runner.py scripts/fix_brand_tienda_from_sucursal.py scripts/audit_brand_vs_branches_totals.py)", "Bash(python -m py_compile main.py contact_classifier.py scripts/find_test_contacts.py)", "Bash(node --check static/js/app.js)", "Bash(python -m py_compile main.py scripts/dedupe_branch_pipelines.py)", "Bash(python -m py_compile main.py sync_engine.py ghl_client.py scripts/sync_missing_opps_to_brand.py)", "Bash(python -m py_compile main.py sync_engine.py scripts/sync_missing_opps_to_brand.py scripts/sync_missing_contacts_to_brand.py scripts/sync_brand_to_branch_contacts.py scripts/create_opportunities_for_contacts_without_any.py)", "Bash(python -m py_compile main.py sync_engine.py scripts/sync_missing_opps_to_brand.py)", "PowerShell(python _debug_match.py)", "Bash(python -m py_compile contact_classifier.py scripts/find_test_contacts.py)", "Bash(python -c \"from contact_classifier import classify_contact, TEST_EMAILS; print\\('TEST_EMAILS:', sorted\\(TEST_EMAILS\\)\\); print\\('servando ->', classify_contact\\('Juan','Perez','servandobra@gmail.com',[]\\)\\); print\\('uriel ->', classify_contact\\('Ana','Lopez','uriel.conse3@gmail.com',[]\\)\\); print\\('otro ->', classify_contact\\('Mario','Bros','mario@example.com',[]\\)\\)\")", "Bash(python -m py_compile main.py db.py ghl_client.py sync_engine.py script_runner.py contact_classifier.py)", "Bash(python -m py_compile scripts/audit_brand_vs_branches_totals.py main.py db.py ghl_client.py sync_engine.py script_runner.py contact_classifier.py)", "Bash(python -m py_compile main.py db.py ghl_client.py sync_engine.py script_runner.py contact_classifier.py scripts/audit_brand_vs_branches_totals.py)", "Bash(python -m py_compile scripts/cleanup_puebla_qro_duplicates.py)", "Bash(python scripts/cleanup_puebla_qro_duplicates.py)", "Bash(python scripts/cleanup_puebla_qro_duplicates.py --apply --yes)", "Bash(python scripts/cleanup_cross_branch_duplicates.py --exclude-contact RwxMQr0Ywvydjr3veCYo)", "PowerShell(Get-Process -Id 16852)", "Bash(Get-ChildItem -Path \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\" -Recurse -Force)", "Bash(Select-Object FullName)", "Bash(Get-Content -Path \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\main.py\" -TotalCount 2400)", "Bash(Select-Object -Last 600)", "Bash(Get-ChildItem -Path \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\migrations\" -ErrorAction SilentlyContinue)", "Bash(Select-Object -ExpandProperty Name)", "Bash(cmd.exe /c stop.bat)", "Bash(python -c \"import paths; print\\('OK'\\); import os; [print\\(' ', d, os.path.exists\\(d\\)\\) for d in paths._ALL_DIRS]\")", "Bash(python -m py_compile paths.py db.py script_audit.py error_logging.py main.py)", "Bash(python -m py_compile paths.py db.py script_audit.py error_logging.py main.py script_runner.py sync_engine.py ghl_client.py contact_classifier.py create_skeletons.py)", "Bash(curl -s -f http://127.0.0.1:8000/ -o /dev/null)", "Bash(curl -s http://127.0.0.1:8000/api/branches)", "Bash(python -c \"import sys, json; data=json.load\\(sys.stdin\\); print\\(f'branches: {len\\(data\\)}'\\); [print\\(f' {b[\\\\\"location_id\\\\\"][:8]}... {b[\\\\\"nombre\\\\\"]}'\\) for b in data[:3]]\")", "Bash(curl -s -w \"\\\\nHTTP %{http_code}\\\\n\" http://127.0.0.1:8000/api/exports/__refactor_smoke_test.txt)", "Bash(curl -s -o /dev/null -w \"HTTP %{http_code}\\\\n\" \"http://127.0.0.1:8000/api/this-does-not-exist\")", "Bash(python -c \"import json; d=json.load\\(open\\('generated/runtime/server_info.json'\\)\\); print\\('PID:', d['pid'], 'PORT:', d['port']\\)\")", "Bash(cmd.exe /c \"stop.bat\")", "Bash(cmd.exe /c start.bat)", "Bash(curl -s -f http://127.0.0.1:8000/api/branches -o /tmp/branches.json)", "Bash(python -c \"import json; print\\(len\\(json.load\\(open\\('/tmp/branches.json'\\)\\)\\)\\)\")", "Bash(python runtime_control.py preflight)", "Bash(python runtime_control.py wait-ready --timeout=30)", "Bash(powershell -NoProfile -Command \"\\(Get-CimInstance Win32_Process -Filter 'ProcessId=27092'\\).CommandLine\")", "Bash(python runtime_control.py status)", "Bash(python -m py_compile main.py scripts/ghl_browser_workflow_manager.py)", "Bash(python -m py_compile scripts/common.py scripts/find_cross_branch_duplicates.py)", "Bash(python scripts/find_cross_branch_duplicates.py --xlsx duplicados_audit.xlsx --json duplicados_audit.json --top 5)", "Bash(echo \"--- exit: $? ---\")", "Bash(python -m py_compile \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\find_cross_branch_duplicates.py\")", "Bash(python runtime_control.py wait-ready --timeout=15)", "Bash(curl -s -w 'HTTP %{http_code}\\\\n' http://127.0.0.1:__TRACKED_VAR__/api/exports/_smoke.txt)", "Bash(powershell -Command \"Select-String -Path 'H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py' -Pattern 'def.*workflow|for.*workflow|iterate' -Context 2 | head -80\")", "Bash(powershell -Command \"Select-String -Path 'H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\scripts\\\\ghl_browser_workflow_manager.py' -Pattern 'def.*bulk|for.*items|def.*main' | head -20\")", "Bash(Get-ChildItem -Path \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\" -Force)", "Bash(Select-Object -First 20)", "Bash(python scripts/ghl_browser_inspect_errors_panel.py --location uZnMH5bO6MXTHcgHeyq9 --workflow-id 346e764e-95c5-4920-ae49-e64bdf556972)", "Bash(python scripts/ghl_browser_workflow_anomaly_scanner.py --location uZnMH5bO6MXTHcgHeyq9 --workflow-id 346e764e-95c5-4920-ae49-e64bdf556972)", "Bash(python -u -c ' *)", "Bash(python -m py_compile scripts/audit_custom_fields_cross_object.py scripts/audit_custom_fields_schema.py)", "Bash(python scripts/audit_custom_fields_schema.py --all --object both)", "Bash(python scripts/fix_opportunity_picklist_alignment.py --location fKn9SaXZoKcjjLryg10v --field \"CANAL DE ORIGEN\" --apply --run-id picklist-canal-63ee67c6b952)", "Bash(python -m py_compile main.py script_runner.py db.py ghl_client.py sync_engine.py paths.py script_audit.py)", "Bash(node -c static/js/live_terminal.js)", "Bash(findstr /C:\"records_updated=\" /C:\"PUT schema fall\" /C:\"✗\" /C:\"ERROR\" /C:\"falló\")", "Bash(python scripts/fix_opportunity_picklist_alignment.py --location GbKkBpCmKu2QmloKFHy3 --field \"Canal de Origen \\(contact rename\\)\")", "Bash(python scripts/fix_opportunity_picklist_alignment.py --location fKn9SaXZoKcjjLryg10v --field \"Lead Descartado\")", "Bash(python scripts/fix_opportunity_picklist_alignment.py --all --field \"Lead Descartado\" --apply --run-id picklist-ld-rollout-5e11be2c7c)", "Bash(curl -sS -o /tmp/anom_test.xlsx -w \"HTTP %{http_code}\\\\nbytes=%{size_download}\\\\ntype=%{content_type}\\\\n\" \"http://127.0.0.1:8001/api/workflows/anomaly-report-xlsx/workflow_anomalies_20260526_100617.csv\")", "Bash(python -m py_compile main.py script_runner.py scripts/ghl_browser_workflow_anomaly_scanner.py paths.py)", "Bash(curl -sS -o /tmp/anom_v2.xlsx -w \"HTTP %{http_code}\\\\n\" \"http://127.0.0.1:8001/api/workflows/anomaly-report-xlsx/workflow_anomalies_20260526_104238.csv\")", "Bash(curl -sS -o /tmp/anom_v2.xlsx -w \"HTTP %{http_code} bytes=%{size_download}\\\\n\" \"http://127.0.0.1:8001/api/workflows/anomaly-report-xlsx/workflow_anomalies_20260526_104238.csv\")", "Bash(curl -sS -o \"generated/_test_anom_v2.xlsx\" -w \"HTTP %{http_code} bytes=%{size_download}\\\\n\" \"http://127.0.0.1:8001/api/workflows/anomaly-report-xlsx/workflow_anomalies_20260526_104238.csv\")", "PowerShell($env:NODE_PATH = \"C:\\\\Users\\\\Uriel Jareth\\\\AppData\\\\Roaming\\\\npm\\\\node_modules\"; node \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\\\\generated\\\\runtime\\\\gen_cronograma_sla.js\")", "Bash(python scripts/fix_opportunity_picklist_alignment.py --location GbKkBpCmKu2QmloKFHy3 --field \"CANAL DE ORIGEN\")", "Bash(curl -s -o response.txt -w \"HTTP %{http_code}\\\\nTIME %{time_total}\\\\n\" \"http://127.0.0.1:8000/api/comparativa/marca-vs-sucursales?limit_missing=2000\" --max-time 60)", "Bash(python scripts/audit_tags_across_accounts.py --json generated/reports/tags_audit.json)", "Bash(python -c \"import os; p=r'generated/runtime/dryrun_source_fix.log'; print\\('size:', os.path.getsize\\(p\\), 'bytes'\\)\")", "Bash(python scripts/cleanup_and_unify_tags.py --apply --yes --json generated/reports/tag_cleanup_apply.json)", "Bash(python scripts/sync_missing_opps_to_brand.py --dry-run --json generated/reports/missing_opps_dryrun.json)", "Bash(awk '/### Get Custom Fields/,/### \\(Create Custom Field|Get Custom Field$\\)/' categories/locations-api.md)", "Bash(PYTHONUTF8=1 python \"generated/_backfill_preview.py\")", "Bash(python -m py_compile scripts/backfill_opp_sucursal_link.py)", "Bash(PYTHONUTF8=1 python scripts/backfill_opp_sucursal_link.py --apply-links --limit 20)", "Bash(PYTHONUTF8=1 python -c ' *)", "Bash(PYTHONUTF8=1 python scripts/backfill_opp_sucursal_link.py --apply-links)", "Bash(PYTHONUTF8=1 python \"generated/_classify_creates.py\")", "Bash(awk '/## POST \\\\/opportunities\\\\/$/,/## \\(GET|PUT|DELETE\\) \\\\/opportunities/' categories/opportunities-api.md)", "Bash(grep -iA2 -E 'Request Body|customFields|field_value|status|source|tags|contactId|required|name|pipelineStageId')", "Bash(python scripts\\\\audit_custom_fields_full_from_db.py)", "Bash(python scripts/audit_custom_fields_full_from_db.py)", "Bash(python -c \"import os; from paths import DB_PATH; print\\('DB:', DB_PATH\\); print\\('exists:', os.path.exists\\(DB_PATH\\)\\); import time; print\\('mtime:', time.ctime\\(os.path.getmtime\\(DB_PATH\\)\\)\\)\")", "Bash(python scripts/audit_brand_vs_branches_totals.py --json)", "Bash(set PYTHONIOENCODING=utf-8)", "Bash(python scripts/sync_missing_contacts_to_brand.py)", "Bash(python -m py_compile scripts/apply_custom_field_layout.py)", "Bash(python scripts/apply_custom_field_layout.py --location blRZ21GlzgUCA7bl2uVw)", "Bash(python -c \"import sys; sys.path.insert\\(0,'scripts'\\); import audit_collision_submissions as a; print\\('brand_ok=', bool\\(a._load_token\\('GbKkBpCmKu2QmloKFHy3'\\)\\)\\); print\\('pilares_ok=', bool\\(a._load_token\\('uZnMH5bO6MXTHcgHeyq9'\\)\\)\\); print\\('map_size=', len\\(a._TOKENS_MAP\\)\\)\")", "Bash(python generated/_investiga_alejandra.py)", "Bash(python generated/_investiga_alejandra2.py)", "Bash(python -m py_compile scripts/fill_opp_id_oportunidad_sucursal.py)", "Bash(python scripts/fill_opp_id_oportunidad_sucursal.py --location Z64WQKORPVwXb5mn68Ef)", "Bash(python -m py_compile scripts/reconcile_and_sync_opportunities.py)", "Bash(python -m py_compile scripts/cleanup_brand_orphan_opportunities.py scripts/reconcile_and_sync_opportunities.py)", "Bash(python scripts/cleanup_brand_orphan_opportunities.py --dry-run)", "Bash(python generated/_investiga_alejandra3.py)", "Read(//c/Users/Uriel Jareth/AppData/Roaming/Claude/local-agent-mode-sessions/skills-plugin/**)", "Bash(python generated/_tmp_verificar_fechas.py)", "Bash(python \"n8n/_add_automap_node.py\")", "Bash(cmd /c \"stop.bat\")", "Bash(python -m py_compile scripts/fill_contact_id_sucursal.py)", "Bash(python scripts/fill_contact_id_sucursal.py --location Z64WQKORPVwXb5mn68Ef)", "Bash(python scripts/fill_contact_id_sucursal.py --location blRZ21GlzgUCA7bl2uVw)", "Bash(python scripts/audit_brand_vs_branches_totals.py --show-missing --limit-missing 200 --json)", "Bash(tee generated\\\\reports\\\\audit_brand_diff_20260527.json)", "Bash(python -m py_compile scripts/delete_intra_brand_duplicates.py)", "Bash(python scripts/delete_intra_brand_duplicates.py)", "Bash(python -c \"import uuid; print\\(uuid.uuid4\\(\\)\\)\")", "Bash(python scripts/backfill_brand_contact_id_sucursal.py --apply --run-id 174ce44a-52bc-4ef6-b4af-b61901094a37)", "Bash(sqlite3 generated/data/mp_manager.sqlite \"SELECT COUNT\\(*\\) as contact_count FROM contacts WHERE location_id='7H91g95hhLKwIUqSk0Rg';\")", "Bash(python n8n/_apply_phase1.py --apply --activate)", "Bash(python scripts/n8n_e2e_test.py --scenario 1.1)", "Bash(python n8n/_apply_phase1_fix_phone_refs.py --apply)", "Bash(python scripts/n8n_e2e_test.py --scenario all-phase1)", "Bash(python scripts/n8n_e2e_test.py --scenario all-phase2)", "Bash(python n8n/_apply_phase3.py --apply --activate)", "Bash(python scripts/n8n_e2e_test.py --scenario 3.2)", "Bash(python n8n/_apply_phase4.py --apply --activate)", "Bash(python n8n/_apply_phase2_fix_code_ref.py --apply)", "Bash(python scripts/n8n_e2e_test.py --scenario all)", "Bash(python -m py_compile main.py db.py)", "Bash(PYTHONIOENCODING=utf-8 python -c ' *)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_add_fallback_autoenlace_contacto.py)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_add_fallback_autoenlace_contacto.py --apply)", "Bash(PYTHONIOENCODING=utf-8 python scripts/n8n_e2e_test.py --help)", "Bash(PYTHONIOENCODING=utf-8 python scripts/n8n_e2e_test.py --scenario all-phase1)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_test_fallback_branch_false.py)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_add_fallback_post_update_marca.py)", "Bash(PYTHONIOENCODING=utf-8 python scripts/n8n_e2e_test.py --scenario all-phase2)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_fix_cascada_token_mail.py)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_test_fallback_post_update.py)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_fix_cascada_locationid_mail.py)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_fix_cascada_locationid_mail.py --apply)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_fix_cascada_if_zero_results.py)", "Bash(PYTHONIOENCODING=utf-8 python n8n/_fix_cascada_if_zero_results.py --apply)", "Bash(find \"H:\\\\MegaSync\\\\Proyectos\\\\MP Manager\" -name \"app.js\" -o -name \"index.html\" 2>nul | head -5)", "Bash(python -m py_compile main.py db.py ghl_client.py sync_engine.py script_runner.py paths.py scripts/backfill_opp_sucursal_link.py)", "Bash(python scripts/backfill_opp_sucursal_link.py)", "mcp__mp-manager__search_contacts", "Bash(python -c \"import ast; ast.parse\\(open\\('main.py'\\).read\\(\\)\\); ast.parse\\(open\\('scripts/backfill_opp_sucursal_link.py'\\).read\\(\\)\\); print\\('python AST OK'\\)\")", "Bash(python -c \"import ast; ast.parse\\(open\\('main.py', encoding='utf-8'\\).read\\(\\)\\); ast.parse\\(open\\('scripts/backfill_opp_sucursal_link.py', encoding='utf-8'\\).read\\(\\)\\); print\\('python AST OK'\\)\")", "Bash(where node *)", "mcp__mp-manager__get_contact", "mcp__mp-manager__get_opportunities" ] } }