LearnSpace: full-stack educational whiteboard platform
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>
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# ast-index Rules
|
||||
|
||||
## Mandatory Search Rules
|
||||
|
||||
1. **ALWAYS use ast-index FIRST** for any code search task
|
||||
2. **NEVER duplicate results** — if ast-index found usages/implementations, that IS the complete answer
|
||||
3. **DO NOT run grep "for completeness"** after ast-index returns results
|
||||
4. **Use grep/Search ONLY when:**
|
||||
- ast-index returns empty results
|
||||
- Searching for regex patterns (ast-index uses literal match)
|
||||
- Searching for string literals inside code (`"some text"`)
|
||||
- Searching in comments content
|
||||
|
||||
## Why ast-index
|
||||
|
||||
ast-index is 17-69x faster than grep (1-10ms vs 200ms-3s) and returns structured, accurate results.
|
||||
|
||||
## Command Reference
|
||||
|
||||
| Task | Command | Time |
|
||||
|------|---------|------|
|
||||
| Universal search | `ast-index search "query"` | ~10ms |
|
||||
| Find class/component | `ast-index class "ComponentName"` | ~1ms |
|
||||
| Find symbol | `ast-index symbol "SymbolName"` | ~1ms |
|
||||
| Find usages | `ast-index usages "SymbolName"` | ~8ms |
|
||||
| Find implementations | `ast-index implementations "Interface"` | ~5ms |
|
||||
| Call hierarchy | `ast-index call-tree "function" --depth 3` | ~1s |
|
||||
| Find callers | `ast-index callers "functionName"` | ~1s |
|
||||
| Module deps | `ast-index deps "module-name"` | ~10ms |
|
||||
| File outline | `ast-index outline "File.tsx"` | ~1ms |
|
||||
|
||||
## JavaScript-Specific Commands
|
||||
|
||||
| Task | Command |
|
||||
|------|---------|
|
||||
| Find classes | `ast-index class "ClassName"` |
|
||||
| Find functions | `ast-index symbol "functionName"` |
|
||||
| Find Express routes | `ast-index search "router.get"` |
|
||||
| File structure | `ast-index outline "path/to/file.js"` |
|
||||
|
||||
## Index Management
|
||||
|
||||
- `ast-index rebuild` — Full reindex (run once after clone)
|
||||
- `ast-index update` — After git pull/merge
|
||||
- `ast-index stats` — Show index statistics
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,231 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(cat \"g:/Dev/Тесты/BQ-System/backend/src/db/\"*.js)",
|
||||
"Bash(node -e \"const db = require\\(''./src/db/db''\\); const users = db.prepare\\(''SELECT id, email, name, role FROM users''\\).all\\(\\); console.log\\(JSON.stringify\\(users, null, 2\\)\\);\")",
|
||||
"Bash(wc -l \"g:/Dev/Тесты/BQ-System/frontend/\"*.html \"g:/Dev/Тесты/BQ-System/js/\"*.js)",
|
||||
"Bash(cat \"g:/Dev/Тесты/BQ-System/backend/src/db/migrations/\"*.sql)",
|
||||
"Bash(node src/db/migrate.js)",
|
||||
"Bash(node src/db/seed-math.js)",
|
||||
"Bash(npm install multer --save)",
|
||||
"Bash(node -e \":*)",
|
||||
"Bash(node export-math.js)",
|
||||
"Bash(rm export-math.js)",
|
||||
"Bash(node -e \"require\\(''./src/db/migrate''\\)\")",
|
||||
"Bash(node -e \"const db=require\\(''./src/db/db''\\); console.log\\(db.prepare\\(''PRAGMA table_info\\(tests\\)''\\).all\\(\\).map\\(c=>c.name\\).join\\('', ''\\)\\); console.log\\(db.prepare\\(''PRAGMA table_info\\(topics\\)''\\).all\\(\\).map\\(c=>c.name\\).join\\('', ''\\)\\);\")",
|
||||
"Bash(node -e \"require\\(''./src/controllers/adminController''\\)\")",
|
||||
"Bash(node -e \"require\\(''./backend/src/controllers/classController''\\)\")",
|
||||
"Bash(true\" \"g:/Dev/Тесты/BQ-System \")",
|
||||
"Bash(node -e \"try { require\\(''./backend/src/controllers/classController''\\); console.log\\(''OK''\\); } catch\\(e\\) { console.error\\(e.message\\); }\")",
|
||||
"Bash(node -e \"const db=require\\(''./backend/src/db/db''\\);try{db.prepare\\(''SELECT id FROM assignments LIMIT 1''\\).all\\(\\);console.log\\(''OK''\\)}catch\\(e\\){console.error\\(e.message\\)}\")",
|
||||
"Bash(curl -s http://localhost:3000/api/assignments/my -H \"Authorization: Bearer invalid_token\")",
|
||||
"Bash(curl -s http://localhost:3000/api/health)",
|
||||
"Bash(netstat -ano)",
|
||||
"Bash(findstr \":3000\")",
|
||||
"Bash(findstr LISTENING)",
|
||||
"Bash(taskkill /PID 28096 /F)",
|
||||
"Bash(node \"g:\\\\Dev\\\\Тесты\\\\BQ-System\\\\backend\\\\src\\\\server.js\")",
|
||||
"Bash(cmd //c \"taskkill /PID 28096 /F\")",
|
||||
"Bash(node -e \"require\\(''dotenv''\\).config\\({path:''./backend/.env''}\\); console.log\\(''JWT_SECRET:'', process.env.JWT_SECRET ? ''SET'' : ''MISSING''\\)\")",
|
||||
"Bash(node -e \"require\\(''dotenv''\\).config\\(\\); console.log\\(''JWT_SECRET:'', process.env.JWT_SECRET ? ''SET \\(''+process.env.JWT_SECRET.slice\\(0,10\\)+''...\\)'' : ''MISSING''\\)\")",
|
||||
"Bash(cmd //c \"taskkill /F /IM node.exe\")",
|
||||
"Bash(wc -l \"g:/Dev/Тесты/BQ-System/frontend\"/*.html)",
|
||||
"Bash(grep -n \"LIMIT 500\\\\|LIMIT 200\\\\|LIMIT 100\\\\|LIMIT 50\" \"g:/Dev/Тесты/BQ-System/backend/src/controllers/\"*.js)",
|
||||
"Bash(node -e \"const db = require\\(''./src/db/db''\\); console.log\\(JSON.stringify\\(db.prepare\\(''SELECT id,email,name,role FROM users''\\).all\\(\\)\\)\\)\")",
|
||||
"Bash(node seed.js)",
|
||||
"Bash(taskkill /F /IM node.exe)",
|
||||
"Bash(powershell -Command \"Get-Process node -ErrorAction SilentlyContinue | Stop-Process -Force; Write-Host ''done''\")",
|
||||
"Bash(timeout /t 8 /nobreak)",
|
||||
"Bash(timeout 5 node src/server.js)",
|
||||
"Bash(node -e \"const fs=require\\(''fs''\\);const emoji=/[\\\\u{1F300}-\\\\u{1FFFF}\\\\u{2600}-\\\\u{27BF}]/u;const files=[''frontend/classes.html'',''frontend/admin.html'',''frontend/board.html'',''frontend/library.html'',''frontend/dashboard.html''];let found=false;files.forEach\\(f=>{const lines=fs.readFileSync\\(f,''utf8''\\).split\\(''\\\\n''\\);lines.forEach\\(\\(l,i\\)=>{if\\(emoji.test\\(l\\)\\){console.log\\(f+'':''+\\(i+1\\)+'': ''+l.trim\\(\\).slice\\(0,120\\)\\);found=true;}}\\);}\\);if\\(found===false\\)console.log\\(''No emojis found''\\);\")",
|
||||
"Bash(grep -v \"//.*innerHTML\")",
|
||||
"Bash(grep \"innerHTML\\\\|template\\\\|backtick\\\\|\\\\`\")",
|
||||
"Bash(node -e \"console.log\\(require\\(''crypto''\\).randomBytes\\(32\\).toString\\(''hex''\\)\\)\")",
|
||||
"Bash(node -e \"const db = require\\(''better-sqlite3''\\)\\(''g:/Dev/Тесты/BQ-System/backend/bioquantum.db''\\); const users = db.prepare\\(''SELECT id, email, name, role FROM users WHERE role = ?''\\).all\\(''admin''\\); console.log\\(JSON.stringify\\(users, null, 2\\)\\);\")",
|
||||
"Bash(node -e \"const db = require\\(''better-sqlite3''\\)\\(''bioquantum.db''\\); const users = db.prepare\\(''SELECT id, email, name, role FROM users WHERE role = ?''\\).all\\(''admin''\\); console.log\\(JSON.stringify\\(users, null, 2\\)\\);\")",
|
||||
"Bash(node -e \"const db = require\\(''./node_modules/better-sqlite3''\\)\\(''bioquantum.db''\\); const users = db.prepare\\(''SELECT id, email, name, role FROM users WHERE role = ?''\\).all\\(''admin''\\); console.log\\(JSON.stringify\\(users, null, 2\\)\\);\")",
|
||||
"Bash(ls g:/Dev/Тесты/BQ-System/backend/node_modules/.bin/better*)",
|
||||
"Bash(node -e \"const db = require\\(''''./src/db/db''''\\); const users = db.prepare\\(''''SELECT id, email, name, role FROM users''''\\).all\\(\\); console.log\\(JSON.stringify\\(users, null, 2\\)\\);\")",
|
||||
"Bash(where ast-index:*)",
|
||||
"Bash(ast-index --version)",
|
||||
"Bash(ast-index rebuild:*)",
|
||||
"Bash(ast-index stats:*)",
|
||||
"Bash(ast-index outline:*)",
|
||||
"Bash(ast-index search:*)",
|
||||
"Bash(find g:/Dev/Тесты/BQ-System/backend -name *.db -o -name *.sqlite)",
|
||||
"Bash(node src/db/seed-ct2021-v1.js)",
|
||||
"Bash(pip list:*)",
|
||||
"Bash(where pdftoppm:*)",
|
||||
"Bash(where pdfimages:*)",
|
||||
"Bash(where magick:*)",
|
||||
"Bash(where gs:*)",
|
||||
"Bash(pdftoppm --help)",
|
||||
"Bash(python3 -c 'import fitz')",
|
||||
"Bash(pip install:*)",
|
||||
"Bash(python3 -c \"import fitz; print\\(''ok''\\)\")",
|
||||
"Bash(python -c \"import fitz; print\\(''ok''\\)\")",
|
||||
"Bash(where pip:*)",
|
||||
"Bash(where pip3:*)",
|
||||
"Bash(where python:*)",
|
||||
"Bash(where python3:*)",
|
||||
"Bash(where py:*)",
|
||||
"Bash(python -c \"import sys; print\\(sys.version\\)\")",
|
||||
"Bash(cmd /c \"python --version\")",
|
||||
"Bash(cmd /c \"where python\")",
|
||||
"Bash(where convert:*)",
|
||||
"Bash(where pnmcut:*)",
|
||||
"Bash(where ffmpeg:*)",
|
||||
"Bash(scoop list:*)",
|
||||
"Bash(cp /tmp/ct2021-06.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/page6.png\")",
|
||||
"Bash(cp /tmp/ct2021-07.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/page7.png\")",
|
||||
"Bash(cp /tmp/ct2021-08.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/page8.png\")",
|
||||
"Bash(cp /tmp/ct2021-09.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/page9.png\")",
|
||||
"Bash(node -e \"const s = require\\(''sharp''\\); console.log\\(''ok''\\)\")",
|
||||
"Bash(node src/db/crop_images.js)",
|
||||
"Bash(pdftoppm -png -r 50 -f 6 -l 6 \"g:/Dev/Тесты/BQ-System/ЦТ-ЦЭ/ЦТ 2021.pdf\" \"/tmp/small\")",
|
||||
"Bash(cp /tmp/small-06.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/small6.png\")",
|
||||
"Bash(pdftoppm -png -r 50 -f 7 -l 9 \"g:/Dev/Тесты/BQ-System/ЦТ-ЦЭ/ЦТ 2021.pdf\" \"/tmp/small\")",
|
||||
"Bash(cp /tmp/small-07.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/small7.png\")",
|
||||
"Bash(cp /tmp/small-08.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/small8.png\")",
|
||||
"Bash(cp /tmp/small-09.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/small9.png\")",
|
||||
"Bash(cp /tmp/pt-06.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/pt6.png\")",
|
||||
"Bash(node -e \"const s=require\\(''sharp''\\); s\\(''../frontend/img/questions/pt6.png''\\).metadata\\(\\).then\\(m=>console.log\\(m.width, m.height\\)\\)\")",
|
||||
"Bash(cp /tmp/pt-07.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/pt7.png\")",
|
||||
"Bash(cp /tmp/pt-08.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/pt8.png\")",
|
||||
"Bash(cp /tmp/pt-09.png \"g:/Dev/Тесты/BQ-System/frontend/img/questions/pt9.png\")",
|
||||
"Bash(head -15 grep -n \"^class\\\\|fit\\(\\)\\\\|start\\(\\)\\\\|stop\\(\\)\\\\|reset\\(\\)\\\\|setT\" \"g:/Dev/Тесты/BQ-System/frontend/js/labs/states.js\")",
|
||||
"Bash(npx ast-index:*)",
|
||||
"Bash(npm info:*)",
|
||||
"Bash(head -10 node -e \"require\\(''''acorn''''\\); console.log\\(''''acorn ok''''\\)\")",
|
||||
"Bash(winget list:*)",
|
||||
"Bash(ast-index install-claude-plugin:*)",
|
||||
"Bash(npm list:*)",
|
||||
"Read(//c/Users/Home/AppData/Roaming/npm/**)",
|
||||
"Bash(grep -n \"sim-gas\\\\|sim-diff\\\\|soon.*Кинетика\\\\|reactions\\\\|chem-react\\\\|Химические\\\\|id: ''''gas''''\\\\|id: ''''diff''''\" frontend/lab.html)",
|
||||
"Bash(grep -n \"id: ''reactions''\" frontend/lab.html)",
|
||||
"Bash(awk 'NR>=1813 && NR<=1820' frontend/lab.html)",
|
||||
"Bash(node --check \"g:/Dev/Тесты/BQ-System/frontend/js/labs/flask.js\")",
|
||||
"Bash(xargs -I {} basename {})",
|
||||
"Bash(find \"g:/Dev/Тесты/BQ-System/backend/src/db/migrations\" -name \"*.sql\" -exec wc -l {} +)",
|
||||
"Bash(grep -n \"case ''callout''\\\\|case ''video''\\\\|case ''table''\\\\|case ''flashcard''\\\\|case ''sim''\\\\|toggleNotes\\\\|saveNote\\\\|notes-panel\" \"g:/Dev/Тесты/BQ-System/frontend/lesson.html\")",
|
||||
"Bash(ast-index symbol:*)",
|
||||
"WebSearch",
|
||||
"Bash(ast-index version:*)",
|
||||
"Bash(node --check \"g:/Dev/Тесты/BQ-System/frontend/js/labs/stereo.js\")",
|
||||
"Bash(curl -s -o /dev/null -w \"%{http_code}\" http://localhost:3000/js/labs/stereo.js)",
|
||||
"Bash(node -e \"global.THREE = {}; try { require\\(''g:/Dev/Тесты/BQ-System/frontend/js/labs/stereo.js''\\); console.log\\(''OK, StereoSim:'', typeof StereoSim\\); } catch\\(e\\) { console.log\\(''Error:'', e.message\\); }\")",
|
||||
"Bash(xxd \"g:/Dev/Тесты/BQ-System/frontend/js/labs/stereo.js\")",
|
||||
"Bash(curl -sL \"https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.min.js\")",
|
||||
"Bash(curl -sL \"https://cdn.jsdelivr.net/npm/three@0.160.0/build/three.min.js\")",
|
||||
"Bash(curl -sL \"https://cdn.jsdelivr.net/npm/three@0.149.0/build/three.min.js\")",
|
||||
"Bash(node -c \"g:/Dev/Тесты/BQ-System/frontend/js/labs/stereo.js\")",
|
||||
"Bash(node -c \"g:/Dev/Тесты/BQ-System/frontend/js/labs/triangle.js\")",
|
||||
"Bash(node -c frontend/js/labs/forcesandbox.js)",
|
||||
"Bash(grep -E \"\\\\.js$\")",
|
||||
"Bash(ls -la /g/Dev/Тесты/BQ-System/frontend/*.html)",
|
||||
"Bash(xargs grep:*)",
|
||||
"Bash(grep -r \"xp\\\\|level\\\\|badge\\\\|achievement\\\\|streak\\\\|reward\\\\|points\\\\|gamif\" /g/Dev/Тесты/BQ-System/backend/src/ --include=*.js)",
|
||||
"Bash(node -c backend/src/controllers/gamificationController.js)",
|
||||
"Bash(node -c backend/src/controllers/classController.js)",
|
||||
"Bash(node -c js/api.js)",
|
||||
"Bash(node -c backend/src/controllers/sessionController.js)",
|
||||
"Bash(node -c \"g:/Dev/Тесты/BQ-System/backend/src/controllers/sessionController.js\")",
|
||||
"Bash(node -c \"g:/Dev/Тесты/BQ-System/backend/src/controllers/gamificationController.js\")",
|
||||
"Bash(node -c \"g:/Dev/Тесты/BQ-System/backend/src/routes/gamification.js\")",
|
||||
"Bash(node -c \"g:/Dev/Тесты/BQ-System/backend/src/db/migrate.js\")",
|
||||
"Bash(node -c \"g:/Dev/Тесты/BQ-System/js/api.js\")",
|
||||
"Bash(python3:*)",
|
||||
"Bash(for f:*)",
|
||||
"Bash(do echo:*)",
|
||||
"Read(//g/Dev/Тесты/BQ-System/**)",
|
||||
"Bash(done)",
|
||||
"Bash(ls -lh /g/Dev/Тесты/BQ-System/frontend/*.html)",
|
||||
"Bash(wc -l /g/Dev/Тесты/BQ-System/backend/src/controllers/*.js)",
|
||||
"Bash(node -c backend/src/controllers/shopController.js)",
|
||||
"Bash(node -c backend/src/controllers/templateController.js)",
|
||||
"Bash(node -c backend/src/routes/shop.js)",
|
||||
"Bash(node -c backend/src/routes/templates.js)",
|
||||
"Bash(node -c backend/src/server.js)",
|
||||
"Bash(node -c backend/src/controllers/lessonController.js)",
|
||||
"Bash(node -c backend/src/db/migrate.js)",
|
||||
"Bash(xargs basename:*)",
|
||||
"Bash(node -c backend/src/controllers/permissionsController.js)",
|
||||
"Bash(node -c backend/src/middleware/auth.js)",
|
||||
"Bash(node -c backend/src/routes/gamification.js)",
|
||||
"Bash(node -c backend/src/routes/courses.js)",
|
||||
"Bash(wc -l frontend/*.html)",
|
||||
"Bash(find backend/src/controllers -name \"*.js\" -exec wc -l {} +)",
|
||||
"Bash(find . -name test* -o -name *test.js -o -name spec*)",
|
||||
"Bash(grep \"Error\\\\|error\\\\|TODO\\\\|FIXME\" backend/src/controllers/*.js)",
|
||||
"Bash(grep -i \"not implemented\\\\|unimplemented\\\\|coming soon\\\\|not yet\" backend/src/controllers/*.js frontend/*.html)",
|
||||
"Bash(grep \"res.status\\(501\\\\|status: 501\\\\|res.json\\({.*disabled\\\\|res.json\\({.*not_implemented\" backend/src/controllers/*.js)",
|
||||
"Bash(xargs wc:*)",
|
||||
"Bash(grep -r \"editor\\\\|sandbox\\\\|molecule\" g:/Dev/Тесты/BQ-System/frontend/js/labs/*.js)",
|
||||
"Bash(node -c frontend/js/labs/chemsandbox.js)",
|
||||
"Bash(ls frontend/*.html)",
|
||||
"Bash(node -e \"try { require\\(''./backend/src/middleware/validate''\\); console.log\\(''validate.js OK''\\); } catch\\(e\\) { console.error\\(e.message\\); }\")",
|
||||
"Bash(node --test tests/auth.test.js)",
|
||||
"Bash(node --test tests/shop.test.js)",
|
||||
"Bash(node --test tests/sessions.test.js)",
|
||||
"Bash(npm test:*)",
|
||||
"Bash(find g:/Dev/Тесты/BQ-System/frontend/js/labs -type f -name *.js)",
|
||||
"Bash(grep \"\\\\.js$\")",
|
||||
"Bash(grep -r \"TODO\\\\|FIXME\\\\|скоро\\\\|coming soon\\\\|ТОТО\\\\|XXX\" g:/Dev/Тесты/BQ-System --include=*.js --include=*.html --include=*.css)",
|
||||
"Bash(wc -l \"g:/Dev/Тесты/BQ-System/backend/tests\"/*.js)",
|
||||
"Bash(grep -r \"скоро\\\\|coming soon\\\\|TODO\\\\|FIXME\" g:/Dev/Тесты/BQ-System --include=*.js --include=*.html --exclude-dir=node_modules)",
|
||||
"Bash(find g:/Dev/Тесты/BQ-System -name *.json -path */data/*)",
|
||||
"Bash(grep -E \"\\\\.\\(js|html\\)$\")",
|
||||
"Bash(find /g/Dev/Тесты/BQ-System -name *.json -path */data/*)",
|
||||
"Bash(node src/db/seed-theory.js)",
|
||||
"Bash(timeout 5 node -e \"require\\(''./src/controllers/lessonController''\\);require\\(''./src/controllers/courseController''\\);console.log\\(''✓ Controllers OK''\\)\")",
|
||||
"Bash(node -e \"require\\(''./src/controllers/bookmarkController''\\); require\\(''./src/routes/bookmarks''\\); console.log\\(''✓ Bookmarks OK''\\)\")",
|
||||
"Bash(node -e \"require\\(''./src/controllers/searchController''\\); console.log\\(''✓ Search OK''\\)\")",
|
||||
"Bash(node -e \"require\\(''./src/db/migrate''\\); require\\(''./src/controllers/sessionController''\\); console.log\\(''✓ OK''\\)\")",
|
||||
"Bash(node --check \"g:/Dev/Тесты/BQ-System/frontend/js/labs/projectile.js\")",
|
||||
"Bash(node --check \"g:/Dev/Тесты/BQ-System/frontend/js/labs/collision.js\")",
|
||||
"Bash(node --check frontend/js/labs/gas.js)",
|
||||
"Bash(node --check frontend/js/labs/brownian.js)",
|
||||
"Bash(node --check frontend/js/labs/states.js)",
|
||||
"Bash(node --check frontend/js/labs/diffusion.js)",
|
||||
"Bash(node --check \"G:\\\\Dev\\\\Тесты\\\\BQ-System\\\\frontend\\\\js\\\\labs\\\\states.js\")",
|
||||
"Bash(xargs ls:*)",
|
||||
"Bash(find \"g:/Dev/Тесты/BQ-System\" -type f \\\\\\( -name \"*.js\" -o -name \"*.html\" -o -name \"*.css\" \\\\\\) -not -path \"*/node_modules/*\" -exec wc -l {} +)",
|
||||
"Bash(head -10 grep -n \"info\\(\\)\\\\|_emitUpdate\\\\|onUpdate\" \"g:/Dev/Тесты/BQ-System/frontend/js/labs/photosynthesis.js\")",
|
||||
"Bash(grep -n \"^ </div>$\\\\|^ </div>\" \"g:/Dev/Тесты/BQ-System/frontend/admin.html\")",
|
||||
"Bash(grep -v \"<!-\\\\|//\")",
|
||||
"Bash(grep -roh [a-z-]*.html g:/Dev/Тесты/BQ-System/js/)",
|
||||
"Bash(grep -l \"@view-transition\\\\|view-transition\" g:/Dev/Тесты/BQ-System/frontend/*.html)",
|
||||
"Bash(npm install:*)",
|
||||
"Bash(grep -n \"SIMS\\\\|id: null\\\\|cat: ''''phys''''\" frontend/lab.html)",
|
||||
"Bash(grep -n \"sim-chemsandbox\\\\|_openChemSandbox\\\\|chemSand\\\\|case ''''chemsandbox''''\" frontend/lab.html)",
|
||||
"Bash(grep -n \"case ''''chemsandbox''''\\\\|case ''''crystal''''\\\\|_openChem\\\\|openSim\\\\b\" frontend/lab.html)",
|
||||
"Bash(grep -n \"cat: ''''game\\\\|gp-section.*игр\\\\|CATS\\\\b\\\\|cats\\\\b\\\\|filterCat\\\\|cat === \" frontend/lab.html)",
|
||||
"Bash(node -e \"require\\(''''./frontend/js/labs/angrybirds.js''''\\)\")",
|
||||
"Bash(node -e \"require\\(''./frontend/js/labs/angrybirds.js''\\)\")",
|
||||
"Bash(wc -l frontend/js/labs/*.js)",
|
||||
"Bash(node -e \"require\\(''''./g:/Dev/Тесты/BQ-System/backend/src/server.js''''\\)\")",
|
||||
"Bash(node -e \"const db=require\\(''./backend/src/db/db''\\); const cols=db.prepare\\(''PRAGMA table_info\\(questions\\)''\\).all\\(\\); console.log\\(cols.map\\(c=>c.name+'':''+c.type\\).join\\(''\\\\n''\\)\\)\")",
|
||||
"Bash(node -e \"const db=require\\(''./backend/src/db/db''\\); console.log\\(''phys questions:'', db.prepare\\(\"\"SELECT COUNT\\(*\\) as n FROM questions q JOIN subjects s ON s.id=q.subject_id WHERE s.slug=''phys''\"\"\\).get\\(\\).n\\); console.log\\(''total questions:'', db.prepare\\(''SELECT COUNT\\(*\\) as n FROM questions''\\).get\\(\\).n\\);\")",
|
||||
"Bash(node -e \"const db=require\\(''./backend/src/db/db''\\); const q=db.prepare\\(''SELECT s.slug, COUNT\\(*\\) as n FROM questions q JOIN subjects s ON s.id=q.subject_id GROUP BY s.slug''\\).all\\(\\); console.log\\(q\\);\")",
|
||||
"Bash(node src/db/seed-phys.js)",
|
||||
"Bash(node src/db/seed-chem.js)",
|
||||
"Bash(node src/db/dedup-bio.js)",
|
||||
"Bash(node -e \"const db=require\\(''./src/db/db''\\); console.log\\(db.prepare\\(\"\"SELECT sql FROM sqlite_master WHERE name=''bookmarks''\"\"\\).get\\(\\).sql\\)\")",
|
||||
"Bash(find g:/Dev/Тесты/BQ-System -name *.bak -o -name *.old -o -name *.tmp -o -name *.orig)",
|
||||
"Bash(head -20 echo --- find g:/Dev/Тесты/BQ-System -name test*.js -not -path */node_modules/*)",
|
||||
"Bash(grep -rn \"href.*homework\\\\|href.*theory\\\\|href.*gradebook\" g:/Dev/Тесты/BQ-System/frontend/ --include=*.html)",
|
||||
"Bash(wc -l /g/Dev/Тесты/BQ-System/frontend/*.html)",
|
||||
"Bash(node -e \"const db=require\\(''./src/db/db''\\); const tables=db.prepare\\(\"\"SELECT name FROM sqlite_master WHERE type=''table'' ORDER BY name\"\"\\).all\\(\\); tables.forEach\\(t=>console.log\\(t.name\\)\\)\")",
|
||||
"Bash(grep -o 'https://[^\"\"\"\"'''' ]*' /g/Dev/Тесты/BQ-System/frontend/*.html)",
|
||||
"Bash(wc -l seed*.js pool.js crop_images.js dedup-bio.js)",
|
||||
"Bash(grep -E \"$\\\\{.*name.*\\\\}\")",
|
||||
"Bash(grep -n \"function esc\" frontend/*.html js/*.js)",
|
||||
"Bash(node -e \"const src=require\\(''fs''\\).readFileSync\\(''frontend/lab.html'',''utf8''\\); [''gas'',''brownian'',''states'',''diffusion'',''reactions''].forEach\\(n=>{const idx=src.indexOf\\(''id=\"\"''+n+''-canvas\"\"''\\); const ctx=src.substring\\(Math.max\\(0,idx-200\\),idx\\); console.log\\(n+'': ''+\\(/proj-canvas-outer/.test\\(ctx\\)?''proj-canvas-outer'':''OTHER''\\)\\);}\\)\")",
|
||||
"Bash(node -e \"const src=require\\(''fs''\\).readFileSync\\(''frontend/dashboard.html'',''utf8''\\); const lines=src.split\\(''\\\\n''\\); const g=[''esc'',''parseDate'',''fmtRelTime'',''safeHref'',''connectSSE'']; for\\(let i=0;i<lines.length;i++\\){for\\(const n of g\\){if\\(lines[i].includes\\(''const ''+n+'' ''\\)||lines[i].includes\\(''const ''+n+''=''\\)\\)console.log\\(\\(i+1\\)+'': ''+lines[i].trim\\(\\).substring\\(0,100\\)\\);}}\")",
|
||||
"Bash(python \"C:\\\\Users\\\\Home\\\\.claude\\\\skills\\\\ui-ux-pro-max\\\\scripts\\\\search.py\" \"education platform login auth dark premium\" --design-system -p \"LearnSpace\" -f markdown)",
|
||||
"Bash(python \"C:\\\\Users\\\\Home\\\\.claude\\\\skills\\\\ui-ux-pro-max\\\\scripts\\\\search.py\" \"premium dark SaaS auth fullscreen immersive\" --domain style -n 3)",
|
||||
"Bash(grep -E \"\\\\.\\(js|json|html\\)$\")",
|
||||
"Bash(grep -n \"EventSource\" /g/Dev/Тесты/BQ-System/frontend/*.html)"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user