dsh-aha-tutor 1.12.0 → 1.13.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/CHANGELOG.md +12 -0
- package/README.en.md +2 -2
- package/README.md +2 -2
- package/docs/guide.zh-CN.md +10 -4
- package/lib/agent.js +3 -3
- package/lib/client.js +36 -21
- package/lib/index.js +289 -29
- package/lib/{runtime-HOMCmP80.js → runtime-DNazpszU.js} +36 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this plugin are recorded here. Versions follow [SemVer](https://semver.org/); GitHub Release notes for each version live in `docs/releases/`.
|
|
4
4
|
|
|
5
|
+
## 1.13.0 - 2026-11-05
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **Practise one concept**: every concept on a course's **Progress** tab has **Practise this concept**, and so does each concept in a round's results; when the course's next step is a weak concept, it opens that concept instead of its lesson's old practice. It writes five questions on that concept alone, pitched at the learner's mastery of it (two basic ones first when it is weak, edge cases and links when it is mastered), aimed at the misconceptions their answers showed, and asking none of the questions on it they have met (its lesson's practice and class checks, its unit's quiz, earlier sets). Answers count toward mastery and missed ones go to the mistake notebook like any practice; the questions can be checked with **Something wrong with this question?**, and reviews draw on them. A set is offered again until one of its questions is answered; after that the next one is new, and **Another set** writes one at once.
|
|
10
|
+
- **Explain this question**: once a question is graded (lesson practice, unit quizzes, reviews, mistake rounds, concept practice, library quizzes), and on every row of the mistake notebook, **Explain this** opens the teacher's board over the page. It starts from the learner's answer (what they probably thought and where it breaks, or why a right answer works), solves the question step by step, writes the idea to remember and ends with a similar question to try. In a course that question counts toward mastery like a class check and never enters the notebook. Closing the board goes back to the same question, with the round as it was; the explanation is also kept under **Ask anything**, where the learner can ask on. The button is more prominent when the answer was not right.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **The chat teacher sees the answers**: after a quiz in a conversation, the learner sent back only ✔ or ✘ and the first 60 characters of each question, so the teacher could not tell what went wrong. The report now gives each answer, the right answer when it was missed (a short answer's model answer) and the grading, and a skipped question says so instead of shifting the numbers. The teacher is told to correct each mistake.
|
|
15
|
+
- **Answer keys show their formulas**: the right answer shown under a wrong one was plain text, so an option written in math read `$P(A\mid B)$`. It is now set like the options.
|
|
16
|
+
|
|
5
17
|
## 1.12.0 - 2026-11-05
|
|
6
18
|
|
|
7
19
|
### Added
|
package/README.en.md
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
| **Handwriting chalkboard lessons** | Narration (voice + captions) while the board fills up in a handwriting font with points, formulas, diagrams, charts and, when it helps, a small animation; each item is written as its sentence is spoken and highlighted while it is discussed; curves given by a formula are computed point by point, with sliders for their parameters; the lesson's pages sit on one canvas you can drag and zoom while the view follows the teacher, and a side panel shows the lesson's goals and a transcript; pause, rewind and change speed any time |
|
|
29
29
|
| **Quick checks that adapt** | At key moments the lesson stops for a question and asks how sure you are. Lucky guesses, hesitation and confident mistakes count differently; a lesson with a calculation asks you to write out your working and corrects it on the board. A revisit lesson is added automatically for concepts that did not stick |
|
|
30
30
|
| **Raise your hand, hear it again** | Ask anything mid-lesson, typed or spoken (recognized on your computer by DSH's Voice input), and the tutor answers on the board, then picks up where it left off; or have a step re-explained with an analogy, a drawing, an example, more simply or in more depth. Think a step is wrong? Ask the teacher to check it: a real mistake is corrected at the board and fixed in the lesson, and a step that is right is explained |
|
|
31
|
-
| **Practice, flashcards, reviews** | Every lesson has practice, with figures where they help, open answers graded by the model and keyboard answering; think a question or its grading is wrong, and the teacher checks it, fixes a wrong question, grades your answers to it again (earlier ones too) and corrects your mastery; a round ends with stars, how your mastery moved and a next step. A question you miss goes to the course's mistake notebook, comes back from the next day, counts as resolved once you get it right on a later day, and comes first in reviews. Each unit has a quiz and a flashcard deck, as long as its concepts call for. Flashcards and concepts come back on a spaced-repetition schedule, and the study plan leaves time for them |
|
|
31
|
+
| **Practice, flashcards, reviews** | Every lesson has practice, with figures where they help, open answers graded by the model and keyboard answering; think a question or its grading is wrong, and the teacher checks it, fixes a wrong question, grades your answers to it again (earlier ones too) and corrects your mastery; a round ends with stars, how your mastery moved and a next step. Any concept can be practised on its own: five new questions on it alone, pitched at your mastery and never repeating what you have done. Any graded question, and every question in the mistake notebook, has **Explain this**: the teacher starts from your answer at the board, shows where it went wrong and how to do it, and ends with a similar question to try. A question you miss goes to the course's mistake notebook, comes back from the next day, counts as resolved once you get it right on a later day, and comes first in reviews. Each unit has a quiz and a flashcard deck, as long as its concepts call for. Flashcards and concepts come back on a spaced-repetition schedule, and the study plan leaves time for them |
|
|
32
32
|
| **Your materials become courses** | PDF, Word, PowerPoint, Markdown, web links and images; a model that can see images reads scanned PDFs, documents made of pictures and photos. each material keeps its contents and the page numbers printed in it, every lesson is tied to its pages, lessons and raised hands work from the text itself, and every page number shown has been checked; long readings can be digested into structure, claims and a glossary |
|
|
33
33
|
| **Cheat sheets, notes, quizzes** | Printable cheat sheets organized by theme (columns, font size and highlighting adjustable), plus notes, flashcard decks and quizzes; decks and quizzes read the whole material part by part, size themselves by its length, and can keep to a focus |
|
|
34
34
|
| **Explainer shorts and exports** | A two-minute whiteboard explainer from a topic or a link; any lesson exports to a video with the handwriting, captions and a watermark, or its board to a PDF (one board page per page, handwriting and formulas included) or a PNG picture per page |
|
|
@@ -42,7 +42,7 @@ Two sample courses ship with the plugin (harmonic motion and Bayesian thinking,
|
|
|
42
42
|
|
|
43
43
|
You need the **DeepSeek Harness** desktop app (0.2.x, from 0.2.1) with at least one working model. See the [DSH instructions](https://github.com/deepseek-ai/deepseek-harness#run) if you do not have it yet.
|
|
44
44
|
|
|
45
|
-
1. Open **Plugins** in the desktop app, click **Add plugin** and enter `dsh-aha-tutor` as the package, with the official registry as the source. Within 24 hours of a new release DSH's pnpm holds new versions back; enter an exact version such as `dsh-aha-tutor@1.
|
|
45
|
+
1. Open **Plugins** in the desktop app, click **Add plugin** and enter `dsh-aha-tutor` as the package, with the official registry as the source. Within 24 hours of a new release DSH's pnpm holds new versions back; enter an exact version such as `dsh-aha-tutor@1.13.0` then.
|
|
46
46
|
2. **Quit and reopen** the desktop app. Refreshing the page does not load the plugin's host side.
|
|
47
47
|
3. Open **Aha · AI tutor** in the left sidebar (shown as 「开窍 · AI 私人老师」 in Chinese).
|
|
48
48
|
|
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
| **手写黑板课堂** | 老师一边讲(语音 + 字幕),一边用手写体在黑板上逐字写下要点、公式、示意图和图表,讲到哪句写哪句,正在讲的内容用荧光笔划出;由公式画的曲线按公式逐点算出,带参数的还能拖动滑块看它怎么变;整讲的板书排在一张能拖动、缩放的画布上,镜头跟着老师走;侧栏显示课堂要点进度和讲解记录;随时暂停、回放、变速 |
|
|
29
29
|
| **随堂小测与自适应** | 讲到关键处会停下来考你一题,并问你「有多确定」。猜对、犹豫、自信地答错,会被区别对待;有计算的一讲会请你写出过程,写错了老师就在黑板上订正。学完一讲后,薄弱的知识点会自动加一节巩固课 |
|
|
30
30
|
| **举手提问、换个讲法** | 没听懂就举手,老师在黑板上专门回答你,讲完回到原来的进度;问题可以打字,也可以直接说出来(用 DSH 的语音输入在本机识别);也可以让它用打比方、画图、举例、讲简单点或讲深一点的方式重讲这一步。觉得讲错了就点「这一步不对?」:老师先仔细核对,真错了就在黑板上更正,并把这一讲改好;没错就讲清为什么 |
|
|
31
|
-
| **练习、闪卡与复习** | 每讲都有练习,题目可以带示意图,简答题由 AI
|
|
31
|
+
| **练习、闪卡与复习** | 每讲都有练习,题目可以带示意图,简答题由 AI 批改,支持键盘作答;觉得题目或判分有问题就点「这题有问题?」,老师先仔细核对,题错了就改好、重新判分(以前答过的也一起重判)并修正掌握度;做完一组给出星级、掌握程度变化和下一步建议。每个知识点都能单独练:按你的掌握程度出 5 道只考它的新题,不重复做过的。答完的题和错题本里的每道题都能点「讲这题」,老师在白板上从你的答案讲起,讲清错在哪、怎么做,最后留一道同类题当场练。没答对的题自动进错题本,从第二天起再练,隔天答对才算解决,复习时先出错题。每个单元有单元测验和单元闪卡,题量和张数按这个单元的知识点来定。闪卡和知识点按间隔重复安排复习,学习计划会自动给复习留出时间 |
|
|
32
32
|
| **资料变课程** | 支持 PDF、Word、PPT、Markdown、网页链接和图片;扫描版 PDF、全是图片的文档和拍的照片,由能看图的模型识别出文字。会读出资料的目录和书上印的页码,每一讲对应到书里的页,讲课和举手提问都带着原文,显示的页码都经过核验;长文档可以一键「消化」成结构、论点和术语表 |
|
|
33
33
|
| **速查表、笔记、测验** | 按主题整理的可打印速查表(列数、字号、高亮可调),以及笔记、闪卡组和测验;闪卡和测验会分段读完整份资料,数量按资料长短来定,也可以只出「重点」范围 |
|
|
34
34
|
| **讲解短片 + 导出** | 输入一个主题或网址,得到一段约两分钟的白板讲解;任何一讲都能导出成带板书动画、字幕和水印的视频,也能把板书导出成 PDF(一页一张板书,带手写字体和公式)或每页一张的 PNG 图片 |
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
dsh-aha-tutor
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
安装源选择**官方源**,点击**安装**。新版本刚发布的 24 小时内,DSH 的 pnpm 会因为发布冷却期暂缓安装,这时请填入精确版本,例如 `dsh-aha-tutor@1.
|
|
51
|
+
安装源选择**官方源**,点击**安装**。新版本刚发布的 24 小时内,DSH 的 pnpm 会因为发布冷却期暂缓安装,这时请填入精确版本,例如 `dsh-aha-tutor@1.13.0`。
|
|
52
52
|
|
|
53
53
|
2. **完全退出并重新打开** DSH 桌面应用。只刷新页面不会加载 Host 端的新插件。
|
|
54
54
|
|
package/docs/guide.zh-CN.md
CHANGED
|
@@ -141,15 +141,16 @@
|
|
|
141
141
|
| **练习、测验与闪卡** | 最上面是这门课的**错题本**;下面是每讲的练习,每个单元的**单元测验**和**单元闪卡**;**开始复习**复习这门课到期的错题和该复习的知识点,**闪卡复习**把各单元到期的闪卡放在一起复习 |
|
|
142
142
|
| **速查表** | 单元速查表,按主题整理公式、定义和要点 |
|
|
143
143
|
| **项目** | 实战项目,见[实战项目](#实战项目) |
|
|
144
|
-
| **进度** |
|
|
144
|
+
| **进度** | 每个知识点的掌握程度(未开始、薄弱、学习中、熟练、掌握五级),以及老师发现的误解(⚠);每个知识点后面都有**练这个知识点** |
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
标题旁边是学习进度和剩余时间;下面的**下一步**给出一个建议:有可以再练的错题或到期的复习就先复习,其次专门练一练最薄弱的那个知识点,再往下是下一讲。右上角的 **⋯** 菜单可以**编辑课程大纲**、**导出课程包**、**归档**和**删除课程**。大纲里每一讲的掌握度条在学过之前是空的。所有课程都在左侧的**我的课程**里,可以按学习中、已学完、已归档筛选和搜索。
|
|
147
147
|
|
|
148
148
|
## 练习、闪卡与复习
|
|
149
149
|
|
|
150
150
|
- **练习**:单选、多选、填空、数值计算和排序题会立即判分;简答题由老师按要点批改,告诉你答到了哪些、漏了哪些。做完可以**看解析**。需要图的题会附一张示意图,或一张按公式算出的函数图。
|
|
151
151
|
- 可以用键盘作答:1–4 选择,Enter 提交或继续,H 看提示;题号旁边会显示连对了几题。
|
|
152
|
-
-
|
|
152
|
+
- 做完一组会看到星级、正确率、最长连对,以及这一轮之后各知识点的掌握程度,最后给出一个下一步建议,比如回到这一讲再听一遍、复习这门课,或者做单元测验。每个知识点旁边都能点**练这个知识点**接着专项练。
|
|
153
|
+
- **讲这题**:每道题判完分后,结果框里都有**讲这题**(答错时更显眼)。老师会在白板上从你的答案讲起:先说出你可能是怎么想的、错在哪里(答对了就讲清为什么对,不是蒙的),再一步步讲正确做法,写下要记住的要点,最后留一道同类题让你当场做。白板盖在练习页上,可以举手追问,点**关闭讲解**就回到原来那道题,这一轮练习不受影响;同一轮里再点,会打开刚才那段讲解,不会重新写。课程里的这道同类题像课堂小测一样计入掌握度,答错也不进错题本;学习工具测验里的不计。讲解同时存进**即时答疑**,之后还能打开、接着问。每讲的练习、单元测验、复习、练错题、知识点练习和学习工具里的测验都有;错题本里每道题旁边也有,从你上次答错的答案讲起。
|
|
153
154
|
- **这题有问题?**:判完分后,觉得题目、答案或判分不对(答案标错了、选项有两个对的、单位错了、简答题判得太严),点结果框里的**这题有问题?**。可以写一句(或点麦克风说)哪里不对,也可以不写,然后点**请老师核对**。老师会先自己把题做一遍、仔细核对,要等几秒到半分钟;这期间可以先做下一题,核对完会在页面顶部提示。结果显示在这道题下面的**老师核对**里:
|
|
154
155
|
- **确实有错**:老师会把存档里的这道题改好(题目、选项、答案、解析、提示里错的地方),题上出现红色的**✎ 已更正**,鼠标停在上面能看到原来写的内容。然后按改好的题重新判你这次的作答。
|
|
155
156
|
- **题目没说清楚**(比如没说 g 取 9.8 还是 10):老师会把约定写进题目;你按另一种合理理解答对的,这次算对。
|
|
@@ -159,6 +160,11 @@
|
|
|
159
160
|
重新判分后,掌握度和复习时间会按新的分数重新算,就像当初判对了一样:这次作答留下的「误解」标记也会去掉,这一轮的星级、正确率和连对也按新结果算。每讲的练习、单元测验、学习工具里的测验和复习里的题都可以这样核对。
|
|
160
161
|
|
|
161
162
|
题目改好后,你以前对同一道题的作答(上一轮练习、复习里,或课上的小测)也会按改好的题重新判,结果框里会说重判了几次。题目确实有错时,按改好的答案判,分数可能升也可能降;题目没说清楚时,只会往上调,因为你当时按另一种理解答的可能也对。简答题和写过程的题由 AI 重新批改最近 3 次。只有最近 50 次作答留有记录,更早的不再重判。
|
|
163
|
+
- **练这个知识点**:只练某一个知识点。在课程页的**进度**里每个知识点后面、**下一步**提示某个知识点还比较薄弱时,以及一轮练习结束页的掌握程度里,都能点**练这个知识点**。
|
|
164
|
+
- 每次出 5 道只考这个知识点的新题,按你现在的掌握程度来出:还比较薄弱时先出两道基础题,再慢慢加深;已经掌握的,就出边界情况,以及和前面内容结合起来的题。你答题时暴露出的误解(⚠),会专门出题检验。题目由模型现出,要等半分钟左右,等待时会显示已经出了几题。
|
|
165
|
+
- 不出你做过的题:这一讲的练习和课堂小测、单元测验、之前练过的组都会避开,换个说法、换个数字也不行。
|
|
166
|
+
- 作答和其他练习一样计入掌握度,答错的题进错题本,标着「知识点练习」;也能用**这题有问题?**核对,复习时也会用到这些题。
|
|
167
|
+
- 一组题还没开始做时,再点进来还是这一组;做过以后再进来就出新的一组。做完可以点**再来一组**马上换一组,也可以**重试**同一组。
|
|
162
168
|
- **单元测验**:题量按这个单元的知识点来定,每个知识点至少一题,重点多出几题,一般 10–30 题;课程有资料时,题目按资料里这个单元的内容和题型来出。题多时要等一两分钟,等待时会显示已经出了几题。做完可以**重试**同一套题,也可以点**换一套新题**重新出一套。
|
|
163
169
|
- **闪卡**:在课程页的**练习、测验与闪卡**里点某个单元的**单元闪卡**,第一次打开时按这个单元的知识点生成,每个知识点 2–4 张,一个单元最多 60 张。点击翻面,然后按记忆情况选**忘了 / 困难 / 记得 / 简单**。开窍用间隔重复安排下次复习的时间,记得越牢,间隔越长;有到期的卡片时,按钮上会显示张数。顶部的**闪卡复习**把各单元到期的闪卡放在一起复习;1.10.0 之前生成的整门课闪卡也在这里,原来的复习记录照旧保留。
|
|
164
170
|
- **错题本**:课堂小测、每讲的练习、单元测验和复习里没答对的题(答错或只对了一部分)会自动收进这门课的错题本,在课程页**练习、测验与闪卡**的最上面。每道题列出题目、出自哪里、你上次的答案、错了几次和哪天再练。
|
|
@@ -219,7 +225,7 @@
|
|
|
219
225
|
新建会话时,在预设里选择 **「开窍 · AI 私人老师」**。在这个会话里,老师可以:
|
|
220
226
|
|
|
221
227
|
- 在白板上讲解:对话中出现一张白板卡片,点**打开白板**会在右侧栏播放;
|
|
222
|
-
-
|
|
228
|
+
- 出互动小测:直接在对话里作答,也可以说「针对某个知识点给我出几道题」。做完点**提交**,每道题的作答会填进输入框:你的答案、答错时的正确答案、简答题的参考答案和批改意见,检查后发出去,老师会逐题纠错;
|
|
223
229
|
- 帮你建课:把你们聊的内容变成一门课,之后在开窍里继续;
|
|
224
230
|
- 做速查表,查看你的学习画像。
|
|
225
231
|
|
package/lib/agent.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { M as quizPrompt, Q as readProfile, a as generateJson, cn as newId, g as detectLanguage, ln as orderOptions, qt as text, t as getRuntime, zt as normalizePractice } from "./runtime-DNazpszU.js";
|
|
2
2
|
import { defineTool } from "@deepseek-ai/dsh-tools";
|
|
3
3
|
//#region src/agent.js
|
|
4
4
|
const name = "aha-tutor-agent";
|
|
5
5
|
const inject = ["tools", "systemPrompt"];
|
|
6
6
|
const TOOL_GUIDE = `## Teaching tools (Aha Tutor)
|
|
7
7
|
- aha_whiteboard: explain a concept, solve a problem step by step, or visualize an idea on a narrated handwriting whiteboard in the side panel. Prefer it over long chat answers whenever a picture, a formula derivation or a worked example would help. After calling it, reply with at most two sentences; never repeat the board in chat.
|
|
8
|
-
- aha_quiz: check understanding with a few interactive questions shown to the learner. Use it after explaining something important. The learner's
|
|
8
|
+
- aha_quiz: check understanding with a few interactive questions shown to the learner. Use it after explaining something important, or when the learner asks for questions on a topic. The learner's next message reports each question with their answer, the right answer when they missed it and the grading of open answers; then correct each mistake: say what they probably thought, why it fails and how to get it right (on aha_whiteboard when it needs working), and fill the gaps.
|
|
9
9
|
- aha_course: when the learner wants to learn a whole subject systematically, design a personal course in Aha Tutor instead of teaching everything in chat.
|
|
10
10
|
- aha_cheatsheet: make a printable cheat sheet before exams or at the end of a topic.
|
|
11
11
|
- aha_learner: read what Aha remembers about the learner (background, goals, weak spots, active courses) before planning or when personalizing.
|
|
@@ -110,7 +110,7 @@ function apply(ctx) {
|
|
|
110
110
|
}));
|
|
111
111
|
ctx.tools.register(defineTool({
|
|
112
112
|
name: "aha_quiz",
|
|
113
|
-
description: "Show the learner a short interactive quiz (multiple choice, fill-in, numeric or short answer).
|
|
113
|
+
description: "Show the learner a short interactive quiz (multiple choice, fill-in, numeric or short answer). The answer key is not shown to you now; the learner's next message reports each answer with the key.",
|
|
114
114
|
parameters: {
|
|
115
115
|
topic: {
|
|
116
116
|
type: "string",
|