@dongfangw/study-kit 0.0.0-stage → 0.1.1
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/LICENSE +671 -0
- package/README.md +28 -2
- package/cordis.patch.yml +3 -0
- package/ext/adoc-convert/index.mjs +62 -0
- package/lib/client.js +5917 -0
- package/lib/client.js.map +1 -0
- package/lib/docsplit.d.ts +73 -0
- package/lib/docsplit.d.ts.map +1 -0
- package/lib/docsplit.js +241 -0
- package/lib/docsplit.js.map +1 -0
- package/lib/git.d.ts +29 -0
- package/lib/git.d.ts.map +1 -0
- package/lib/git.js +305 -0
- package/lib/git.js.map +1 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +324 -0
- package/lib/index.js.map +1 -0
- package/lib/isolation.d.ts +33 -0
- package/lib/isolation.d.ts.map +1 -0
- package/lib/isolation.js +30 -0
- package/lib/isolation.js.map +1 -0
- package/lib/libraries.d.ts +36 -0
- package/lib/libraries.d.ts.map +1 -0
- package/lib/libraries.js +118 -0
- package/lib/libraries.js.map +1 -0
- package/lib/render.d.ts +22 -0
- package/lib/render.d.ts.map +1 -0
- package/lib/render.js +568 -0
- package/lib/render.js.map +1 -0
- package/lib/session.d.ts +23 -0
- package/lib/session.d.ts.map +1 -0
- package/lib/session.js +35 -0
- package/lib/session.js.map +1 -0
- package/lib/skills.d.ts +24 -0
- package/lib/skills.d.ts.map +1 -0
- package/lib/skills.js +111 -0
- package/lib/skills.js.map +1 -0
- package/lib/slidev.d.ts +13 -0
- package/lib/slidev.d.ts.map +1 -0
- package/lib/slidev.js +755 -0
- package/lib/slidev.js.map +1 -0
- package/lib/slidevBin.d.ts +7 -0
- package/lib/slidevBin.d.ts.map +1 -0
- package/lib/slidevBin.js +130 -0
- package/lib/slidevBin.js.map +1 -0
- package/lib/slidevEnv.d.ts +56 -0
- package/lib/slidevEnv.d.ts.map +1 -0
- package/lib/slidevEnv.js +702 -0
- package/lib/slidevEnv.js.map +1 -0
- package/lib/static.d.ts +8 -0
- package/lib/static.d.ts.map +1 -0
- package/lib/static.js +79 -0
- package/lib/static.js.map +1 -0
- package/lib/tools.d.ts +4 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +160 -0
- package/lib/tools.js.map +1 -0
- package/lib/types/client/DocMarks.d.ts +76 -0
- package/lib/types/client/DocMarks.d.ts.map +1 -0
- package/lib/types/client/DocViewer.d.ts +21 -0
- package/lib/types/client/DocViewer.d.ts.map +1 -0
- package/lib/types/client/GitPanel.d.ts +20 -0
- package/lib/types/client/GitPanel.d.ts.map +1 -0
- package/lib/types/client/LibraryWorkspace.d.ts +5 -0
- package/lib/types/client/LibraryWorkspace.d.ts.map +1 -0
- package/lib/types/client/MyLibraries.d.ts +5 -0
- package/lib/types/client/MyLibraries.d.ts.map +1 -0
- package/lib/types/client/SlidevDeckViewer.d.ts +25 -0
- package/lib/types/client/SlidevDeckViewer.d.ts.map +1 -0
- package/lib/types/client/SlidevEnvPanel.d.ts +11 -0
- package/lib/types/client/SlidevEnvPanel.d.ts.map +1 -0
- package/lib/types/client/annotations.d.ts +161 -0
- package/lib/types/client/annotations.d.ts.map +1 -0
- package/lib/types/client/docEnhance.d.ts +55 -0
- package/lib/types/client/docEnhance.d.ts.map +1 -0
- package/lib/types/client/docKey.d.ts +22 -0
- package/lib/types/client/docKey.d.ts.map +1 -0
- package/lib/types/client/git.module.css.gen.d.ts +3 -0
- package/lib/types/client/git.module.css.gen.d.ts.map +1 -0
- package/lib/types/client/icons.d.ts +50 -0
- package/lib/types/client/icons.d.ts.map +1 -0
- package/lib/types/client/index.d.ts +12 -0
- package/lib/types/client/index.d.ts.map +1 -0
- package/lib/types/client/prose.d.ts +19 -0
- package/lib/types/client/prose.d.ts.map +1 -0
- package/lib/types/client/readerControls.d.ts +55 -0
- package/lib/types/client/readerControls.d.ts.map +1 -0
- package/lib/types/client/readerPrefs.d.ts +73 -0
- package/lib/types/client/readerPrefs.d.ts.map +1 -0
- package/lib/types/client/readingPos.d.ts +82 -0
- package/lib/types/client/readingPos.d.ts.map +1 -0
- package/lib/types/client/styles.module.css.gen.d.ts +3 -0
- package/lib/types/client/styles.module.css.gen.d.ts.map +1 -0
- package/lib/types/client/submitDraft.d.ts +29 -0
- package/lib/types/client/submitDraft.d.ts.map +1 -0
- package/lib/types/client/viewActive.d.ts +55 -0
- package/lib/types/client/viewActive.d.ts.map +1 -0
- package/lib/types/types.d.ts +351 -0
- package/lib/types/types.d.ts.map +1 -0
- package/lib/types.d.ts +351 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +6 -0
- package/lib/types.js.map +1 -0
- package/package.json +101 -6
- package/skills/aero-concept-qa/SKILL.md +65 -0
- package/skills/aero-learning-path/SKILL.md +61 -0
- package/skills/aero-study-guide/SKILL.md +47 -0
- package/skills/aero-think/SKILL.md +59 -0
- package/skills/kb-organize/SKILL.md +73 -0
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 共享类型(宿主 + 客户端共用)。宿主负责生成 /aero-kb 的响应,
|
|
3
|
+
* 客户端消费这些结构渲染 UI。
|
|
4
|
+
*/
|
|
5
|
+
/** 目录树节点(JSON 序列化,跨进程传输)。 */
|
|
6
|
+
export interface KbTreeNode {
|
|
7
|
+
/** 稳定唯一 id(基于 KB 相对路径)。 */
|
|
8
|
+
readonly id: string;
|
|
9
|
+
/** 显示名。 */
|
|
10
|
+
readonly name: string;
|
|
11
|
+
/** 节点类型。 */
|
|
12
|
+
readonly type: 'group' | 'doc' | 'deck';
|
|
13
|
+
/** KB 根目录相对路径(doc/deck 为文件路径;group 为目录路径)。 */
|
|
14
|
+
readonly path: string;
|
|
15
|
+
/** 扩展名(doc 为 md/adoc,deck 为 slides.md)。 */
|
|
16
|
+
readonly ext?: string;
|
|
17
|
+
/** 文件字节大小。 */
|
|
18
|
+
readonly size?: number;
|
|
19
|
+
/** 子节点(group)。 */
|
|
20
|
+
readonly children?: readonly KbTreeNode[];
|
|
21
|
+
}
|
|
22
|
+
/** 目录接口响应。 */
|
|
23
|
+
export interface CatalogResponse {
|
|
24
|
+
/** 实际解析出的 KB 根目录(绝对路径,供调试/展示)。 */
|
|
25
|
+
readonly root: string;
|
|
26
|
+
readonly generatedAt: number;
|
|
27
|
+
/** 各知识库分组的顶层树。 */
|
|
28
|
+
readonly groups: readonly KbTreeNode[];
|
|
29
|
+
/** 目录解析失败 / 未找到知识库时的提示(供 UI 直接展示)。 */
|
|
30
|
+
readonly error?: string;
|
|
31
|
+
/** 当前实例是否为教师模式(AERO_TEACHER_MODE=1):备课工作台据此决定是否可用。 */
|
|
32
|
+
readonly teacherMode?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** 文档标题/章节锚点(用于阅读上下文跟踪)。 */
|
|
35
|
+
export interface DocSection {
|
|
36
|
+
/** 标题锚点 id(已注入到 HTML 的 heading 上)。 */
|
|
37
|
+
readonly id: string;
|
|
38
|
+
/** 标题文本。 */
|
|
39
|
+
readonly title: string;
|
|
40
|
+
/** 标题层级 1-6。 */
|
|
41
|
+
readonly level: number;
|
|
42
|
+
}
|
|
43
|
+
/** 超大文档的分段信息(段数 > 1 时才随渲染结果返回)。 */
|
|
44
|
+
export interface DocSegmentsInfo {
|
|
45
|
+
/** 段序号(0 起)。 */
|
|
46
|
+
readonly index: number;
|
|
47
|
+
/** 导航标题(该段首个标题,或「第 N 段」)。 */
|
|
48
|
+
readonly title: string;
|
|
49
|
+
/** 该段源文本字符数(用于导航提示)。 */
|
|
50
|
+
readonly chars: number;
|
|
51
|
+
}
|
|
52
|
+
/** md / adoc 文档渲染结果。 */
|
|
53
|
+
export interface DocRenderResult {
|
|
54
|
+
readonly ok: boolean;
|
|
55
|
+
readonly kind: 'md' | 'adoc';
|
|
56
|
+
readonly title: string;
|
|
57
|
+
/** 已渲染的正文 HTML(含 KaTeX 数学,图片路径已重写为 /aero-kb/asset)。 */
|
|
58
|
+
readonly html: string;
|
|
59
|
+
/** 标题锚点列表(按文档顺序)。 */
|
|
60
|
+
readonly sections: readonly DocSection[];
|
|
61
|
+
/** 当前是第几段(仅分段文档有;0 起)。 */
|
|
62
|
+
readonly seg?: number;
|
|
63
|
+
/** 全部分段(仅分段文档有;> 1 段时客户端显示段落导航)。 */
|
|
64
|
+
readonly segments?: readonly DocSegmentsInfo[];
|
|
65
|
+
readonly error?: string;
|
|
66
|
+
}
|
|
67
|
+
/** Slidev slides.md 渲染结果(每页一个 HTML 字符串)。 */
|
|
68
|
+
export interface SlideRenderResult {
|
|
69
|
+
readonly ok: boolean;
|
|
70
|
+
readonly title: string;
|
|
71
|
+
/** 每页幻灯片渲染后的 HTML。 */
|
|
72
|
+
readonly slides: readonly string[];
|
|
73
|
+
readonly error?: string;
|
|
74
|
+
}
|
|
75
|
+
/** GET /aero-kb/source?p=<rel> 响应:源文档原文(供编辑器加载)。 */
|
|
76
|
+
export interface PrepSourceResponse {
|
|
77
|
+
readonly ok: boolean;
|
|
78
|
+
readonly relPath: string;
|
|
79
|
+
/** 源文档原始文本。 */
|
|
80
|
+
readonly text: string;
|
|
81
|
+
/** 文件字节大小。 */
|
|
82
|
+
readonly size?: number;
|
|
83
|
+
readonly error?: string;
|
|
84
|
+
}
|
|
85
|
+
/** POST /aero-kb/save 响应:直接保存编辑后的源文档。 */
|
|
86
|
+
export interface PrepSaveResponse {
|
|
87
|
+
readonly ok: boolean;
|
|
88
|
+
readonly relPath: string;
|
|
89
|
+
/** 写入的字节数。 */
|
|
90
|
+
readonly bytes?: number;
|
|
91
|
+
readonly error?: string;
|
|
92
|
+
}
|
|
93
|
+
/** 案例参数定义(驱动客户端表单自动生成)。 */
|
|
94
|
+
export interface SimCaseParam {
|
|
95
|
+
readonly name: string;
|
|
96
|
+
readonly label: string;
|
|
97
|
+
readonly type: 'number' | 'select';
|
|
98
|
+
readonly default: number | string;
|
|
99
|
+
readonly min?: number;
|
|
100
|
+
readonly max?: number;
|
|
101
|
+
readonly step?: number;
|
|
102
|
+
readonly unit?: string;
|
|
103
|
+
readonly options?: readonly string[];
|
|
104
|
+
}
|
|
105
|
+
/** 来源标注。 */
|
|
106
|
+
export interface SimCaseSource {
|
|
107
|
+
readonly name: string;
|
|
108
|
+
readonly url?: string;
|
|
109
|
+
}
|
|
110
|
+
/** 案例在本章教学中的角色;与 kind(技术交付形态)相互独立。 */
|
|
111
|
+
export type SimLearningRole = 'core' | 'support' | 'application' | 'extension' | 'verification';
|
|
112
|
+
/** 计算/外链类案例的探究引导:先作判断,再用可观察证据归纳规律。 */
|
|
113
|
+
export interface SimInquiry {
|
|
114
|
+
readonly predict: string;
|
|
115
|
+
readonly vary: string;
|
|
116
|
+
readonly observe: string;
|
|
117
|
+
readonly conclude: string;
|
|
118
|
+
}
|
|
119
|
+
/** 一个仿真案例。 */
|
|
120
|
+
export interface SimCase {
|
|
121
|
+
readonly id: string;
|
|
122
|
+
readonly title: string;
|
|
123
|
+
readonly chapter: number;
|
|
124
|
+
/** A=静态出图 B=纯前端 C=长驻应用(二期) D=外部链接 E=离线自托管 HTML5 仿真(本地静态资源,无网可用) */
|
|
125
|
+
readonly kind: 'A' | 'B' | 'C' | 'D' | 'E';
|
|
126
|
+
readonly status: 'ready' | 'planned';
|
|
127
|
+
readonly adapter?: string;
|
|
128
|
+
readonly jsEntry?: string;
|
|
129
|
+
/** kind B:inline 进入 DSH 主客户端 bundle;iframe 从 embedFile 隔离加载重型依赖。 */
|
|
130
|
+
readonly clientRender?: 'inline' | 'iframe';
|
|
131
|
+
/** kind B:单文件自包含 HTML 内嵌构建(相对 sim/embed/,如 mdGas/index.html)。
|
|
132
|
+
* 由 sim/embed-build.mjs 生成:React/CSS 全内联、零外网零后端,可直接复制进
|
|
133
|
+
* Slidev 课件 public/sims/<id>/ 后以 iframe 相对路径内嵌(原则 P1)。 */
|
|
134
|
+
readonly embedFile?: string;
|
|
135
|
+
readonly appDir?: string;
|
|
136
|
+
/** kind C:应用入口脚本文件名(位于 appDir 目录内),缺省回退 app.py。 */
|
|
137
|
+
readonly appEntry?: string;
|
|
138
|
+
readonly webUrl?: string;
|
|
139
|
+
/** kind E:本地静态资源目录(相对 sim/phet/,如 gases-intro)。 */
|
|
140
|
+
readonly localDir?: string;
|
|
141
|
+
/** kind E:入口 HTML 文件名(位于 localDir 目录内)。 */
|
|
142
|
+
readonly entryHtml?: string;
|
|
143
|
+
readonly embed?: boolean;
|
|
144
|
+
readonly params?: readonly SimCaseParam[];
|
|
145
|
+
readonly description?: string;
|
|
146
|
+
readonly source?: SimCaseSource;
|
|
147
|
+
/** 教学层级:核心探究/理解支撑/工程应用/拓展前瞻/课后核验。 */
|
|
148
|
+
readonly learningRole?: SimLearningRole;
|
|
149
|
+
/** 页面顶部的“先猜—调整—观察—归纳”探究任务卡。 */
|
|
150
|
+
readonly inquiry?: SimInquiry;
|
|
151
|
+
}
|
|
152
|
+
/** 案例目录接口响应。 */
|
|
153
|
+
export interface SimCatalogResponse {
|
|
154
|
+
readonly ok: boolean;
|
|
155
|
+
/** 按章节升序排列的全部案例。 */
|
|
156
|
+
readonly cases: readonly SimCase[];
|
|
157
|
+
readonly error?: string;
|
|
158
|
+
}
|
|
159
|
+
/** Tier A 运行结果中的一张图。 */
|
|
160
|
+
export interface SimImage {
|
|
161
|
+
readonly file: string;
|
|
162
|
+
readonly title: string;
|
|
163
|
+
/** 宿主注入的可访问 URL(/aero-sim/out/<runId>/<file>)。 */
|
|
164
|
+
readonly url: string;
|
|
165
|
+
}
|
|
166
|
+
/** Tier A 运行结果中的一张表。 */
|
|
167
|
+
export interface SimTable {
|
|
168
|
+
readonly title: string;
|
|
169
|
+
readonly header: readonly string[];
|
|
170
|
+
readonly rows: readonly (readonly string[])[];
|
|
171
|
+
}
|
|
172
|
+
/** Tier A 运行接口响应。 */
|
|
173
|
+
export interface SimRunResponse {
|
|
174
|
+
readonly ok: boolean;
|
|
175
|
+
readonly caseId: string;
|
|
176
|
+
readonly runId?: string;
|
|
177
|
+
readonly cached?: boolean;
|
|
178
|
+
readonly images: readonly SimImage[];
|
|
179
|
+
readonly tables: readonly SimTable[];
|
|
180
|
+
readonly notes?: string;
|
|
181
|
+
/** 可信适配器返回的结构化工件(交互前端可选消费,限制为 JSON 值)。 */
|
|
182
|
+
readonly data?: unknown;
|
|
183
|
+
readonly error?: string;
|
|
184
|
+
}
|
|
185
|
+
/** Tier C 应用启动接口响应(POST /aero-sim/app/<id>/start)。 */
|
|
186
|
+
export interface SimAppStartResponse {
|
|
187
|
+
readonly ok: boolean;
|
|
188
|
+
readonly id: string;
|
|
189
|
+
/** 启动成功时的嵌入地址(/aero-sim/app/<id>/)。 */
|
|
190
|
+
readonly url?: string;
|
|
191
|
+
readonly error?: string;
|
|
192
|
+
}
|
|
193
|
+
/** Tier C 应用状态(GET /aero-sim/app/<id>/status)。 */
|
|
194
|
+
export interface SimAppStatusResponse {
|
|
195
|
+
readonly ok: boolean;
|
|
196
|
+
readonly id: string;
|
|
197
|
+
readonly state: 'stopped' | 'starting' | 'running' | 'error';
|
|
198
|
+
readonly port?: number;
|
|
199
|
+
readonly url?: string;
|
|
200
|
+
readonly idleSeconds?: number;
|
|
201
|
+
readonly error?: string;
|
|
202
|
+
}
|
|
203
|
+
/** 一条 git 提交。 */
|
|
204
|
+
export interface GitCommit {
|
|
205
|
+
/** 短 hash(前 10 位)。 */
|
|
206
|
+
readonly hash: string;
|
|
207
|
+
readonly message: string;
|
|
208
|
+
readonly author: string;
|
|
209
|
+
/** ISO 8601 提交时间。 */
|
|
210
|
+
readonly date: string;
|
|
211
|
+
}
|
|
212
|
+
/** 一条工作区改动(porcelain XY + 路径)。 */
|
|
213
|
+
export interface GitChange {
|
|
214
|
+
/** 文件路径(重命名显示为 old → new)。 */
|
|
215
|
+
readonly path: string;
|
|
216
|
+
/** XY 状态码(M/A/D/R/?? 等)。 */
|
|
217
|
+
readonly status: string;
|
|
218
|
+
/** 是否已暂存。 */
|
|
219
|
+
readonly staged: boolean;
|
|
220
|
+
}
|
|
221
|
+
/** 四仓概况列表项。 */
|
|
222
|
+
export interface GitRepoSummary {
|
|
223
|
+
readonly id: string;
|
|
224
|
+
readonly name: string;
|
|
225
|
+
readonly dir: string;
|
|
226
|
+
readonly branch: string;
|
|
227
|
+
readonly remote: string;
|
|
228
|
+
readonly ahead: number;
|
|
229
|
+
readonly behind: number;
|
|
230
|
+
readonly dirty: boolean;
|
|
231
|
+
readonly lastCommit: GitCommit | null;
|
|
232
|
+
}
|
|
233
|
+
/** GET /aero-kb/git/repos 响应。 */
|
|
234
|
+
export interface GitReposResponse {
|
|
235
|
+
readonly ok: boolean;
|
|
236
|
+
readonly repos: readonly GitRepoSummary[];
|
|
237
|
+
readonly error?: string;
|
|
238
|
+
}
|
|
239
|
+
/** GET /aero-kb/git/<id>/status 响应。 */
|
|
240
|
+
export interface GitStatusResponse {
|
|
241
|
+
readonly ok: boolean;
|
|
242
|
+
readonly id: string;
|
|
243
|
+
readonly branch: string;
|
|
244
|
+
readonly upstream: string;
|
|
245
|
+
readonly ahead: number;
|
|
246
|
+
readonly behind: number;
|
|
247
|
+
readonly changes: readonly GitChange[];
|
|
248
|
+
readonly log: readonly GitCommit[];
|
|
249
|
+
readonly error?: string;
|
|
250
|
+
}
|
|
251
|
+
/** POST /aero-kb/git/<id>/fetch|pull|push|commit 响应。 */
|
|
252
|
+
export interface GitOpResponse {
|
|
253
|
+
readonly ok: boolean;
|
|
254
|
+
readonly op: 'fetch' | 'pull' | 'push' | 'commit';
|
|
255
|
+
readonly id: string;
|
|
256
|
+
/** git 子进程输出(stdout+stderr 合并,最多保留末尾 256KB)。 */
|
|
257
|
+
readonly output: string;
|
|
258
|
+
/** 操作后的最新状态(成功时)。 */
|
|
259
|
+
readonly summary?: GitStatusResponse;
|
|
260
|
+
readonly error?: string;
|
|
261
|
+
}
|
|
262
|
+
/** GET /aero-kb/slidev/meta?p=<slides.md 相对路径> 响应。 */
|
|
263
|
+
export interface SlidevMetaResponse {
|
|
264
|
+
readonly ok: boolean;
|
|
265
|
+
/** p 指向的确实是 Slidev 课件(slides.md)。 */
|
|
266
|
+
readonly isDeck: boolean;
|
|
267
|
+
readonly relPath: string;
|
|
268
|
+
/** 构建/静态资源在 /aero-kb/slidev/<key>/ 下托管时的 key。 */
|
|
269
|
+
readonly key: string;
|
|
270
|
+
readonly status: 'ready' | 'building' | 'queued' | 'error' | 'not-deck' | 'no-toolchain';
|
|
271
|
+
/** 构建完成时间戳(毫秒),用于 iframe 缓存击穿;未构建时为 0。 */
|
|
272
|
+
readonly builtAt: number;
|
|
273
|
+
readonly slidesUrl: string;
|
|
274
|
+
/** 演讲者视图 URL;构建产物不含 presenter.html 时为空字符串。 */
|
|
275
|
+
readonly presenterUrl: string;
|
|
276
|
+
readonly error: string;
|
|
277
|
+
/** 最近一次构建日志的末尾片段(失败诊断用)。 */
|
|
278
|
+
readonly log: string;
|
|
279
|
+
/** 构建链就绪时的 @slidev/cli 版本;未知为空串。 */
|
|
280
|
+
readonly slidevVersion?: string;
|
|
281
|
+
/** 构建链缺依赖时的体检快照(前端据此直接渲染体检面板,无需再请求一次)。 */
|
|
282
|
+
readonly env?: SlidevEnvReport | undefined;
|
|
283
|
+
}
|
|
284
|
+
/** 单项体检结论。 */
|
|
285
|
+
export interface SlidevEnvCheck {
|
|
286
|
+
readonly id: string;
|
|
287
|
+
readonly label: string;
|
|
288
|
+
readonly status: 'ok' | 'warn' | 'fail';
|
|
289
|
+
/** 实测值/问题描述。 */
|
|
290
|
+
readonly detail: string;
|
|
291
|
+
/** 修复建议(可含命令)。 */
|
|
292
|
+
readonly hint: string;
|
|
293
|
+
/** 探测到的版本号(无则空串)。 */
|
|
294
|
+
readonly version: string;
|
|
295
|
+
}
|
|
296
|
+
/** 一个需要用户同意的修复动作。 */
|
|
297
|
+
export interface SlidevEnvAction {
|
|
298
|
+
readonly id: string;
|
|
299
|
+
readonly label: string;
|
|
300
|
+
/** 为什么需要它。 */
|
|
301
|
+
readonly reason: string;
|
|
302
|
+
/** 将执行的命令(展示给用户)。 */
|
|
303
|
+
readonly command: string;
|
|
304
|
+
/** 执行目录;空串表示宿主机当前工作目录。 */
|
|
305
|
+
readonly cwd: string;
|
|
306
|
+
/** global=写宿主机全局环境;workspace=只写仓库内目录。 */
|
|
307
|
+
readonly scope: 'global' | 'workspace';
|
|
308
|
+
/** 会写入哪里(给用户看的范围说明)。 */
|
|
309
|
+
readonly writes: string;
|
|
310
|
+
/** 同意票据:POST 时原样带回,服务端校验「动作未被篡改且经用户同意」。 */
|
|
311
|
+
readonly token: string;
|
|
312
|
+
readonly disabled: boolean;
|
|
313
|
+
readonly disabledReason: string;
|
|
314
|
+
}
|
|
315
|
+
/** 环境体检报告。 */
|
|
316
|
+
export interface SlidevEnvReport {
|
|
317
|
+
readonly ok: boolean;
|
|
318
|
+
/** 课件构建链是否就绪(fail 项都会导致构建失败;warn 不影响)。 */
|
|
319
|
+
readonly ready: boolean;
|
|
320
|
+
readonly platform: string;
|
|
321
|
+
readonly nodeVersion: string;
|
|
322
|
+
readonly checks: readonly SlidevEnvCheck[];
|
|
323
|
+
/** 当前缺失项的修复动作(可为空)。 */
|
|
324
|
+
readonly actions: readonly SlidevEnvAction[];
|
|
325
|
+
/** 一句话结论。 */
|
|
326
|
+
readonly summary: string;
|
|
327
|
+
/** 体检时间戳(毫秒)。 */
|
|
328
|
+
readonly probedAt: number;
|
|
329
|
+
}
|
|
330
|
+
/** 安装任务状态(进行中/结果概要)。 */
|
|
331
|
+
export interface SlidevEnvInstallState {
|
|
332
|
+
readonly running: boolean;
|
|
333
|
+
readonly actionId: string;
|
|
334
|
+
readonly startedAt: number;
|
|
335
|
+
readonly finishedAt: number;
|
|
336
|
+
readonly output: string;
|
|
337
|
+
readonly code: number | null;
|
|
338
|
+
readonly error: string;
|
|
339
|
+
}
|
|
340
|
+
/** POST /aero-kb/slidev/env 成功响应。 */
|
|
341
|
+
export interface SlidevEnvFixResult {
|
|
342
|
+
readonly ok: boolean;
|
|
343
|
+
readonly actionId: string;
|
|
344
|
+
readonly command: string;
|
|
345
|
+
readonly code: number | null;
|
|
346
|
+
readonly output: string;
|
|
347
|
+
readonly error: string;
|
|
348
|
+
/** 安装后的复检报告。 */
|
|
349
|
+
readonly report: SlidevEnvReport;
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,101 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@dongfangw/study-kit",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "AI 学伴:把任意「带清单的内容库」变成可读、可搜、可标注、可问的学习台;支持多库与私人库隔离",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "AGPL-3.0-or-later",
|
|
7
|
+
"main": "lib/index.js",
|
|
8
|
+
"types": "lib/index.d.ts",
|
|
9
|
+
"dsh": {
|
|
10
|
+
"bundle": {
|
|
11
|
+
"patch": "./cordis.patch.yml"
|
|
12
|
+
},
|
|
13
|
+
"client": {
|
|
14
|
+
"platform": "web",
|
|
15
|
+
"inject": [
|
|
16
|
+
"@deepseek-ai/dsh-api-session-controller",
|
|
17
|
+
"@deepseek-ai/dsh-client-ui-conversation",
|
|
18
|
+
"@deepseek-ai/dsh-client-ui-renderer",
|
|
19
|
+
"@deepseek-ai/dsh-client-ui-session",
|
|
20
|
+
"@deepseek-ai/dsh-client-ui-workspace"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./lib/index.d.ts",
|
|
27
|
+
"default": "./lib/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./client": {
|
|
30
|
+
"types": "./lib/types/client/index.d.ts",
|
|
31
|
+
"default": "./lib/client.js"
|
|
32
|
+
},
|
|
33
|
+
"./package.json": "./package.json"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"lib",
|
|
37
|
+
"ext",
|
|
38
|
+
"skills",
|
|
39
|
+
"cordis.patch.yml",
|
|
40
|
+
"README.md"
|
|
41
|
+
],
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "node scripts/gen-css-modules.mjs \u0026\u0026 tsc -p tsconfig.json \u0026\u0026 tsc -p tsconfig.client.json \u0026\u0026 node node_modules/tsdown/dist/run.mjs",
|
|
44
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
45
|
+
"typecheck:client": "tsc -p tsconfig.client.json --noEmit",
|
|
46
|
+
"test": "node test/run-all.mjs",
|
|
47
|
+
"audit": "node scripts/audit.mjs",
|
|
48
|
+
"gen:css": "node scripts/gen-css-modules.mjs",
|
|
49
|
+
"check:css": "node scripts/gen-css-modules.mjs --check",
|
|
50
|
+
"smoke": "node test/plugin-smoke.mjs"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@dongfangw/library-core": "^0.1.0",
|
|
54
|
+
"@asciidoctor/core": "^3.0.4",
|
|
55
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
|
|
56
|
+
"katex": "^0.16.22",
|
|
57
|
+
"markdown-it": "^14.1.0",
|
|
58
|
+
"yaml": "^2.9.0"
|
|
59
|
+
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"@deepseek-ai/cordis": "~4.0.4",
|
|
62
|
+
"@deepseek-ai/dsh-agent": "\u003e=0.2.0-rc.2",
|
|
63
|
+
"@deepseek-ai/dsh-api-session-controller": "\u003e=0.2.0-rc.2",
|
|
64
|
+
"@deepseek-ai/dsh-client-ui-conversation": "\u003e=0.2.0-rc.2",
|
|
65
|
+
"@deepseek-ai/dsh-client-ui-renderer": "\u003e=0.2.0-rc.2",
|
|
66
|
+
"@deepseek-ai/dsh-client-ui-session": "\u003e=0.2.0-rc.2",
|
|
67
|
+
"@deepseek-ai/dsh-client-ui-slots": "\u003e=0.2.0-rc.2",
|
|
68
|
+
"@deepseek-ai/dsh-client-ui-workspace": "\u003e=0.2.0-rc.2",
|
|
69
|
+
"@deepseek-ai/dsh-host-webserver": "\u003e=0.2.0-rc.2",
|
|
70
|
+
"@deepseek-ai/dsh-session": "\u003e=0.2.0-rc.2",
|
|
71
|
+
"@deepseek-ai/dsh-tools": "\u003e=0.2.0-rc.2",
|
|
72
|
+
"react": "\u003e=18.2.0"
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@deepseek-ai/cordis": "4.0.4",
|
|
76
|
+
"@deepseek-ai/dsh-agent": "0.2.0-rc.2",
|
|
77
|
+
"@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
|
|
78
|
+
"@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
|
|
79
|
+
"@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
|
|
80
|
+
"@deepseek-ai/dsh-client-ui-session": "0.2.0-rc.2",
|
|
81
|
+
"@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
|
|
82
|
+
"@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.2",
|
|
83
|
+
"@deepseek-ai/dsh-host-webserver": "0.2.0-rc.2",
|
|
84
|
+
"@deepseek-ai/dsh-session": "0.2.0-rc.2",
|
|
85
|
+
"@deepseek-ai/dsh-tools": "0.2.0-rc.2",
|
|
86
|
+
"@types/markdown-it": "^14.1.2",
|
|
87
|
+
"@types/node": "^22.20.0",
|
|
88
|
+
"@types/react": "^18.3.1",
|
|
89
|
+
"@types/react-dom": "^18.3.7",
|
|
90
|
+
"lightningcss": "^1.33.0",
|
|
91
|
+
"react": "18.3.1",
|
|
92
|
+
"react-dom": "^18.3.1",
|
|
93
|
+
"tsdown": "^0.22.14",
|
|
94
|
+
"typescript": "^6.0.3"
|
|
95
|
+
},
|
|
96
|
+
"repository": {
|
|
97
|
+
"type": "git",
|
|
98
|
+
"url": "git+https://gitee.com/dongfangW/aero-study-kit.git"
|
|
99
|
+
},
|
|
100
|
+
"homepage": "https://gitee.com/dongfangW/aero-study-kit"
|
|
101
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aero-concept-qa
|
|
3
|
+
description: 解答《空气动力学基础》概念/公式/习题疑问。检索中文教材(权威基准)、英文参考书(多视角)、习题解答(仅教师端)、知识图谱,给出带来源标注、经数值验算的准确答案。触发词:"为什么""什么是""帮我解释""这题怎么做""概念辨析""公式推导"。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 0. 先确定"在哪个库、骨架是什么"(不要凭记忆答)
|
|
7
|
+
|
|
8
|
+
1. 先调 `kb_libraries` 看当前挂载了哪些库、每个库的 `outline`(学习路径骨架)。
|
|
9
|
+
2. `outline` 非空 → **以它为准**组织章节顺序;为空 → 再读该库的目录树(`kb_catalog`)按一级目录归纳。
|
|
10
|
+
3. 本文件后面的章节表只是**某一门课的示例**:库清单里的 `outline` 与它冲突时,一律以清单为准。
|
|
11
|
+
|
|
12
|
+
# 空气动力学答疑(aero-concept-qa)
|
|
13
|
+
|
|
14
|
+
> 📖 **检索优先级(新增)**:先查 `knowledge-base/`(**两册知识手册**:全速域主册 + 数学基础手册,均为 `aero_kb_search` 首位检索源,条目自带来源标注与教材节映射),再以 `textbook/空气动力学基础-曾明/` 原文定基准,英文参考书补多视角。跨声速/高超声速/高温等教材外问题以知识手册编IV–VII 为主要依据。
|
|
15
|
+
>
|
|
16
|
+
> 🧮 **纯数学疑问先查数学基础手册**:问题若落在「矢量/张量怎么算、∇/散度/旋度/高斯–斯托克斯定理、正交曲线坐标公式、复变与复势、PDE 辨型与特征线、泰勒/量纲/Fourier/相似变量」这些**数学工具本身**(而非气动物理),优先检索 `knowledge-base/数学基础/正文/` 的对应 M 节(M01–M09,三编九章 28 节);气动衔接与教材基准仍以主册与曾明教材为准。
|
|
17
|
+
|
|
18
|
+
## 一、答疑流程(务必按顺序)
|
|
19
|
+
|
|
20
|
+
1. **定位章节**:先判断问题属于哪一章(§0 绪论 ~ §7 翼型),用 `aero-learning-path` 的章节表定位
|
|
21
|
+
2. **查教材(权威基准)**:检索曾明教材正文,公式/定义/结论以教材原文为准
|
|
22
|
+
3. **查参考书(多视角)**:英文教材补充物理直觉/历史/辨析,但**不得与教材冲突**,冲突以教材为准
|
|
23
|
+
4. **查习题**:若是题目,查 `习题集与解答/` 对应章(**仅教师端可读**:`aero_kb_catalog` 在
|
|
24
|
+
学习模式下只显示「教师端内容」占位分组,`aero_kb_search` 跳过该目录、`aero_kb_read` 拒绝该路径;
|
|
25
|
+
教师端以 `AERO_TEACHER_MODE=1` 启动可读)。学生问作业题时给**思路/公式/教材依据**,
|
|
26
|
+
**不搬运官方解答**,也不要凭记忆编造"标准答案"
|
|
27
|
+
5. **数值验算**:所有具体数值现场用代码算一遍再回填
|
|
28
|
+
6. **标来源**:答案标注"教材 §X.Y"或"参考书书名 §章节"
|
|
29
|
+
|
|
30
|
+
## 二、检索命令
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# 教材正文关键词检索(把 <aero> 换成实际工作区路径)
|
|
34
|
+
cd <aero>/textbook
|
|
35
|
+
grep -rn "关键词" "空气动力学基础-曾明/第N章_"*/ # 章级检索
|
|
36
|
+
ls "空气动力学基础-曾明/" # 看有哪些章
|
|
37
|
+
|
|
38
|
+
# 英文参考书(Anderson FoA / Bertin / Schlichting 等)
|
|
39
|
+
ls "参考书/" # 看有哪些书
|
|
40
|
+
grep -rn "关键词" "参考书/Anderson-FoA-6e/" --include='*.md' -l | head
|
|
41
|
+
|
|
42
|
+
# 知识图谱(概念关系,绪论/可压缩流/黏性流三章有 YAML)
|
|
43
|
+
cat "知识图谱/source/06-黏性不可压流.yaml" | head -60
|
|
44
|
+
|
|
45
|
+
# 习题解答(仅教师端:学习模式下 aero_kb_read/search 会拒绝/跳过本目录)
|
|
46
|
+
ls "习题集与解答/"
|
|
47
|
+
grep -n "题号/关键词" "习题集与解答/"*.md
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 三、回答规范
|
|
51
|
+
|
|
52
|
+
- **定义/公式**:先给教材原文表述,再给通俗解释,最后给物理意义
|
|
53
|
+
- **推导**:逐步推导,标出每一步用了哪个定理/假设,不跳步
|
|
54
|
+
- **易混辨析**:明确"X 和 Y 的区别"(如无滑移 vs 不渗透、层流 vs 湍流、欧拉描述 vs 拉格朗日描述)
|
|
55
|
+
- **数值题**:列式 → 代入 → 结果,用 `python3 -c` 现场验算
|
|
56
|
+
- **习题(学生作业)**:给思路、公式与教材依据,**不给出成品解答**;辅导不代做,具体数值可示范
|
|
57
|
+
同类例题的验算(例:用教材例题参数重算),不复制作业题的官方答案
|
|
58
|
+
- **超纲内容**:若答案涉及教材外知识(如面元法、茹氏变换、Re_crit=40),明确标注"教材外拓展 + 来源"
|
|
59
|
+
|
|
60
|
+
## 四、常见陷阱(历史教训)
|
|
61
|
+
|
|
62
|
+
- 平板边界层临界 Re=5×10⁵ 是以**流向距离 x** 为特征长度,与管流(管径 d,2320)、圆柱(直径 d,40)口径不同,不可直接比较
|
|
63
|
+
- "无滑移"约束切向速度、"不渗透"约束法向速度,两者不是一回事
|
|
64
|
+
- 理想流体绕圆柱零阻力(达朗贝尔佯谬)是**无滑移缺失**导致的,不是"理想流体无黏所以无摩擦"这么简单
|
|
65
|
+
- 湍流摩擦阻力大但抗分离强——"湍流双刃剑",判断优劣要看具体问题
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aero-learning-path
|
|
3
|
+
description: 《空气动力学基础》知识框架导航。按 9 章结构梳理知识地图、章节间依赖关系、学习路线,帮学生建立整体认知框架。触发词:"知识框架""学习路线""第X章讲什么""章节关系""知识地图""思维导图"。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 0. 先确定"在哪个库、骨架是什么"(不要凭记忆答)
|
|
7
|
+
|
|
8
|
+
1. 先调 `kb_libraries` 看当前挂载了哪些库、每个库的 `outline`(学习路径骨架)。
|
|
9
|
+
2. `outline` 非空 → **以它为准**组织章节顺序;为空 → 再读该库的目录树(`kb_catalog`)按一级目录归纳。
|
|
10
|
+
3. 本文件后面的章节表只是**某一门课的示例**:库清单里的 `outline` 与它冲突时,一律以清单为准。
|
|
11
|
+
|
|
12
|
+
# 空气动力学知识框架导航(aero-learning-path)
|
|
13
|
+
|
|
14
|
+
> 📖 **全速域知识手册(knowledge-base/正文/)**:8 编 36 章的结构化知识地图(基础→低速→亚/跨/超声速→高超声速→高温→应用),每节带教材节映射与来源标注。梳理知识框架时优先从 `knowledge-base/正文/index.adoc` 与各章「章导学」入手,再下钻教材原文与知识图谱。
|
|
15
|
+
>
|
|
16
|
+
> 🧮 **数学基础手册(knowledge-base/数学基础/正文/)**:3 编 9 章 28 节的**数学前置工具链**,与主册并列、独立学习路径——阶段 1 代数与张量(M01–M02)→ 阶段 2 场论(M03–M06)→ 阶段 3 方程与近似工具(M07–M09,按需读)。当学生在主册某节被数学卡住(应力张量、∇ 算子、复势、特征线、量纲分析、Fourier 展开),用 `aero_kb_search` 定位对应 M 节即可;入口 `knowledge-base/数学基础/正文/index.adoc`。
|
|
17
|
+
|
|
18
|
+
## 一、全书 9 章结构(公共坐标)
|
|
19
|
+
|
|
20
|
+
| 章 | 标题 | 核心内容 | 前后依赖 |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| 0 绪论 | 空气动力学概论 | 学科定义、速度分类、风洞/CFD 方法 | 全书入口 |
|
|
23
|
+
| 1 | 流体物理属性与静力学 | 连续介质、黏性、完全气体、标准大气 | 前承高中物理 |
|
|
24
|
+
| 2 | 流体运动学基础 | 欧拉/拉格朗日描述、流线、涡量 | 前承 §1 |
|
|
25
|
+
| 3 | 流体动力学基本方程组 | 连续方程、N-S 方程、能量方程、相似参数 | 前承 §2,全书核心 |
|
|
26
|
+
| 4 | 理想不可压平面无旋流动 | 势函数、叠加法、圆柱绕流、升力定理 | 前承 §3(无黏特例) |
|
|
27
|
+
| 5 | 无黏可压缩流动 | 声速、激波、膨胀波、喷管 | 前承 §3(可压缩) |
|
|
28
|
+
| 6 | 黏性不可压流动与边界层 | 无滑移、Re、边界层、分离、湍流 | 前承 §3(黏性) |
|
|
29
|
+
| 7 | 翼型与细长旋成体气动特性 | 翼型几何、薄翼理论、相似法则、面积律 | 前承 §4/§5/§6 综合 |
|
|
30
|
+
|
|
31
|
+
## 二、主学习路线(建议顺序)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
§0 绪论(建立全貌)
|
|
35
|
+
→ §1 流体属性(定义黏性/可压缩性等基本量)
|
|
36
|
+
→ §2 运动学(怎么描述流动)
|
|
37
|
+
→ §3 基本方程组(N-S 是全书"宪法",先记形式后懂推导)
|
|
38
|
+
→ 分三条线:
|
|
39
|
+
├─ 无黏线:§4(不可压势流)→ §5(可压缩流,激波)
|
|
40
|
+
├─ 黏性线:§6(边界层,阻力从哪来)
|
|
41
|
+
└─ 应用线:§7(翼型/旋成体,把前面全串起来)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 三、关键"枢纽概念"(理解这些就抓住了主干)
|
|
45
|
+
|
|
46
|
+
- **无滑移条件**(§6.1):黏流与理想流的本质分界 → 引出边界层 → 阻力
|
|
47
|
+
- **雷诺数 Re**(§3.9 / §6.1):惯性力/黏性力之比,也是"流态开关"
|
|
48
|
+
- **N-S 方程**(§3.3):全书基本方程,解析解极少 → 引出近似/数值两条路
|
|
49
|
+
- **环量 Γ 与升力定理**(§4.5):$L=\rho V_\infty\Gamma$,升力的统一来源
|
|
50
|
+
- **激波**(§5.3/5.4):超声速的熵增、压力突跃
|
|
51
|
+
|
|
52
|
+
## 四、知识图谱用法
|
|
53
|
+
|
|
54
|
+
`textbook/知识图谱/source/*.yaml` 有绪论/可压缩流/黏性流三章的概念关系(parent 树 + prerequisite 前置边)。问"X 概念的前置是什么""X 和 Y 什么关系"时,先查图谱再查教材正文。
|
|
55
|
+
|
|
56
|
+
## 五、每章学习闭环
|
|
57
|
+
|
|
58
|
+
1. 先看该章 `第N章_关键知识点与思维导图.md`(教材自带重点提炼)
|
|
59
|
+
2. 再读教材正文,逐个公式做"定义→推导→物理意义→工程应用"四问
|
|
60
|
+
3. 做对应章习题,错题回教材找依据
|
|
61
|
+
4. 用 `aero-think` 把本章串成一条因果链
|