dsh-aha-tutor 1.7.0 → 1.8.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 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.8.0 - 2026-10-26
6
+
7
+ ### Added
8
+
9
+ - **Scanned pages and pictures are read**: a PDF page without text of its own (a scan, a photo, a full-page figure), a Word document made mostly of pictures, a slide that is only a picture, and an uploaded photo have their text read by a model chosen in Aha settings that can see images (marked 🖼; DeepSeek-V4.1-Flash can): the quick route first, else the teaching route, never another model. Pages are read three at a time; the upload shows how many are done and can be cancelled, and up to 200 pages or pictures of a file are read. The text keeps its page or slide, so courses, study tools, the library search and citations use it like any other. Pages that failed (and why), pages left over and pages a model without vision could not read are named under the material. A scan without a model that sees images is refused with a note on which model to pick, instead of "no text". A photo whose text was read works in the study tools too, and stays a picture for models that see images. Black-and-white scans (CCITT, JBIG2) and JPEG 2000 pages decode with pdf.js's own WebAssembly decoders.
10
+
11
+ ### Fixed
12
+
13
+ - **DSH 0.2.1-rc.3 refused the tutor preset**: the plugin card said 加载失败 (`tool-fs-search … sampleOverCapGlobResults missing required value`), because rc.3 requires that setting and gives it no default. The preset now sets it as DSH's own presets do; DSH 0.2.1-rc.2 still loads it.
14
+ - **A correction no longer stalls the lesson**: after **See the correction** on a written-out working, the classroom started the correction's first step twice in one go; Chromium dropped the second narration and held the system voice, so the lesson sat at "playing" until Pause and Play. The step now starts once, a sentence spoken right after a cancel waits for the next task, and a system voice that does not start (tried twice) or never reports an end is let go instead of holding the lesson; one that stalls twice in a row is turned off with a note.
15
+ - **Multi-select questions take several answers**: a practice or quiz question with several right options could show 多选 and take one answer. The quiz prompt never gave the question format, and a question the model wrote as a single choice with several answers kept only the first. Practice and quiz prompts now give the format; such a question, one whose kind is named like "multi-select", or one whose prompt says to pick several becomes multi-select, answers like "A, C" are understood, and a multi-select question says **Select all that apply**.
16
+
5
17
  ## 1.7.0 - 2026-10-22
6
18
 
7
19
  ### Added
package/README.en.md CHANGED
@@ -29,7 +29,7 @@
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
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. Flashcards and concepts come back on a spaced-repetition schedule, and the study plan leaves time for them |
32
- | **Your materials become courses** | PDF, Word, PowerPoint, Markdown, web links and images (images need a vision model). Lessons and cheat sheets cite pages; long readings can be digested into structure, claims and a glossary |
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. Lessons and cheat sheets cite pages; 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 |
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 |
35
35
  | **Hands-on projects** | Code projects get a folder with starter files and a DSH session where a coding agent helps you build; submit it back for a rubric-based review |
@@ -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.7.0` then.
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.8.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
 
@@ -85,7 +85,7 @@ See [SECURITY.md](SECURITY.md).
85
85
 
86
86
  **A generation failed or looks weak?** Retry, or choose a stronger model for "course design & teaching".
87
87
 
88
- **No text from a PDF?** Scanned PDFs have no text layer; upload page photos as images with a vision model.
88
+ **No text from a scanned PDF?** Scanned pages are read by the model you chose, which must be able to see images (marked 🖼 in Aha settings, such as DeepSeek-V4.1-Flash). The upload shows how many pages are done and can be cancelled; up to 200 pages of a file are read.
89
89
 
90
90
  **Using the tutor in a chat?** Choose the "开窍 · AI 私人老师" preset when starting a session.
91
91
 
package/README.md CHANGED
@@ -29,7 +29,7 @@
29
29
  | **随堂小测与自适应** | 讲到关键处会停下来考你一题,并问你「有多确定」。猜对、犹豫、自信地答错,会被区别对待;有计算的一讲会请你写出过程,写错了老师就在黑板上订正。学完一讲后,薄弱的知识点会自动加一节巩固课 |
30
30
  | **举手提问、换个讲法** | 没听懂就举手,老师在黑板上专门回答你,讲完回到原来的进度;问题可以打字,也可以直接说出来(用 DSH 的语音输入在本机识别);也可以让它用打比方、画图、举例、讲简单点或讲深一点的方式重讲这一步。觉得讲错了就点「这一步不对?」:老师先仔细核对,真错了就在黑板上更正,并把这一讲改好;没错就讲清为什么 |
31
31
  | **练习、闪卡与复习** | 每讲都有练习,题目可以带示意图,简答题由 AI 批改,支持键盘作答;觉得题目或判分有问题就点「这题有问题?」,老师先仔细核对,题错了就改好、重新判分(以前答过的也一起重判)并修正掌握度;做完一组给出星级、掌握程度变化和下一步建议。闪卡和知识点按间隔重复安排复习,学习计划会自动给复习留出时间 |
32
- | **资料变课程** | 支持 PDF、Word、PPT、Markdown、网页链接和图片(图片需要支持识图的模型)。讲课和速查表会引用原文页码;长文档可以一键「消化」成结构、论点和术语表 |
32
+ | **资料变课程** | 支持 PDF、Word、PPT、Markdown、网页链接和图片;扫描版 PDF、全是图片的文档和拍的照片,由能看图的模型识别出文字。讲课和速查表会引用原文页码;长文档可以一键「消化」成结构、论点和术语表 |
33
33
  | **速查表、笔记、测验** | 按主题整理的可打印速查表(列数、字号、高亮可调),以及笔记、闪卡组和测验 |
34
34
  | **讲解短片 + 导出** | 输入一个主题或网址,得到一段约两分钟的白板讲解;任何一讲都能导出成带板书动画、字幕和水印的视频,也能把板书导出成 PDF(一页一张板书,带手写字体和公式)或每页一张的 PNG 图片 |
35
35
  | **实战项目** | 代码类项目一键生成项目文件夹和起始文件,并在 DSH 里打开一个会话,让编程 Agent 陪你做;做完回来提交,老师按评分标准逐项点评 |
@@ -48,7 +48,7 @@
48
48
  dsh-aha-tutor
49
49
  ```
50
50
 
51
- 安装源选择**官方源**,点击**安装**。新版本刚发布的 24 小时内,DSH 的 pnpm 会因为发布冷却期暂缓安装,这时请填入精确版本,例如 `dsh-aha-tutor@1.7.0`。
51
+ 安装源选择**官方源**,点击**安装**。新版本刚发布的 24 小时内,DSH 的 pnpm 会因为发布冷却期暂缓安装,这时请填入精确版本,例如 `dsh-aha-tutor@1.8.0`。
52
52
 
53
53
  2. **完全退出并重新打开** DSH 桌面应用。只刷新页面不会加载 Host 端的新插件。
54
54
 
@@ -115,7 +115,7 @@
115
115
 
116
116
  **生成失败或结果不理想?** 点**重试**,或在设置里为「出课与讲课」换一个更强的模型。
117
117
 
118
- **PDF 里读不出文字?** 扫描版 PDF 没有文字层,可以截图后以图片上传(需要支持识图的模型)。
118
+ **扫描版 PDF 读不出字?** 扫描页由你选的模型识别,需要能看图的模型(开窍设置里带 🖼 的,比如 DeepSeek-V4.1-Flash)。上传时会显示识别到第几页,可以随时取消;一个文件最多识别 200 页。
119
119
 
120
120
  **会话里怎么用老师?** 新建会话时,在预设里选择 **「开窍 · AI 私人老师」**。
121
121
 
@@ -1,10 +1,12 @@
1
1
  {
2
- "latestTested": "0.2.1-rc.2",
2
+ "latestTested": "0.2.1-rc.3",
3
3
  "acceptedRuntimeRange": ">=0.2.1-rc.1 <0.3.0-0",
4
4
  "supported": [
5
- "0.2.1-rc.2"
5
+ "0.2.1-rc.2",
6
+ "0.2.1-rc.3"
6
7
  ],
7
8
  "validation": {
8
- "0.2.1-rc.2": "Development baseline. Offline suite against the published 0.2.1-rc.2 packages; desktop verification is recorded in CHANGELOG.md."
9
+ "0.2.1-rc.2": "Development baseline. Offline suite against the published 0.2.1-rc.2 packages; desktop verification is recorded in CHANGELOG.md.",
10
+ "0.2.1-rc.3": "Desktop runtime since 2026-10-23. Verified 2026-10-26 in a scratch web profile with the bundled 0.2.1-rc.3 CLI: the tutor preset loads (rc.3 requires tool-fs-search sampleOverCapGlobResults), and classroom corrections, scanned materials and quizzes work with DeepSeek-V4.1-Flash."
9
11
  }
10
12
  }
package/cordis.patch.yml CHANGED
@@ -37,8 +37,12 @@
37
37
  readImage: true
38
38
  write: false
39
39
  edit: false
40
+ # DSH 0.2.1-rc.3 requires this setting and gives it no default; its
41
+ # own presets keep the first paths, as rc.2 did.
40
42
  - id: tool-fs-search
41
43
  name: '@deepseek-ai/dsh-tool-fs-search'
44
+ config:
45
+ sampleOverCapGlobResults: false
42
46
  - id: tool-web
43
47
  name: '@deepseek-ai/dsh-tool-web'
44
48
  config:
@@ -21,7 +21,7 @@
21
21
 
22
22
  ## 开始之前
23
23
 
24
- 1. **模型**:开窍使用你在 DSH 里设置的默认模型。讲课质量主要取决于模型,建议「出课与讲课」用你手头最强的模型。要读图片资料,模型需要支持识图。
24
+ 1. **模型**:开窍使用你在 DSH 里设置的默认模型。讲课质量主要取决于模型,建议「出课与讲课」用你手头最强的模型。扫描件、照片等图片资料里的字,要靠能看图的模型识别(开窍设置里带 🖼 的模型)。
25
25
  2. **语音**:默认用系统自带的音色朗读,不花钱。第一次使用时,到 **设置 → 语音讲解** 点**试听**,确认能听到声音。
26
26
  3. **先看示例课**:首页下方的「示例课程」里有「简谐运动」「贝叶斯思维」两门现成的课,点**加入我的课程**就能体验完整的黑板课堂,不消耗模型额度。
27
27
 
@@ -166,11 +166,11 @@
166
166
 
167
167
  | 类型 | 说明 |
168
168
  | --- | --- |
169
- | PDF | 读取文字层,讲课和速查表会引用页码。扫描版 PDF 没有文字层,请截图后以图片上传 |
170
- | Word(.docx)、PPT(.pptx) | 读取正文;PPT 按幻灯片编号引用 |
169
+ | PDF | 读取文字层,讲课和速查表会引用页码。没有文字层的页(扫描页、整页图片)由能看图的模型逐页识别,上传时显示进度、可以取消,一个文件最多识别 200 页 |
170
+ | Word(.docx)、PPT(.pptx) | 读取正文;PPT 按幻灯片编号引用。几乎全是图片的文档、只有图片的幻灯片,图里的字也会识别 |
171
171
  | Markdown、文本 | 自动识别 UTF-8 和 GB18030 编码 |
172
172
  | 网页 | 点**添加网页**,填入公开网址,开窍会提取正文 |
173
- | 图片 | 需要支持识图的模型 |
173
+ | 图片 | 能看图的模型会识别图里的字,之后和其他资料一样能建课、做速查表和测验;图片本身也会交给能看图的模型 |
174
174
 
175
175
  每份资料都可以一键**用它建课**,或者生成**速查表、闪卡、笔记、测验**,以及**消化**成概要、结构、核心观点、论点与论据、术语表和值得思考的问题。
176
176
 
@@ -251,8 +251,8 @@
251
251
  | 提示模型未登录或额度不足 | 在 DSH 设置里检查模型服务,或在开窍设置里换一个模型 |
252
252
  | 资料太长超出上下文 | 少选几份资料,或换一个上下文更大的模型 |
253
253
  | 生成结果不理想 | 点**重试**或**重新备课**;为「出课与讲课」换一个更强的模型 |
254
- | PDF 读不出文字 | 扫描版没有文字层,截图后以图片上传 |
255
- | 图片资料读不了 | 需要支持识图的模型 |
254
+ | 扫描版 PDF 读不出文字 | 在开窍设置里选一个带 🖼(能看图)的模型,比如 DeepSeek-V4.1-Flash,再重新上传 |
255
+ | 资料下面写着有些页没识别出来 | 按提示处理:额度不足就稍后再传;超过 200 页就把文件拆开上传 |
256
256
  | 更新显示「待更新」 | DSH 的 pnpm 设置了发布冷却期,新版本还没过冷却期;到显示的时间后再更新 |
257
257
 
258
258
  还有问题,欢迎到 [GitHub Issues](https://github.com/BaronCyrus/dsh-aha-tutor/issues) 反馈(请不要贴出密钥或个人学习数据)。
package/lib/agent.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as quizPrompt, Mt as newId, N as generateJson, W as readProfile, kt as text, l as detectLanguage, t as getRuntime, wt as normalizePractice } from "./runtime-DfoeKFPj.js";
1
+ import { Et as normalizePractice, F as generateJson, K as readProfile, Pt as newId, jt as text, t as getRuntime, u as detectLanguage, w as quizPrompt } from "./runtime-C3yJfJTT.js";
2
2
  import { defineTool } from "@deepseek-ai/dsh-tools";
3
3
  //#region src/agent.js
4
4
  const name = "aha-tutor-agent";