dsh-plugin-lookatstudy 0.11.0 → 0.12.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/README.md +28 -7
- package/lib/client.js +1460 -109
- package/lib/client.js.map +1 -1
- package/lib/docx-parser-BhyqPImb.mjs +55 -0
- package/lib/epub-parser-oH96guBW.mjs +306 -0
- package/lib/html-article-Da8ksU0i.mjs +460 -0
- package/lib/index.d.mts +5 -4
- package/lib/index.mjs +3098 -1287
- package/lib/inflate-DIKUrTRi.mjs +311 -0
- package/lib/pptx-parser-B9IDkiGM.mjs +96 -0
- package/lib/zip-reader-KnRrq0av.mjs +67 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
# dsh-plugin-lookatstudy
|
|
2
2
|
|
|
3
|
-
Turn any markdown document, local folder, or GitHub learning repository into a guided course inside [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) — your dsh agent becomes a full AI tutor with the interaction design of [LookatStudy](https://github.com/Kaiji-Z/LookatStudy): per-concept knowledge tracking, mastery-driven progression, spaced repetition, mastery proposals, friction awareness, learner memory, a Cornell notebook,
|
|
3
|
+
Turn any markdown document, local folder, or GitHub learning repository into a guided course inside [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) — your dsh agent becomes a full AI tutor with the interaction design of [LookatStudy](https://github.com/Kaiji-Z/LookatStudy): per-concept knowledge tracking, mastery-driven progression, spaced repetition, mastery proposals, friction awareness, learner memory, a Cornell notebook, an in-chat proposal card, exam mode with star grades, XP & streak, bilingual lessons, and a rich blackboard (KaTeX math, syntax-highlighted code, mermaid diagrams, mindmap & concept-map views). Learning engine modules are vendored from LookatStudy (MIT).
|
|
4
|
+
|
|
5
|
+
## Screenshots
|
|
6
|
+
|
|
7
|
+
| | |
|
|
8
|
+
|---|---|
|
|
9
|
+
|  | **The 学习 tab** — course rail (progress, mastery bars, due box), the live tutor conversation, and the focus lesson's blackboard, all inside one dsh conversation view. |
|
|
10
|
+
|  | **讲解** — server-sanitized markdown rendered rich on demand: KaTeX formulas, syntax-highlighted code, mermaid diagrams (CDN loaders, silent degrade offline). |
|
|
11
|
+
|  | **🕸 概念图** — the lesson's knowledge components laid out as a draw.io-style concept graph (bundled ELK layout, no external service). |
|
|
12
|
+
|  | **课程栏** — sections, gating, mastery bars, ⚡ weak spots, exam stars, XP & streak. |
|
|
4
13
|
|
|
5
14
|
## Install
|
|
6
15
|
|
|
@@ -29,17 +38,29 @@ Works with any profile. In the `web` profile the plugin additionally serves the
|
|
|
29
38
|
|---|---|
|
|
30
39
|
| 左 · 课程 | Course picker, progress, due box with one-click review kickoff, lesson tree (gating, mastery bars, ⚡😣 weak spots, clickable focus), one-click demo import when empty |
|
|
31
40
|
| 中 · 老师 | A read-only mini transcript of the live tutor conversation (assistant replies rendered through the plugin's markdown pipeline, tool calls as chips, streaming included) plus the soul pills (直讲/引导/实战), the focus lesson's starters, and the mastery-proposal banner (接受/再练练). Typing happens in dsh's own composer below the tab — the plugin never ships its own input; every button lands its text in that native composer and submits through the same path as the Send button |
|
|
32
|
-
| 右 · 黑板 | The focus lesson's 讲解 (server-sanitized markdown) and the Cornell 笔记 three zones |
|
|
41
|
+
| 右 · 黑板 | The focus lesson's 讲解 (server-sanitized markdown, rendered rich on demand: KaTeX / syntax highlighting / mermaid), a 🧠 mindmap and 🕸 concept-map view of the same lesson, and the Cornell 笔记 three zones |
|
|
33
42
|
|
|
34
43
|
The tutor column is a learning surface, not a generic chat: the tutor's quiz options (A–D) render as clickable answer buttons under the latest reply (clicking sends the answer through the native composer), graded answers show as ✓/✗ chips with the tested concept, and every course-tree glyph, tag, and mastery bar carries a hover tooltip explaining its meaning. All content text runs at the dsh chat transcript's own 16 px.
|
|
35
44
|
|
|
36
45
|
All study state comes from one shared 3 s poll over `/lookatstudy/api/state`; input is dsh's native composer from the first turn (no activation step). Columns stack below 1024 px.
|
|
37
46
|
|
|
38
|
-
##
|
|
47
|
+
## dsh-native surfaces
|
|
48
|
+
|
|
49
|
+
Beyond the tab, the plugin rides the host's own integration points:
|
|
50
|
+
|
|
51
|
+
- **Bilingual UI** — the whole client half registers a `lookatstudy` locale namespace (zh/en, key parity enforced); switch the host language and the study tab follows.
|
|
52
|
+
- **Settings page** — a `settings.section` entry in the host settings shell: teaching style, study mode on/off, read-only stats (courses/XP/streak) and the state-file path.
|
|
53
|
+
- **`/study` command** — bare `/study` activates a dormant install and queues the kickoff prompt; `/study <text>` queues that request. Works wherever slash commands do.
|
|
54
|
+
- **Composer dock pill** — `conversation.composer.dock` entry showing ⚡due · 🔥streak · Lv while active (renders nothing while dormant).
|
|
55
|
+
- **Tool cards in the conversation tab** — keyed `tool.call.toolview` entries for `study_record_answer` (✓/✗ + concept), `study_lesson`, `study_due_reviews`, `study_exam_result`.
|
|
56
|
+
- **Boot-tier prefetch** — `dsh.client.immediately: true`, so the study tab's first open pays no bundle fetch.
|
|
57
|
+
|
|
58
|
+
## Tool surface (25)
|
|
39
59
|
|
|
40
|
-
Import: `study_import_markdown` / `study_import_folder` (
|
|
41
|
-
Learn: `study_courses
|
|
42
|
-
Progress: `study_define_concepts`, `study_record_answer`, `study_complete_lesson`
|
|
60
|
+
Import: `study_import_markdown` / `study_import_folder` (12 doc formats incl. EPUB/DOCX/PPTX/PDF text) / `study_import_github` (jsDelivr CDN, works where github.com is unreachable) / `study_import_url` (articles, arXiv, video metadata) + `study_apply_design` (the tutor-designed structure protocol)
|
|
61
|
+
Learn: `study_courses` (progress + full-text search), `study_map`, `study_lesson`
|
|
62
|
+
Progress: `study_define_concepts`, `study_record_answer`, `study_complete_lesson`, `study_exam_result` (star grades)
|
|
63
|
+
Memory: `study_consolidate`, `study_translate_lesson` (bilingual lessons), `study_export` (course pack markdown)
|
|
43
64
|
Proposals: `study_propose_mastery`, `study_resolve_proposal`
|
|
44
65
|
Reviews: `study_due_reviews`, `study_record_review`
|
|
45
66
|
Awareness: `study_report_friction`, `study_remember`, `study_notes`, `study_note_save`
|
|
@@ -57,7 +78,7 @@ Misc: `study_set_mode`, `study_delete_course`
|
|
|
57
78
|
|
|
58
79
|
## What is intentionally not restored
|
|
59
80
|
|
|
60
|
-
LookatStudy's Electron-native experiences have no host surface in dsh: persistent text highlighting with DOM anchors, celebration particles
|
|
81
|
+
LookatStudy's Electron-native experiences have no host surface in dsh: the 伴学/voice companion line, persistent text highlighting with DOM anchors, and celebration particles. Everything else — engine, contracts, data models, exam mode with star grades, XP & streak, bilingual translation, image inlining, math/code/diagram rendering — is ported (diagram renderers load from CDN on demand and degrade silently offline).
|
|
61
82
|
|
|
62
83
|
## Development
|
|
63
84
|
|