be4d43105e
Node.js/Express backend + vanilla JS frontend. Features: real-time collaborative whiteboard (SSE), multi-page support, LaTeX formulas, shapes/connectors, coordinate systems, number lines, compass, zoom/pan, Catmull-Rom pencil smoothing, ruler/protractor with rotation & resize controls, minimap navigation overlay, auto-measurements, multi-page thumbnails sidebar, PNG export, page templates. Student/teacher workflows: classes, assignments, library, dashboard. Mobile responsive. SQLite (better-sqlite3). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
175 lines
12 KiB
JSON
175 lines
12 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(ast-index *)",
|
|
"Bash(node -e \"require\\(''./backend/src/controllers/sessionController.js''\\); console.log\\(''sessionController OK''\\)\")",
|
|
"Bash(node -e \"require\\(''./backend/src/controllers/courseController.js''\\); console.log\\(''courseController OK''\\)\")",
|
|
"Bash(node -e \"require\\(''''./backend/src/controllers/courseController.js''''\\); console.log\\(''''courseController OK''''\\)\")",
|
|
"Bash(node -e \"require\\(''''./backend/src/controllers/lessonController.js''''\\); console.log\\(''''lessonController OK''''\\)\")",
|
|
"Bash(node -e \"require\\(''''./backend/src/controllers/questionController.js''''\\); console.log\\(''''questionController OK''''\\)\")",
|
|
"Bash(node -e \"require\\(''''./backend/src/controllers/testController.js''''\\); console.log\\(''''testController OK''''\\)\")",
|
|
"Bash(node -e \":*)",
|
|
"Bash(grep -n \"case ''accordion''\" \"g:/Dev/Тесты/BQ-System/frontend/lesson-editor.html\")",
|
|
"Bash(grep -n \"case ''quote''\\\\|case ''checklist''\\\\|case ''button''\" \"g:/Dev/Тесты/BQ-System/frontend/lesson-editor.html\")",
|
|
"Bash(grep -n \"href=//theory\\\\|href=''''//theory''''\\\\|lesson-editor\\\\|editLesson\\\\|openEditor\" g:/Dev/Тесты/BQ-System/frontend/theory.html)",
|
|
"Bash(grep -v \"^.*://\\\\|//.*stat\")",
|
|
"Bash(ls \"g:/Dev/Тесты/BQ-System/frontend/\"*.html)",
|
|
"Bash(wc -l g:/Dev/Тесты/BQ-System/frontend/*.html)",
|
|
"Bash(grep -rn \"= ''//\\\\|= \"\"//\\\\|href=\"\"//\\\\|href=''//\\\\|href = ''//\\\\|href = \"\"//\\\\|\\\\.href = ''//\" \"g:/Dev/Тесты/BQ-System/frontend/\")",
|
|
"Bash(grep -v \"http\\\\|https\\\\|cdn\\\\|fonts\\\\|googleapis\\\\|jsdelivr\\\\|://\\\\|comment\\\\|//\")",
|
|
"Bash(grep -rn //course g:/Dev/Тесты/BQ-System/)",
|
|
"WebFetch(domain:hoster.by)",
|
|
"WebFetch(domain:www.websiteplanet.com)",
|
|
"WebFetch(domain:hostings.info)",
|
|
"Bash(head -10 grep -n \"^const stmts\\\\|^const _stmts\\\\|= db.prepare\\\\|db\\\\.prepare\" \"g:/Dev/Тесты/BQ-System/backend/src/controllers/assignmentController.js\")",
|
|
"Bash(node -e \"require\\(''./src/controllers/gamificationController''\\)\")",
|
|
"Bash(node -e \"require\\(''./src/controllers/classController''\\)\")",
|
|
"Bash(grep -rn \"BQ\\\\.notif\\\\.init\\\\|notif\\\\.init\" g:/Dev/Тесты/BQ-System/frontend/ --include=*.html)",
|
|
"Bash(grep -rn \"connectSSE\\\\|EventSource\" g:/Dev/Тесты/BQ-System/frontend/ --include=*.html)",
|
|
"Bash(grep -rn \"notif-item\\\\|notif-dot\\\\|notif-msg\\\\|notif-time\\\\|notif-empty\\\\|notif-read-all\" g:/Dev/Тесты/BQ-System/frontend/ --include=*.html)",
|
|
"Bash(grep -l 'href=\"\"/lab\"\"' frontend/*.html)",
|
|
"Bash(grep -rn \"notifications.js\" frontend/*.html)",
|
|
"Read(//g/Dev/Тесты/BQ-System/**)",
|
|
"Bash(python -c \":*)",
|
|
"WebFetch(domain:www.npmjs.com)",
|
|
"WebFetch(domain:medium.com)",
|
|
"WebFetch(domain:raw.githubusercontent.com)",
|
|
"WebFetch(domain:github.com)",
|
|
"WebFetch(domain:saturncloud.io)",
|
|
"WebFetch(domain:neilagrawal.com)",
|
|
"WebFetch(domain:mitchum.blog)",
|
|
"Bash(node src/db/seed-theory-2.js)",
|
|
"Bash(ls g:/Dev/Тесты/BQ-System/backend/src/db/seed*)",
|
|
"Bash(grep -r \"three\\\\|Three\\\\|babylon\\\\|Babylon\\\\|cesium\\\\|Cesium\\\\|webgl\\\\|WebGL\" g:/Dev/Тесты/BQ-System/frontend --include=*.html --include=*.js)",
|
|
"Bash(node src/db/seed-red-book.js)",
|
|
"Bash(grep -n \"requireAuth\\\\|optionalAuth\" \"g:/Dev/Тесты/BQ-System/backend/src/routes/\"*.js)",
|
|
"Bash(node -e \"require\\(''''./src/server.js''''\\)\")",
|
|
"Bash(node:*)",
|
|
"Bash(grep -v \"Use \\\\`node\")",
|
|
"Bash(node -e \"const db=require\\(''''./src/db/db''''\\); db.prepare\\(''''SELECT id,name_ru,category FROM rb_species WHERE id>=63 ORDER BY id''''\\).all\\(\\).forEach\\(r=>console.log\\(r.id,r.category,r.name_ru\\)\\); console.log\\(''''---''''\\); db.prepare\\(''''SELECT id,title,xp_reward FROM rb_quests ORDER BY id''''\\).all\\(\\).forEach\\(r=>console.log\\(r.id,r.xp_reward,r.title\\)\\); console.log\\(''''---''''\\); console.log\\(''''Видов:'''',db.prepare\\(''''SELECT COUNT\\(*\\) as n FROM rb_species''''\\).get\\(\\).n,''''Квестов:'''',db.prepare\\(''''SELECT COUNT\\(*\\) as n FROM rb_quests''''\\).get\\(\\).n,''''Связей:'''',db.prepare\\(''''SELECT COUNT\\(*\\) as n FROM rb_food_web''''\\).get\\(\\).n\\);\")",
|
|
"Bash(grep -n \"BQ.api.*features\\\\|/api/features\" frontend/*.html)",
|
|
"Bash(grep -l \"sb-link\\\\|sb-nav\" \"g:/Dev/Тесты/BQ-System/frontend/\"*.html)",
|
|
"Bash(python -c \"print\\(''hello''\\)\")",
|
|
"Bash(awk 'NR>=1180 && NR<=1200' backend/src/db/migrate.js)",
|
|
"Bash(awk 'NR>=1410 && NR<=1425' backend/src/db/migrate.js)",
|
|
"Bash(awk 'NR>=1465 && NR<=1490' backend/src/db/migrate.js)",
|
|
"Bash(node -e \"require\\(''''./backend/src/db/migrate''''\\)\")",
|
|
"Bash(ls g:/Dev/Тесты/BQ-System/frontend/biochem*.html)",
|
|
"Bash(grep -rn [😀-🙏🔬-🧪⚗️⚛️✓✗←→↑↓★☆✔✖👤🏫] g:/Dev/Тесты/BQ-System/frontend/ g:/Dev/Тесты/BQ-System/js/)",
|
|
"Bash(python /tmp/scan_emoji.py)",
|
|
"Bash(python scan_emoji.py)",
|
|
"Bash(python replace_emoji2.py)",
|
|
"Bash(find /g/Dev/Тесты/BQ-System/frontend -name \"*.html\" -exec head -5 {})",
|
|
"Bash(-print)",
|
|
"Bash(do echo:*)",
|
|
"Bash(head -15 grep -n \"bio-sidebar\\\\|bio-body\\\\|bio-panel\" \"g:/Dev/Тесты/BQ-System/frontend/biochem.html\")",
|
|
"Bash(head -3 grep -n \"</style>\" \"g:/Dev/Тесты/BQ-System/frontend/homework.html\")",
|
|
"Bash(head -3 grep -n \"</style>\" \"g:/Dev/Тесты/BQ-System/frontend/admin.html\")",
|
|
"Bash(head -3 grep -n \"</style>\" \"g:/Dev/Тесты/BQ-System/frontend/test-run.html\")",
|
|
"Bash(head -3 grep -n \"</style>\" \"g:/Dev/Тесты/BQ-System/frontend/flashcards.html\")",
|
|
"Bash(grep -l \"sb-foot\\\\|nav-user-chip\" \"g:/Dev/Тесты/BQ-System/frontend/\"*.html)",
|
|
"Bash(grep -l \"sb-foot\" \"g:/Dev/Тесты/BQ-System/frontend/\"*.html)",
|
|
"Bash(ls -la frontend/biochem*.html)",
|
|
"Bash(find g:/Dev/Тесты/BQ-System/js -name *.js)",
|
|
"Read(//.pp-hint/|/**)",
|
|
"Bash(grep -n \"id === ''waves''\" g:/Dev/Тесты/BQ-System/frontend/lab.html)",
|
|
"Bash(ls g:/Dev/Тесты/BQ-System/frontend/*.html)",
|
|
"Bash(grep -v \"//.*toast\")",
|
|
"Bash(do ast-index:*)",
|
|
"Bash(grep -v \"^$\")",
|
|
"Bash(echo \"FILE: $f\")",
|
|
"Bash(do python3 -c \":*)",
|
|
"Bash(ast-index search:*)",
|
|
"Bash(chmod +x \"g:/Dev/Тесты/BQ-System/backend/scripts/backup.sh\")",
|
|
"Read(//BQ/.initPage/**)",
|
|
"Read(//showBoardIfAllowed/**)",
|
|
"Bash(node -e \"require\\(''express-rate-limit''\\)\")",
|
|
"Bash(find g:DevТестыBQ-System -name *.sql -type f)",
|
|
"Read(//g/Dev/**)",
|
|
"Bash(ls g:/Dev/Тесты/BQ-System/.env*)",
|
|
"Bash(docker --version)",
|
|
"Bash(curl -s https://api.ipify.org)",
|
|
"Bash(curl -s --connect-timeout 5 http://45.132.194.53:3000/api/health)",
|
|
"Bash(curl -s --connect-timeout 8 http://45.132.194.53:3000/api/health)",
|
|
"Bash(grep -n \"title>\" /g/Dev/Тесты/BQ-System/frontend/*.html)",
|
|
"Bash(mv bioquantum.db learnspace.db)",
|
|
"Bash(mv bioquantum.db-shm learnspace.db-shm)",
|
|
"Bash(mv bioquantum.db-wal learnspace.db-wal)",
|
|
"Bash(taskkill //F //IM node.exe)",
|
|
"Bash(taskkill /F /PID 72676)",
|
|
"Bash(cmd /c \"taskkill /F /PID 72676\")",
|
|
"Bash(cmd /c \"taskkill /F /PID 72676 2>&1\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 72676 -Force\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id \\(Get-NetTCPConnection -LocalPort 3000 -State Listen\\).OwningProcess -Force\")",
|
|
"Bash(findstr /n /i \"draw\" frontend/classroom.html)",
|
|
"Bash(findstr /i \"allow\\\\|perm\\\\|grant\\\\|toggle\\\\|_can\")",
|
|
"Bash(findstr /n \"canDraw\" frontend/classroom.html)",
|
|
"Bash(taskkill /F /PID 56144)",
|
|
"Bash(cmd /c \"taskkill /F /PID 56144\")",
|
|
"Bash(cmd /c \"taskkill /F /PID 56144 2>&1\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 56144 -Force\")",
|
|
"Bash(findstr \"LISTENING\")",
|
|
"Bash(curl -s -X POST http://localhost:3000/api/auth/login -H 'Content-Type: application/json' -d '{\"email\":\"123@123.by\",\"password\":\"123456\"}')",
|
|
"Bash(powershell -Command \"Get-Process -Id 13632 -ErrorAction SilentlyContinue | Select-Object Id, ProcessName, MainWindowTitle\")",
|
|
"Bash(powershell -Command \"\\(Get-Process -Id 13632\\).Path\")",
|
|
"Bash(powershell -Command ':*)",
|
|
"Bash(curl -s http://localhost:3000/api/auth/login -X POST -H 'Content-Type: application/json' -d '{\"email\":\"admin@bq.local\",\"password\":\"123456\"}')",
|
|
"Bash(powershell -Command \"Stop-Process -Id 13632 -Force -ErrorAction SilentlyContinue\" sleep 1 cd \"g:/Dev/Тесты/BQ-System\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 13632 -Force\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 11320 -Force\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 44452 -Force\")",
|
|
"Bash(grep -rn \"function esc\\(s\\)\" frontend/*.html)",
|
|
"Bash(grep -rln \"Аналитика\\\\|Банк вопросов\\\\|Live-квиз\" frontend/*.html)",
|
|
"Bash(powershell -Command \"Stop-Process -Id 62712 -Force\")",
|
|
"Bash(findstr /i classroom)",
|
|
"Bash(powershell -Command \"Stop-Process -Id 71864 -Force\")",
|
|
"Bash(grep -n \"addClient\\\\|notifications/stream\" backend/src/controllers/*.js)",
|
|
"Bash(tasklist /FI \"IMAGENAME eq node.exe\")",
|
|
"Bash(taskkill /F /PID 24032)",
|
|
"Bash(powershell -Command \"Stop-Process -Id 24032 -Force -ErrorAction SilentlyContinue; Write-Output 'done'\")",
|
|
"Bash(ls frontend/gradebook*)",
|
|
"Bash(awk -F: '{print $1}')",
|
|
"Bash(npm --prefix backend run dev)",
|
|
"Bash(taskkill /PID 78248 /F)",
|
|
"Bash(cmd /c \"taskkill /PID 78248 /F\")",
|
|
"Bash(cmd /c \"taskkill /F /PID 78248\")",
|
|
"Bash(cmd /c \"taskkill /F /PID 78248 2>&1\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 78248 -Force -ErrorAction SilentlyContinue; Start-Sleep -Seconds 1; Get-Process -Id 78248 -ErrorAction SilentlyContinue\")",
|
|
"Bash(powershell -Command \"Get-NetTCPConnection -LocalPort 3000 -State Listen | Select-Object -ExpandProperty OwningProcess\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 45184 -Force\")",
|
|
"Bash(powershell -Command \"Start-Sleep 2; \\(Get-NetTCPConnection -LocalPort 3000 -State Listen -ErrorAction SilentlyContinue\\).OwningProcess\")",
|
|
"Read(//c/Users/Home/AppData/Local/Temp/**)",
|
|
"Bash(curl -s -I \"http://localhost:3000/js/api.js\")",
|
|
"Bash(curl -s \"http://localhost:3000/js/api.js\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 83740 -Force\")",
|
|
"Bash(powershell -Command \"\\(Get-NetTCPConnection -LocalPort 3000 -State Listen\\).OwningProcess\")",
|
|
"Bash(powershell -Command \"Get-Process -Id 57008 | Select-Object -ExpandProperty MainWindowTitle; \\(Get-WmiObject Win32_Process -Filter 'ProcessId=57008'\\).CommandLine\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 57008 -Force\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 37516 -Force\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 2764 -Force\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 81936 -Force\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 40888 -Force\")",
|
|
"Bash(powershell -Command \"\\(Get-WmiObject Win32_Process -Filter 'ProcessId=69696'\\).CommandLine\")",
|
|
"Bash(curl -s \"http://localhost:3000/api/classroom/1/cursor\" -X POST -H \"Content-Type: application/json\" -d '{\"x\":0,\"y\":0}')",
|
|
"Bash(powershell -Command \"Stop-Process -Id 69696 -Force\")",
|
|
"Bash(powershell -Command \"Start-Sleep 1\")",
|
|
"Bash(powershell -Command \"\\(Get-NetTCPConnection -LocalPort 3000 -State Listen -ErrorAction SilentlyContinue\\).OwningProcess\")",
|
|
"Bash(powershell -Command \"Stop-Process -Id 10880 -Force\")"
|
|
],
|
|
"additionalDirectories": [
|
|
"\\tmp"
|
|
]
|
|
},
|
|
"enabledPlugins": {
|
|
"ast-index@ast-index": true
|
|
},
|
|
"extraKnownMarketplaces": {
|
|
"ast-index": {
|
|
"source": {
|
|
"source": "github",
|
|
"repo": "defendend/Claude-ast-index-search"
|
|
}
|
|
}
|
|
}
|
|
}
|