@bis-code/study-dash 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +18 -0
- package/.claude-plugin/plugin.json +19 -0
- package/.mcp.json +8 -0
- package/LICENSE +21 -0
- package/commands/dashboard.md +8 -0
- package/commands/import.md +12 -0
- package/commands/learn.md +13 -0
- package/hooks/hooks.json +27 -0
- package/package.json +36 -0
- package/rules/tutor-mode.md +38 -0
- package/server/dist/bundle.mjs +1240 -0
- package/server/dist/dashboard/api.d.ts +16 -0
- package/server/dist/dashboard/api.js +150 -0
- package/server/dist/dashboard/api.js.map +1 -0
- package/server/dist/dashboard/server.d.ts +21 -0
- package/server/dist/dashboard/server.js +171 -0
- package/server/dist/dashboard/server.js.map +1 -0
- package/server/dist/index.d.ts +2 -0
- package/server/dist/index.js +40 -0
- package/server/dist/index.js.map +1 -0
- package/server/dist/services/curriculum.d.ts +25 -0
- package/server/dist/services/curriculum.js +110 -0
- package/server/dist/services/curriculum.js.map +1 -0
- package/server/dist/services/exercises.d.ts +35 -0
- package/server/dist/services/exercises.js +215 -0
- package/server/dist/services/exercises.js.map +1 -0
- package/server/dist/services/qa.d.ts +15 -0
- package/server/dist/services/qa.js +30 -0
- package/server/dist/services/qa.js.map +1 -0
- package/server/dist/services/viz.d.ts +8 -0
- package/server/dist/services/viz.js +21 -0
- package/server/dist/services/viz.js.map +1 -0
- package/server/dist/storage/db.d.ts +11 -0
- package/server/dist/storage/db.js +51 -0
- package/server/dist/storage/db.js.map +1 -0
- package/server/dist/storage/files.d.ts +10 -0
- package/server/dist/storage/files.js +34 -0
- package/server/dist/storage/files.js.map +1 -0
- package/server/dist/storage/schema.d.ts +3 -0
- package/server/dist/storage/schema.js +126 -0
- package/server/dist/storage/schema.js.map +1 -0
- package/server/dist/tools/curriculum.d.ts +4 -0
- package/server/dist/tools/curriculum.js +137 -0
- package/server/dist/tools/curriculum.js.map +1 -0
- package/server/dist/tools/exercises.d.ts +4 -0
- package/server/dist/tools/exercises.js +76 -0
- package/server/dist/tools/exercises.js.map +1 -0
- package/server/dist/tools/qa.d.ts +4 -0
- package/server/dist/tools/qa.js +56 -0
- package/server/dist/tools/qa.js.map +1 -0
- package/server/dist/tools/viz.d.ts +4 -0
- package/server/dist/tools/viz.js +54 -0
- package/server/dist/tools/viz.js.map +1 -0
- package/server/dist/types.d.ts +103 -0
- package/server/dist/types.js +2 -0
- package/server/dist/types.js.map +1 -0
- package/server/node_modules/better-sqlite3/LICENSE +21 -0
- package/server/node_modules/better-sqlite3/README.md +99 -0
- package/server/node_modules/better-sqlite3/binding.gyp +38 -0
- package/server/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/server/node_modules/better-sqlite3/deps/common.gypi +68 -0
- package/server/node_modules/better-sqlite3/deps/copy.js +31 -0
- package/server/node_modules/better-sqlite3/deps/defines.gypi +41 -0
- package/server/node_modules/better-sqlite3/deps/download.sh +122 -0
- package/server/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +261480 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13715 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +719 -0
- package/server/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
- package/server/node_modules/better-sqlite3/deps/test_extension.c +21 -0
- package/server/node_modules/better-sqlite3/lib/database.js +90 -0
- package/server/node_modules/better-sqlite3/lib/index.js +3 -0
- package/server/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
- package/server/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
- package/server/node_modules/better-sqlite3/lib/methods/function.js +31 -0
- package/server/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
- package/server/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
- package/server/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
- package/server/node_modules/better-sqlite3/lib/methods/table.js +189 -0
- package/server/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
- package/server/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
- package/server/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
- package/server/node_modules/better-sqlite3/lib/util.js +12 -0
- package/server/node_modules/better-sqlite3/package.json +54 -0
- package/server/node_modules/better-sqlite3/src/better_sqlite3.cpp +2186 -0
- package/server/node_modules/better-sqlite3/src/better_sqlite3.hpp +1036 -0
- package/server/package.json +31 -0
- package/skills/import/SKILL.md +19 -0
- package/skills/learn/SKILL.md +17 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "study-dash-server",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"study-dash": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc && chmod +x dist/index.js",
|
|
14
|
+
"bundle": "esbuild src/index.ts --bundle --platform=node --target=node20 --format=esm --outfile=dist/bundle.mjs --external:better-sqlite3 --external:zod --external:@modelcontextprotocol/sdk --loader:.html=text --loader:.css=text --loader:.js=text",
|
|
15
|
+
"dev": "tsc --watch",
|
|
16
|
+
"test": "vitest run",
|
|
17
|
+
"test:watch": "vitest"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
21
|
+
"better-sqlite3": "^11.0.0",
|
|
22
|
+
"zod": "^3.25.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
26
|
+
"@types/node": "^22",
|
|
27
|
+
"esbuild": "^0.27.4",
|
|
28
|
+
"typescript": "^5.3.3",
|
|
29
|
+
"vitest": "^2.1.8"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Import Curriculum
|
|
3
|
+
description: Activates when user mentions importing PDFs, syllabi, creating new learning subjects, or setting up a curriculum from itslearning or roadmap.sh.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
When the user wants to import a curriculum or create a new learning subject:
|
|
8
|
+
|
|
9
|
+
1. **For PDFs**: Read the PDF using the Read tool. Classify the content:
|
|
10
|
+
- **Syllabus/curriculum**: Extract phases and topics, call `learn_create_subject` then `learn_import_curriculum`
|
|
11
|
+
- **Lecture slides**: Attach as notes to relevant topics via `learn_log_answer` with kind='note'
|
|
12
|
+
- **Assignments**: Create exercises via `learn_create_exercise` with type='assignment'
|
|
13
|
+
- If unsure about classification, ask the user to confirm
|
|
14
|
+
|
|
15
|
+
2. **For manual subjects**: Ask the user for the subject name and language, call `learn_create_subject`, then help them define phases and topics
|
|
16
|
+
|
|
17
|
+
3. **For roadmap.sh**: The user defines topics manually based on the roadmap. Help them structure it into phases and topics, then import via `learn_import_curriculum`
|
|
18
|
+
|
|
19
|
+
Always confirm the imported structure with the user before finalizing.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Learning Session
|
|
3
|
+
description: Activates when user asks questions about a subject they're studying. Auto-logs Q&A, manages topic progression, suggests visualizations and exercises.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
When the user is in a learning session (asking questions about a subject they're studying), follow these rules:
|
|
8
|
+
|
|
9
|
+
1. Check if there's an active subject and topic via `learn_get_progress`. If not, help the user set one up.
|
|
10
|
+
2. For every question the user asks about the subject:
|
|
11
|
+
- Call `learn_log_question` with the question text (markdown)
|
|
12
|
+
- Provide a thorough answer with examples
|
|
13
|
+
- Call `learn_log_answer` with a summary of the answer, passing the `question_id` to pair them
|
|
14
|
+
3. When the user finishes a topic, call `learn_mark_done`
|
|
15
|
+
4. Suggest the next topic when one is completed
|
|
16
|
+
|
|
17
|
+
Use the learn_* MCP tools for all operations. Never ask the user to manually track their progress.
|