@bis-code/study-dash 0.5.1 → 0.7.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/plugin.json +1 -1
- package/README.md +20 -1
- package/hooks/hooks.json +1 -1
- package/package.json +2 -2
- package/rules/tutor-mode.md +12 -0
- package/server/dist/bundle.mjs +201 -47
- package/server/dist/dashboard/api.js +1 -1
- package/server/dist/dashboard/api.js.map +1 -1
- package/server/dist/languages.d.ts +23 -0
- package/server/dist/languages.js +89 -0
- package/server/dist/languages.js.map +1 -0
- package/server/dist/services/exercises.d.ts +5 -0
- package/server/dist/services/exercises.js +38 -41
- package/server/dist/services/exercises.js.map +1 -1
- package/server/dist/tools/curriculum.js +8 -0
- package/server/dist/tools/curriculum.js.map +1 -1
- package/server/dist/tools/exercises.js +62 -0
- package/server/dist/tools/exercises.js.map +1 -1
- package/server/package.json +1 -1
- package/server/start.sh +12 -0
- package/skills/learn/SKILL.md +20 -0
- package/server/node_modules/better-sqlite3/LICENSE +0 -21
- package/server/node_modules/better-sqlite3/README.md +0 -99
- package/server/node_modules/better-sqlite3/binding.gyp +0 -38
- package/server/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/server/node_modules/better-sqlite3/deps/common.gypi +0 -68
- package/server/node_modules/better-sqlite3/deps/copy.js +0 -31
- package/server/node_modules/better-sqlite3/deps/defines.gypi +0 -41
- package/server/node_modules/better-sqlite3/deps/download.sh +0 -122
- package/server/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -261480
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -13715
- package/server/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -719
- package/server/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
- package/server/node_modules/better-sqlite3/deps/test_extension.c +0 -21
- package/server/node_modules/better-sqlite3/lib/database.js +0 -90
- package/server/node_modules/better-sqlite3/lib/index.js +0 -3
- package/server/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
- package/server/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
- package/server/node_modules/better-sqlite3/lib/methods/function.js +0 -31
- package/server/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
- package/server/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
- package/server/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
- package/server/node_modules/better-sqlite3/lib/methods/table.js +0 -189
- package/server/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
- package/server/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
- package/server/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
- package/server/node_modules/better-sqlite3/lib/util.js +0 -12
- package/server/node_modules/better-sqlite3/package.json +0 -54
- package/server/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -2186
- package/server/node_modules/better-sqlite3/src/better_sqlite3.hpp +0 -1036
package/README.md
CHANGED
|
@@ -69,6 +69,7 @@ Mobile-responsive: bottom nav on phones, sidebar on desktop.
|
|
|
69
69
|
| `learn_mark_done` | Mark a topic as completed |
|
|
70
70
|
| `learn_get_progress` | Get completion stats |
|
|
71
71
|
| `learn_get_curriculum` | Get the full topic tree |
|
|
72
|
+
| `learn_list_subjects` | List all available subjects |
|
|
72
73
|
|
|
73
74
|
### Q&A
|
|
74
75
|
| Tool | Description |
|
|
@@ -89,6 +90,9 @@ Mobile-responsive: bottom nav on phones, sidebar on desktop.
|
|
|
89
90
|
| `learn_create_exercise` | Create a coding exercise, quiz, project, or assignment |
|
|
90
91
|
| `learn_run_tests` | Execute tests and return pass/fail results |
|
|
91
92
|
| `learn_get_exercises` | List exercises for the current topic |
|
|
93
|
+
| `learn_submit_quiz` | Submit quiz answers and get scored results |
|
|
94
|
+
| `learn_get_exercise_files` | Get source code files for a coding exercise |
|
|
95
|
+
| `learn_save_exercise_files` | Save updated source code for a coding exercise |
|
|
92
96
|
|
|
93
97
|
## Hooks
|
|
94
98
|
|
|
@@ -110,11 +114,25 @@ Mobile-responsive: bottom nav on phones, sidebar on desktop.
|
|
|
110
114
|
|
|
111
115
|
| Type | Validation |
|
|
112
116
|
|------|-----------|
|
|
113
|
-
| **Coding** | Real test execution (`go test`, `pytest`, `cargo test`, `vitest`) |
|
|
117
|
+
| **Coding** | Real test execution — language-aware (`go test`, `pytest`, `cargo test`, `vitest`) |
|
|
114
118
|
| **Quiz** | Multiple choice, true/false, fill-in-the-blank — scored in dashboard |
|
|
115
119
|
| **Project** | Larger exercises with acceptance criteria and test files |
|
|
116
120
|
| **Assignment** | Imported from school PDFs with grading criteria |
|
|
117
121
|
|
|
122
|
+
## Supported Languages
|
|
123
|
+
|
|
124
|
+
Coding exercises use the correct file naming, test runner, and scaffold files per language. Adding a new language is a single entry in `server/src/languages.ts`.
|
|
125
|
+
|
|
126
|
+
| Language | Files | Test Runner | Scaffold |
|
|
127
|
+
|----------|-------|-------------|----------|
|
|
128
|
+
| Go | `main.go` + `main_test.go` | `go test` | `go.mod` |
|
|
129
|
+
| Python | `main.py` + `test_main.py` | `pytest` | — |
|
|
130
|
+
| Rust | `main.rs` + `main_test.rs` | `cargo test` | `Cargo.toml` |
|
|
131
|
+
| TypeScript | `main.ts` + `main.test.ts` | `vitest` | `package.json` |
|
|
132
|
+
| JavaScript | `main.ts` + `main.test.ts` | `vitest` | `package.json` |
|
|
133
|
+
|
|
134
|
+
Non-coding subjects (no language set) support quizzes and assignments only.
|
|
135
|
+
|
|
118
136
|
## Settings
|
|
119
137
|
|
|
120
138
|
| Setting | Default | Description |
|
|
@@ -129,6 +147,7 @@ Single Node.js process with layered internals:
|
|
|
129
147
|
```
|
|
130
148
|
Transport: MCP Tools (stdio) + HTTP API (dashboard)
|
|
131
149
|
Services: CurriculumService | QAService | VizService | ExerciseService
|
|
150
|
+
Config: Language Registry (languages.ts)
|
|
132
151
|
Storage: SQLite (better-sqlite3) + File System (exercises)
|
|
133
152
|
```
|
|
134
153
|
|
package/hooks/hooks.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"matcher": "learn_mark_done",
|
|
6
6
|
"hooks": [{
|
|
7
7
|
"type": "prompt",
|
|
8
|
-
"prompt": "The user just completed a topic. Generate 2-3 exercises for this topic using learn_create_exercise.
|
|
8
|
+
"prompt": "The user just completed a topic. Generate 2-3 exercises for this topic using learn_create_exercise. If the subject has a programming language, include at least one coding exercise (with starter_code and test_content following the language's conventions) and one quiz. If the subject has no language, create only quiz or assignment exercises. Match the difficulty to the topic content."
|
|
9
9
|
}]
|
|
10
10
|
},
|
|
11
11
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bis-code/study-dash",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Claude Code plugin for structured learning on any subject — dashboard, Q&A logging, visualizations, exercises",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ioan-Sorin Baicoianu <baicoianuioansorin@gmail.com>",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
".claude-plugin",
|
|
24
24
|
"server/dist",
|
|
25
25
|
"server/package.json",
|
|
26
|
-
"server/
|
|
26
|
+
"server/start.sh",
|
|
27
27
|
"commands",
|
|
28
28
|
"skills",
|
|
29
29
|
"hooks",
|
package/rules/tutor-mode.md
CHANGED
|
@@ -33,6 +33,18 @@ All logged content MUST be markdown:
|
|
|
33
33
|
- Point out common mistakes and gotchas
|
|
34
34
|
- Adapt language and depth to the subject domain
|
|
35
35
|
|
|
36
|
+
## Exercise Generation
|
|
37
|
+
|
|
38
|
+
When creating exercises for coding subjects, follow the language's conventions:
|
|
39
|
+
- **Go**: `package main`, tests use `testing.T`, files are `main.go` + `main_test.go`
|
|
40
|
+
- **Python**: plain functions, tests use `pytest` with `assert`, files are `main.py` + `test_main.py`
|
|
41
|
+
- **Rust**: `fn` functions, tests use `#[test]` + `assert_eq!`, files are `main.rs` + `main_test.rs`
|
|
42
|
+
- **TypeScript/JavaScript**: ESM exports, tests use `vitest` describe/it/expect, files are `main.ts` + `main.test.ts`
|
|
43
|
+
|
|
44
|
+
For non-coding subjects (no language set): only create quiz or assignment exercises.
|
|
45
|
+
|
|
46
|
+
Always provide `starter_code` and `test_content` for coding exercises.
|
|
47
|
+
|
|
36
48
|
## Dashboard
|
|
37
49
|
|
|
38
50
|
The learning dashboard runs at http://127.0.0.1:19282 — mention it if the user wants to review progress.
|