{ "permissions": { "allow": [ "WebSearch", "WebFetch(domain:openapi.propresenter.com)", "WebFetch(domain:raw.githubusercontent.com)", "Read(//private/tmp/**)", "Bash(curl -sSL --max-time 60 \"https://raw.githubusercontent.com/jeffmikels/ProPresenter-API/master/pro7.9.openapi-spec.json\" -o pp.json)", "Bash(python3 -)", "Bash(node --check main.js)", "Bash(node --check renderer.js)", "Bash(node --check preload.js)", "Bash(PP_STEP_MS=400 node tmp/pp-mock.js 1599)", "Bash(node tmp/pp-verify.js 1599)", "Bash(pkill -f \"tmp/pp-mock.js\")", "Bash(PP_STEP_MS=600 node tmp/pp-mock.js 1599)", "Bash(echo \"mock pid $!\")", "Bash(curl -N --max-time 3 -s -X POST -H 'Content-Type: application/json' -d '[\"presentation/slide_index\"]' http://127.0.0.1:1599/v1/status/updates)", "Bash(pkill -f \"tmp/pp-mock.js\" 2>/dev/null; sleep 0.3 *)", "Bash(echo \"verify exit: $?\")", "Bash(pkill -f \"electron .*pp-test-profile\")", "Bash(npm run *)", "Bash(tee /tmp/pp-build.log)", "Bash(open -R \"/Users/Studio/Documents/BandLineupDisplay/dist/Band Lineup Setup 1.0.0.exe\")", "Bash(tee /tmp/pp-build2.log)", "Bash(tee /tmp/pp-build3.log)", "Bash(tee /tmp/pp-build4.log)", "Bash(curl -sSL --max-time 30 \"https://api.github.com/repos/jeffmikels/ProPresenter-API/contents/\")", "Bash(curl -sSL --max-time 30 \"https://api.github.com/repos/bitfocus/companion-module-renewedvision-propresenter-api/contents/\")", "Bash(curl -sSL --max-time 30 \"https://api.github.com/repos/bitfocus/companion-module-renewedvision-propresenter-api/contents/src\")", "Bash(curl -sSL --max-time 30 https://raw.githubusercontent.com/bitfocus/companion-module-renewedvision-propresenter-api/master/src/__TRACKED_VAR__.ts -o comp-__TRACKED_VAR__.ts)", "Bash(curl -sSL --max-time 30 \"https://raw.githubusercontent.com/bitfocus/companion-module-renewedvision-propresenter-api/master/package.json\")", "Bash(curl -sSL --max-time 30 \"https://unpkg.com/renewedvision-propresenter@7.7.2/package.json\")", "Bash(curl -sSL --max-time 30 \"https://unpkg.com/renewedvision-propresenter@7.7.2/dist/index.js\" -o rvpro.js)", "Bash(grep -noE \"playlistPlaylistIdGet[^\\\\n]{0,120}\" rvpro.js)", "Bash(grep -noE \"/v1/playlist[^\\\\\"\\\\\\\\\\\\`]{0,60}\" rvpro.js)", "Bash(curl -sSL --max-time 30 \"https://unpkg.com/renewedvision-propresenter@7.7.2/?meta\")", "Bash(curl -sSL --max-time 30 \"https://unpkg.com/renewedvision-propresenter@7.7.2/dist/propresenter.js\" -o rvpro2.js)", "Bash(grep -noE \"playlistPlaylistIdGet[\\\\s\\\\S]{0,200}\" rvpro2.js)", "Bash(grep -noE \"v1/playlist[^\\\\\"\\\\\\\\\\\\`]{0,80}\" rvpro2.js)", "Bash(curl -sSL --max-time 30 \"https://registry.npmjs.org/renewedvision-propresenter\")", "Bash(python3 -c \"import sys,json; d=json.load\\(sys.stdin\\); print\\('latest:', d['dist-tags']\\); print\\('all versions:', list\\(d['versions'].keys\\(\\)\\)[-12:]\\)\")", "Bash(tee /tmp/pp-build5.log)", "Bash(node --check tmp/pp-mock.js)", "Bash(PP_STEP_MS=5000 node tmp/pp-mock.js 1599)", "Bash(node tmp/pp-verify-slides.js 1599)", "Bash(tee /tmp/pp-build6.log)", "Skill(update-config)", "Skill(update-config:*)", "Bash(echo \"=== ~/.claude/settings.json ===\"; cat ~/.claude/settings.json 2>/dev/null || echo \"\\(none\\)\" *)", "Bash(PORT=3000 node server.js)", "Bash(curl -s http://localhost:3000/healthz)", "Bash(curl -s -X POST http://localhost:3000/api/login -H 'Content-Type: application/json' -d '{\"username\":\"admin\",\"password\":\"?WaT3rs2016!\"}')", "Bash(rm -f /Users/Studio/Documents/recurring-checklist-app/.claude/launch.json)", "Bash(rmdir /Users/Studio/Documents/recurring-checklist-app/.claude)", "Bash(mkdir -p /Users/Studio/Documents/BandLineupDisplay/.claude)", "mcp__Claude_Preview__preview_start", "Bash(tee /tmp/pp-build7.log)", "Bash(tee /tmp/pp-build8.log)", "Bash(tee /tmp/pp-build9.log)", "Bash(tee /tmp/pp-build10.log)", "Bash(node --check server.js)", "Bash(node --check app.js)", "WebFetch(domain:api.propresenter.com)", "Bash(curl -s -o pp-spec.json \"https://raw.githubusercontent.com/jeffmikels/ProPresenter-API/master/pro7.9.openapi-spec.json\")", "Bash(python3 -c ' *)", "WebFetch(domain:api.github.com)", "Bash(curl -s -L --max-time 20 \"https://api.github.com/search/code?q=group_identifiers+propresenter\" -H \"Accept: application/vnd.github+json\")", "Bash(python3 -c \"import json,sys; d=json.load\\(sys.stdin\\); print\\(d.get\\('total_count'\\)\\); [print\\(i['repository']['full_name'], i['path']\\) for i in d.get\\('items',[]\\)[:15]]\")", "Bash(curl -s -L --max-time 15 \"https://openapi.propresenter.com/\")", "Bash(curl -s -o /dev/null -w '%{http_code}' --max-time 10 https://openapi.propresenter.com/__TRACKED_VAR__)", "Bash(curl -s -L --max-time 30 \"https://openapi.propresenter.com/swagger.json\" -o pp20-spec.json)", "Bash(node --check public/app.js)", "Bash(pkill -f \"node server.js\")", "Bash(curl -s -X POST http://localhost:3000/api/login -H 'Content-Type: application/json' -d '{\"username\":\"admin\",\"password\":\"changeme\"}')", "Bash(node -pe \"JSON.parse\\(require\\('fs'\\).readFileSync\\(0\\)\\).users.map\\(u=>u.username+' ['+u.location+'/'+u.team+'/'+u.role+']'\\).join\\('\\\\n'\\)\")", "Bash(node -pe \"JSON.parse\\(require\\('fs'\\).readFileSync\\(0\\)\\).lists.find\\(l=>l.id==='woonprod'\\).items.map\\(i=>i.title\\).join\\(', '\\)\")", "Bash(node -pe ' *)", "Bash(pkill -f \"pp-mock.js\")", "Bash(node -e ' *)", "Bash(node -pe \"JSON.parse\\(require\\('fs'\\).readFileSync\\(0\\)\\).lists.find\\(l=>l.id==='global1'\\).items.map\\(i=>i.title\\).join\\(', '\\)\")", "Bash(pkill -f \"node server.js\" 2>/dev/null *)", "Bash(node -pe \"const d=JSON.parse\\(require\\('fs'\\).readFileSync\\(0\\)\\); 'locations: '+d.locations.map\\(l=>l.name+'='+l.abbrev\\).join\\(', '\\)+'\\\\nteams: '+d.teams.map\\(t=>t.name+'='+t.abbrev\\).join\\(', '\\)\")", "Bash(node -pe \"const d=JSON.parse\\(require\\('fs'\\).readFileSync\\(0\\)\\); 'locations: '+d.locations.map\\(l=>l.name\\).join\\(', '\\)+'\\\\nteams: '+d.teams.map\\(t=>t.name\\).join\\(', '\\)\")", "Bash(node -pe \"JSON.parse\\(require\\('fs'\\).readFileSync\\(0\\)\\).teams.map\\(t=>t.name\\).join\\(', '\\)\")", "Bash(curl -s -X POST http://localhost:3000/api/login -H 'Content-Type: application/json' -d '{\"username\":\"admin\",\"location\":\"executive\",\"password\":\"changeme\"}')", "Bash(curl -sS -m 8 -o /dev/null -w \"HTTP %{http_code}\\\\n\" http://10.1.1.5:3000/healthz)", "Bash(curl -sS -m 8 http://10.1.1.5:3000/app.js)", "Bash(curl -sS -m 8 http://10.1.1.5:3000/styles.css)", "Bash(sed -n '/function openListModal/,/^ }/p' app.js)", "Bash(sed -n '/function handleModalSave/,/^ }/p' app.js)", "Bash(sed -n '/\\\\.list-tabs-row {/,/^}/p' styles.css)", "Bash(sed -n '/^\\\\.list-menu-handle {/,/^}/p' styles.css)", "Bash(node -c server.js)", "Bash(node -c public/app.js)", "Bash(DATA_DIR=/tmp/cl-test-data PORT=3999 ADMIN_PASSWORD=changeme node server.js)", "Bash(echo \"started pid $!\")", "Bash(curl -sf http://127.0.0.1:3999/healthz)", "Bash(break)", "Bash(node /tmp/cl-test.mjs)", "Bash(echo \"exit: $?\")", "Bash(kill 92507)", "Bash(awk '/^\\\\.list-tab \\\\{/,/^}/' styles.css)", "Bash(awk '/^\\\\.list-tab-loc/,/^}/' styles.css)", "Bash(awk '/^\\\\.list-tab\\\\.active \\\\{/,/^}/' styles.css)", "Bash(rm -rf /tmp/cl-preview-data /tmp/cl-server.log /tmp/cl-test-data *)", "Bash(./build-deploy.sh)", "Bash(kill 93146 93148 93160 93162)", "Bash(pkill -f \"ssh.*10.1.1.5.*checklist-deploy\")", "Bash(echo \"EXIT=$?\")", "Bash(expect /tmp/sshstdin.exp 10.1.1.5 Christian Waters2010! ' *)", "Bash(expect /tmp/sshstdin.exp \"10.1.1.5\" \"Christian\" 'Waters2010!' \"REMOTE_PASS='Waters2010!' bash -s\" /tmp/verify.sh)", "Bash(rm -f checklist-deploy.tgz /tmp/verify.sh /tmp/deploy2.log /tmp/sshstdin.exp /tmp/deploy.sh)", "Bash(ls checklist-deploy.tgz)", "Bash(awk '/^\\(html|body|\\\\.app-container|header|\\\\.main-content|\\\\.app-wrap\\)[ ,{]/{p=1} p{print} /^}/{if\\(p\\)print\"---\"; p=0}' styles.css)", "Bash(awk '/^\\\\.modal-overlay[ ,{]/{p=1} p{print} /^}/{if\\(p\\)print\"---\"; p=0}' styles.css)", "Bash(awk '/function openLogin/{p=1} p{print} p&&/^ }/{exit}' app.js)", "Bash(grep -vE \"spawn|password:|chdir|^$\")", "Bash(grep -vE \"spawn|chdir|^$\")", "Bash(kill 96250 96254 96256)", "Bash(pkill -f \"ssh.*10.1.1.5.*checklists.backup\")", "Bash(pkill -f \"/tmp/sshbackup.exp\")", "Bash(pkill -9 -f \"ssh.*10.1.1.5.*checklists.backup\")", "Bash(awk '/^\\\\.list-tabs \\\\{/,/^}/' styles.css)", "Bash(awk '/^\\\\.tab-view[ ,{.]/{p=1} p{print} /^}/{if\\(p\\)print\"---\"; p=0}' styles.css)", "Bash(awk '/^\\\\.checklists-section \\\\{/,/^}/' styles.css)", "Bash(awk '/^\\\\.checklist-column \\\\{/,/^}/' styles.css)", "Bash(awk '/^\\\\.checklist-list \\\\{/,/^}/' styles.css)", "Bash(rm -rf /tmp/cl-preview-data *)", "Bash(grep -avE \"spawn|password:|chdir|^$\")", "Bash(expect /tmp/sshstdin.exp \"10.1.1.5\" \"Christian\" 'Waters2010!' \"echo PROBE_OK\" /dev/null)", "Bash(echo \"probe_exit=$?\")", "Bash(pkill -9 -f \"ssh.*10.1.1.5\")", "Bash(pkill -9 -f \"expect /tmp/sshstdin\")", "Bash(pkill -9 -f sshprobe)", "Bash(pkill -9 -f \"b5wgdco4c\")", "Bash(ps -p 99173 -o pid,command)", "Bash(kill -9 99173)", "Bash(chmod +x /tmp/run-deploy.sh)", "Bash(bash /tmp/run-deploy.sh)", "Bash(echo \"launcher exit=$?\")", "Bash(expect /tmp/sshstdin.exp \"10.1.1.5\" \"Christian\" 'Waters2010!' \"REMOTE_PASS='Waters2010!' sh -s\" /tmp/verify.sh)", "Bash(curl -sS -m 10 -o /dev/null -w \"healthz -> HTTP %{http_code}\\\\n\" https://check.watersmedia.org/healthz)", "Bash(curl -sS -m 10 https://check.watersmedia.org/)", "Bash(echo \"hide-lists toggle \\(D4\\): $\\(curl -sS -m 10 https://check.watersmedia.org/)", "Bash(rm -f checklist-deploy.tgz /tmp/deploy3.log /tmp/run-deploy.sh /tmp/sshhard.exp /tmp/verify.sh)", "Bash(rm -f /tmp/sshstdin.exp)", "Bash(sed -n '/function executiveSession/,/^}/p' server.js)", "Bash(sed -n '/function findExecutive/,/^}/p' server.js)", "Bash(curl -sS -m 10 -o /dev/null -w '%{http_code}' https://check.watersmedia.org/healthz)", "Bash(echo \"healthz: $\\(curl -sS -m 10 -o /dev/null -w '%{http_code}' https://check.watersmedia.org/healthz\\)\")", "Bash(curl -sS -m 10 https://check.watersmedia.org/app.js)", "Bash(echo \"exec rename button \\(data-exec-action=rename\\): $\\(curl -sS -m 10 https://check.watersmedia.org/app.js)", "Bash(echo \"team-login search box: $\\(curl -sS -m 10 https://check.watersmedia.org/)", "Bash(rm -rf /tmp/cl-preview-data)", "Bash(rm -f /Users/Studio/Documents/BandLineupDisplay/.claude/launch.json)", "Bash(rmdir /Users/Studio/Documents/BandLineupDisplay/.claude)", "Bash(node -c server/server.js)", "Bash(node -c server/public/app.js)", "Bash(echo \"exec scope badge \\(showScope in app.js\\): $\\(curl -sS -m 10 https://check.watersmedia.org/app.js)" ] } }