@dongfangw/study-kit 0.0.0-stage → 0.1.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/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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slidevEnv.js","sourceRoot":"","sources":["../src/slidevEnv.ts"],"names":[],"mappings":"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"}
|
package/lib/static.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
/**
|
|
3
|
+
* 发送本地文件,支持单区间 Range。
|
|
4
|
+
* 调用方应已设置 Content-Type 之外的其它头(如 Cache-Control);本函数负责
|
|
5
|
+
* Accept-Ranges / Content-Type / Content-Length / Content-Range / 状态码与流式 body。
|
|
6
|
+
*/
|
|
7
|
+
export declare function sendFile(req: IncomingMessage, res: ServerResponse, abs: string, contentType: string): void;
|
|
8
|
+
//# sourceMappingURL=static.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AA6BhE;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAoB1G"}
|
package/lib/static.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 静态文件发送(Range 感知 + 流式)。
|
|
3
|
+
*
|
|
4
|
+
* 背景:Slidev 课件常嵌大视频(BOPPPS 引入环节),浏览器对 <video> 的默认预载
|
|
5
|
+
* 策略是 metadata——只发 `Range: bytes=0-…` 取文件头/元数据,而不会整文件下载。
|
|
6
|
+
* 若服务端忽略 Range、恒返回 200 + 全量 body,浏览器就会为每段视频完整下载整文件:
|
|
7
|
+
* chp0 绪论一节 5 段视频合计 ~200MB,导致课件页「渲染极慢、备课窗口长时间白屏」。
|
|
8
|
+
* 因此这里实现单区间 Range + createReadStream 流式发送,并对外声明 Accept-Ranges。
|
|
9
|
+
*/
|
|
10
|
+
import { createReadStream, statSync } from 'node:fs';
|
|
11
|
+
/** 解析单区间 Range 头;不合法/无法满足时返回 null(回退 200 全量发送)。 */
|
|
12
|
+
function parseRange(range, size) {
|
|
13
|
+
const m = /^bytes=(\d*)-(\d*)$/.exec(range.trim());
|
|
14
|
+
if (m === null)
|
|
15
|
+
return null;
|
|
16
|
+
const a = m[1] ?? '';
|
|
17
|
+
const b = m[2] ?? '';
|
|
18
|
+
if (a === '' && b === '')
|
|
19
|
+
return null;
|
|
20
|
+
let start;
|
|
21
|
+
let end;
|
|
22
|
+
if (a === '') {
|
|
23
|
+
// 后缀区间:最后 b 字节(bytes=-N)
|
|
24
|
+
const n = Number(b);
|
|
25
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
26
|
+
return null;
|
|
27
|
+
start = Math.max(0, size - n);
|
|
28
|
+
end = size - 1;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
start = Number(a);
|
|
32
|
+
if (!Number.isFinite(start) || start < 0)
|
|
33
|
+
return null;
|
|
34
|
+
end = b === '' ? size - 1 : Number(b);
|
|
35
|
+
if (!Number.isFinite(end))
|
|
36
|
+
return null;
|
|
37
|
+
if (start > end || start >= size)
|
|
38
|
+
return null;
|
|
39
|
+
end = Math.min(end, size - 1);
|
|
40
|
+
}
|
|
41
|
+
if (start < 0 || end < 0 || start > end || end >= size)
|
|
42
|
+
return null;
|
|
43
|
+
return { start, end };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 发送本地文件,支持单区间 Range。
|
|
47
|
+
* 调用方应已设置 Content-Type 之外的其它头(如 Cache-Control);本函数负责
|
|
48
|
+
* Accept-Ranges / Content-Type / Content-Length / Content-Range / 状态码与流式 body。
|
|
49
|
+
*/
|
|
50
|
+
export function sendFile(req, res, abs, contentType) {
|
|
51
|
+
const size = statSync(abs).size;
|
|
52
|
+
res.setHeader('Accept-Ranges', 'bytes');
|
|
53
|
+
res.setHeader('Content-Type', contentType);
|
|
54
|
+
const rangeHeader = req.headers.range;
|
|
55
|
+
const range = typeof rangeHeader === 'string' && rangeHeader !== '' ? parseRange(rangeHeader, size) : null;
|
|
56
|
+
if (range === null) {
|
|
57
|
+
res.statusCode = 200;
|
|
58
|
+
res.setHeader('Content-Length', size);
|
|
59
|
+
createReadStream(abs).on('error', onStreamError(res)).pipe(res);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const { start, end } = range;
|
|
63
|
+
res.statusCode = 206;
|
|
64
|
+
res.setHeader('Content-Length', end - start + 1);
|
|
65
|
+
res.setHeader('Content-Range', `bytes ${start}-${end}/${size}`);
|
|
66
|
+
createReadStream(abs, { start, end }).on('error', onStreamError(res)).pipe(res);
|
|
67
|
+
}
|
|
68
|
+
/** 流式读取中途出错(如文件被并发删除)时:销毁响应,避免未处理的 stream error 崩溃进程。 */
|
|
69
|
+
function onStreamError(res) {
|
|
70
|
+
return () => {
|
|
71
|
+
try {
|
|
72
|
+
res.destroy();
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
/* ignore */
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=static.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static.js","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"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"}
|
package/lib/tools.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAoBnD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,IAAI,CA8HlF"}
|
package/lib/tools.js
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 学生向 AI 工具:`kb_libraries` / `kb_catalog` / `kb_read` / `kb_search`。
|
|
3
|
+
*
|
|
4
|
+
* 设计约束:
|
|
5
|
+
* - **不出现课程专名**(R3):描述里只说"库",不说哪门课;课程信息来自内容仓的清单。
|
|
6
|
+
* - **私人库隔离**(P3):`private` 库正常可读可搜(那是学生自己的资料),但任何"导出/分享"
|
|
7
|
+
* 路径都要过 `assertNoPrivateLeak`。
|
|
8
|
+
* - 路径解析:`<库id>/<库内相对路径>`;只给相对路径时按可见库顺序找第一个命中的。
|
|
9
|
+
*/
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
12
|
+
import { isInside, searchLibraries } from '@aero/library-core';
|
|
13
|
+
import { readKbText } from "./render.js";
|
|
14
|
+
import { lookResolved } from "./session.js";
|
|
15
|
+
function textOf(value) {
|
|
16
|
+
return [{ type: 'text', text: value }];
|
|
17
|
+
}
|
|
18
|
+
/** 把 `<libId>/<rel>` 拆开;没有库前缀时返回 null 让调用方逐个库试。 */
|
|
19
|
+
function splitLibraryPath(input, ids) {
|
|
20
|
+
const norm = input.replaceAll('\\', '/');
|
|
21
|
+
for (const id of ids) {
|
|
22
|
+
if (norm === id)
|
|
23
|
+
return { id, rel: '' };
|
|
24
|
+
if (norm.startsWith(id + '/'))
|
|
25
|
+
return { id, rel: norm.slice(id.length + 1) };
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
export function registerKbTools(_rootCtx, agent) {
|
|
30
|
+
const viewerOf = () => lookResolved(agent.session.header.cwd)?.viewer ?? 'student';
|
|
31
|
+
const libs = () => lookResolved(agent.session.header.cwd)?.workspace.libraries ?? [];
|
|
32
|
+
const disposers = [
|
|
33
|
+
agent.ctx.tools.register(defineTool({
|
|
34
|
+
name: 'kb_libraries',
|
|
35
|
+
description: '列出当前工作区里挂载的知识库(id / 名称 / 形态 / 可见性 / 根目录)。当学生问"我在学什么/有哪些资料"、或需要知道某个库的 id 以便用 kb_catalog、kb_read、kb_search 时调用。私人库(visibility: private)只在本人视图出现,不会外传。',
|
|
36
|
+
parameters: {},
|
|
37
|
+
output: { schema: { type: 'object', additionalProperties: true }, render: (_a, v) => textOf(String(v?.text ?? '')) },
|
|
38
|
+
async execute() {
|
|
39
|
+
const ws = lookResolved(agent.session.header.cwd);
|
|
40
|
+
if (ws === null)
|
|
41
|
+
return { text: '未找到知识库:请在工作区放一份 libraries.yaml,或在某个库根放 library.yaml,或设置 AERO_WORKSPACE 指向它们。' };
|
|
42
|
+
const lines = [`工作区:${ws.workspace.root}${ws.workspace.legacy ? '(legacy 布局)' : ''}`, `视图:${ws.viewer}`, ''];
|
|
43
|
+
if (ws.workspace.libraries.length === 0) {
|
|
44
|
+
lines.push('(legacy 布局:按内置规则识别)');
|
|
45
|
+
}
|
|
46
|
+
for (const l of ws.workspace.libraries) {
|
|
47
|
+
const g = l.manifest.groups.length;
|
|
48
|
+
lines.push(`- ${l.manifest.id} · ${l.manifest.title}(${l.manifest.kind} · ${l.manifest.visibility} · ${g} 个分组)`);
|
|
49
|
+
lines.push(` 根目录:${l.root}`);
|
|
50
|
+
if (l.manifest.outline !== undefined && l.manifest.outline.length > 0) {
|
|
51
|
+
lines.push(` 学习路径:${l.manifest.outline.map((o) => o.title).join(' → ')}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { text: lines.join('\n') };
|
|
55
|
+
},
|
|
56
|
+
})),
|
|
57
|
+
agent.ctx.tools.register(defineTool({
|
|
58
|
+
name: 'kb_catalog',
|
|
59
|
+
description: '列出知识库的目录结构(分组 → 文档/课件),路径为 `<库id>/<库内相对路径>`,可直接传给 kb_read。当学生想了解某库有哪些内容、或需要定位资料时调用。',
|
|
60
|
+
parameters: {},
|
|
61
|
+
output: { schema: { type: 'object', additionalProperties: true }, render: (_a, v) => textOf(String(v?.text ?? '')) },
|
|
62
|
+
async execute() {
|
|
63
|
+
const ws = lookResolved(agent.session.header.cwd);
|
|
64
|
+
if (ws === null)
|
|
65
|
+
return { text: '未找到知识库(放一份 libraries.yaml 或 library.yaml)。' };
|
|
66
|
+
const lines = [`工作区:${ws.workspace.root}`, ''];
|
|
67
|
+
const walk = (nodes, indent) => {
|
|
68
|
+
for (const n of nodes) {
|
|
69
|
+
const kids = (n.children ?? []);
|
|
70
|
+
if (n.type === 'group') {
|
|
71
|
+
lines.push(`${indent}${n.name}/`);
|
|
72
|
+
walk(kids, indent + ' ');
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
lines.push(`${indent}- ${n.name} (${n.path})`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
for (const l of ws.workspace.libraries) {
|
|
80
|
+
lines.push(`## ${l.manifest.title}(${l.manifest.id})`);
|
|
81
|
+
const { buildLibraryCatalog } = await import('@aero/library-core');
|
|
82
|
+
walk(buildLibraryCatalog(l.root, l.manifest, ws.viewer).groups, ' ');
|
|
83
|
+
lines.push('');
|
|
84
|
+
}
|
|
85
|
+
return { text: lines.join('\n') };
|
|
86
|
+
},
|
|
87
|
+
})),
|
|
88
|
+
agent.ctx.tools.register(defineTool({
|
|
89
|
+
name: 'kb_read',
|
|
90
|
+
description: '读取知识库里一篇文档的原文(Markdown / AsciiDoc,含 $...$ 数学公式)。path 用 kb_catalog 给出的 `<库id>/<库内相对路径>`;也可只给相对路径(按可见库顺序找)。当需要精确引用定义、公式、推导时调用。',
|
|
91
|
+
parameters: {
|
|
92
|
+
path: { type: 'string', required: true, description: '文档路径,如 my-lib/notes/第1章.md' },
|
|
93
|
+
startLine: { type: 'number', description: '起始行号(1 起,默认 1)' },
|
|
94
|
+
maxLines: { type: 'number', description: '最大返回行数(默认 400)' },
|
|
95
|
+
},
|
|
96
|
+
output: { schema: { type: 'object', additionalProperties: true }, render: (_a, v) => textOf(String(v?.text ?? '')) },
|
|
97
|
+
async execute(args) {
|
|
98
|
+
const ws = lookResolved(agent.session.header.cwd);
|
|
99
|
+
if (ws === null)
|
|
100
|
+
throw new Error('未找到知识库(放一份 libraries.yaml 或 library.yaml)。');
|
|
101
|
+
const input = String(args.path ?? '').trim();
|
|
102
|
+
if (input === '')
|
|
103
|
+
throw new Error('path 不能为空');
|
|
104
|
+
const ids = ws.workspace.libraries.map((l) => l.manifest.id);
|
|
105
|
+
const direct = splitLibraryPath(input, ids);
|
|
106
|
+
const candidates = direct !== null
|
|
107
|
+
? ws.workspace.libraries.filter((l) => l.manifest.id === direct.id).map((l) => ({ lib: l, rel: direct.rel }))
|
|
108
|
+
: ws.workspace.libraries.map((l) => ({ lib: l, rel: input }));
|
|
109
|
+
for (const { lib, rel } of candidates) {
|
|
110
|
+
const abs = path.resolve(lib.root, rel);
|
|
111
|
+
if (!isInside(lib.root, abs))
|
|
112
|
+
throw new Error(`非法路径(越出库根):${rel}`);
|
|
113
|
+
const text = readKbText(lib.root, rel, 8 * 1024 * 1024);
|
|
114
|
+
if (text === null)
|
|
115
|
+
continue;
|
|
116
|
+
const lines = text.split(/\r?\n/);
|
|
117
|
+
const start = Math.max(1, Math.floor(Number(args.startLine ?? 1) || 1));
|
|
118
|
+
const max = Math.max(1, Math.floor(Number(args.maxLines ?? 400) || 400));
|
|
119
|
+
const slice = lines.slice(start - 1, start - 1 + max);
|
|
120
|
+
const header = `# ${lib.manifest.id}/${rel}(共 ${lines.length} 行,展示 ${start}–${start + slice.length - 1} 行)\n`;
|
|
121
|
+
return { text: header + slice.join('\n') };
|
|
122
|
+
}
|
|
123
|
+
throw new Error(`读不到文档:${input}(不存在或过大)`);
|
|
124
|
+
},
|
|
125
|
+
})),
|
|
126
|
+
agent.ctx.tools.register(defineTool({
|
|
127
|
+
name: 'kb_search',
|
|
128
|
+
description: '在当前挂载的知识库里全文检索关键词,返回 库id/路径:行号 与上下文片段(单文档最多 3 条)。知识库可声明状态过滤(如只检索已审核正文)。用于定位概念、公式、术语的出处。',
|
|
129
|
+
parameters: {
|
|
130
|
+
query: { type: 'string', required: true, description: '关键词(中文/英文/公式名)' },
|
|
131
|
+
library: { type: 'string', description: '只搜某个库(库 id),缺省搜全部可见库' },
|
|
132
|
+
},
|
|
133
|
+
output: { schema: { type: 'object', additionalProperties: true }, render: (_a, v) => textOf(String(v?.text ?? '')) },
|
|
134
|
+
async execute(args) {
|
|
135
|
+
const ws = lookResolved(agent.session.header.cwd);
|
|
136
|
+
if (ws === null)
|
|
137
|
+
return { text: '未找到知识库(放一份 libraries.yaml 或 library.yaml)。' };
|
|
138
|
+
const query = String(args.query ?? '').trim();
|
|
139
|
+
if (query === '')
|
|
140
|
+
throw new Error('query 不能为空');
|
|
141
|
+
const only = args.library === undefined ? null : String(args.library);
|
|
142
|
+
const picked = only === null ? libs() : libs().filter((l) => l.manifest.id === only);
|
|
143
|
+
if (picked.length === 0)
|
|
144
|
+
return { text: `没有这个库:${only ?? '(全部)'}` };
|
|
145
|
+
const hits = searchLibraries(picked.map((l) => ({ root: l.root, manifest: l.manifest })), query, { viewer: viewerOf() });
|
|
146
|
+
if (hits.length === 0)
|
|
147
|
+
return { text: `未找到「${query}」的相关内容。` };
|
|
148
|
+
const lines = [`「${query}」命中 ${hits.length} 处:`];
|
|
149
|
+
for (const h of hits)
|
|
150
|
+
lines.push(`- ${h.libraryId}/${h.path}:${h.line}\n ${h.snippet}`);
|
|
151
|
+
return { text: lines.join('\n') };
|
|
152
|
+
},
|
|
153
|
+
})),
|
|
154
|
+
];
|
|
155
|
+
return () => {
|
|
156
|
+
for (const d of disposers)
|
|
157
|
+
d();
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=tools.js.map
|
package/lib/tools.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type AnnoAnchor, type AnnoColor, type AnnoStyle, type Annotation, type AnnotationPatch, type NotePin } from './annotations.js';
|
|
2
|
+
export interface SelectionState {
|
|
3
|
+
/** 选区中心(视口坐标)——工具条以它为水平中心。 */
|
|
4
|
+
readonly x: number;
|
|
5
|
+
/** 选区上沿(视口坐标)——工具条贴在它上方。 */
|
|
6
|
+
readonly y: number;
|
|
7
|
+
readonly anchor: AnnoAnchor;
|
|
8
|
+
}
|
|
9
|
+
export declare function SelectionBar({ sel, onPick, onNote, onAsk, onDismiss }: {
|
|
10
|
+
readonly sel: SelectionState;
|
|
11
|
+
readonly onPick: (color: AnnoColor, style: AnnoStyle) => void;
|
|
12
|
+
readonly onNote: () => void;
|
|
13
|
+
readonly onAsk: (() => void) | null;
|
|
14
|
+
readonly onDismiss: () => void;
|
|
15
|
+
}): JSX.Element;
|
|
16
|
+
export interface EditorState {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
/** 浮层落点(视口坐标)。 */
|
|
19
|
+
readonly left: number;
|
|
20
|
+
readonly top: number;
|
|
21
|
+
}
|
|
22
|
+
/** 浮层落点(不含标注 id):调用方把 id 补上即可。 */
|
|
23
|
+
export interface EditorAnchor {
|
|
24
|
+
readonly left: number;
|
|
25
|
+
readonly top: number;
|
|
26
|
+
}
|
|
27
|
+
/** 浮层落点:优先贴标记下方,下面放不下就翻到上方,左右夹在视口内。 */
|
|
28
|
+
export declare function popoverAt(rect: {
|
|
29
|
+
left: number;
|
|
30
|
+
right: number;
|
|
31
|
+
top: number;
|
|
32
|
+
bottom: number;
|
|
33
|
+
}): EditorAnchor;
|
|
34
|
+
interface EditorProps {
|
|
35
|
+
readonly anno: Annotation;
|
|
36
|
+
readonly at: Pick<EditorState, 'left' | 'top'>;
|
|
37
|
+
readonly onPatch: (patch: AnnotationPatch) => void;
|
|
38
|
+
readonly onDelete: () => void;
|
|
39
|
+
readonly onAsk: ((note: string) => void) | null;
|
|
40
|
+
readonly onClose: () => void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 标注编辑浮层:改色、切线(荧光笔 ⇄ 重点线)、写想法。
|
|
44
|
+
*
|
|
45
|
+
* 保存策略:改色/切线立即生效(点了就能看见);文字用「保存」或 Ctrl/⌘+Enter 提交,
|
|
46
|
+
* 关闭时若有未保存的改动则自动补交一次——学生写着写着点外面走开,不该丢。
|
|
47
|
+
*/
|
|
48
|
+
export declare function NoteEditor({ anno, at, onPatch, onDelete, onAsk, onClose }: EditorProps): JSX.Element;
|
|
49
|
+
interface PanelProps {
|
|
50
|
+
readonly title: string;
|
|
51
|
+
readonly annos: readonly Annotation[];
|
|
52
|
+
/** 导出用的文档键(同一次打开只导出当前文档)。 */
|
|
53
|
+
readonly exportKey: string;
|
|
54
|
+
readonly showPage: boolean;
|
|
55
|
+
readonly onLocate: (anno: Annotation) => void;
|
|
56
|
+
readonly onAsk: ((anno: Annotation) => void) | null;
|
|
57
|
+
readonly onDelete: (anno: Annotation) => void;
|
|
58
|
+
readonly onClear: () => void;
|
|
59
|
+
readonly onClose: () => void;
|
|
60
|
+
}
|
|
61
|
+
/** 标记列表:定位 / 删除 / 问 AI / 复制全部(Markdown,贴给 AI 或自己复习)。 */
|
|
62
|
+
export declare function MarksPanel({ title, annos, exportKey, showPage, onLocate, onAsk, onDelete, onClear, onClose, }: PanelProps): JSX.Element;
|
|
63
|
+
export declare function NotePinLayer({ pins, onOpen }: {
|
|
64
|
+
readonly pins: readonly NotePin[];
|
|
65
|
+
readonly onOpen: (id: string) => void;
|
|
66
|
+
}): JSX.Element | null;
|
|
67
|
+
export declare function MarksFab({ count, noted, open, right, onClick }: {
|
|
68
|
+
readonly count: number;
|
|
69
|
+
readonly noted: number;
|
|
70
|
+
readonly open: boolean;
|
|
71
|
+
readonly right: number;
|
|
72
|
+
readonly onClick: () => void;
|
|
73
|
+
}): JSX.Element;
|
|
74
|
+
export declare function annotationQuestion(quote: string, note: string): string;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=DocMarks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocMarks.d.ts","sourceRoot":"","sources":["../../../src/client/DocMarks.tsx"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,OAAO,EACrG,MAAM,kBAAkB,CAAA;AA2CzB,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAC5B;AAWD,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IACtE,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IAC7D,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAA;CAC/B,GAAG,GAAG,CAAC,OAAO,CAsCd;AAMD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAKD,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAM1G;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CA2HpG;AAwBD,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;IACrC,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,EACzB,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAC/E,EAAE,UAAU,GAAG,GAAG,CAAC,OAAO,CAyG1B;AAMD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAqBrB;AAMD,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAC7B,GAAG,GAAG,CAAC,OAAO,CAkBd;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAStE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { DocRenderResult } from '../types.js';
|
|
2
|
+
import { type ReadingContext } from './prose.js';
|
|
3
|
+
interface Props {
|
|
4
|
+
relPath: string;
|
|
5
|
+
result: DocRenderResult;
|
|
6
|
+
onReadingChange: (ctx: ReadingContext) => void;
|
|
7
|
+
/** 打开知识库内另一文档(相对 KB 根路径)——正文内链接的阅读器内导航。 */
|
|
8
|
+
onOpenDoc?: (relPath: string) => void;
|
|
9
|
+
/** 打开**同一文档的另一段**(超长文档被宿主分段,见 src/docsplit.ts 与 /aero-kb/doc?seg=)。 */
|
|
10
|
+
onOpenSegment?: (seg: number) => void;
|
|
11
|
+
/** 会话工作目录参数(取源文档头部属性做「资料名片」用)。 */
|
|
12
|
+
cwdParam?: string;
|
|
13
|
+
/**
|
|
14
|
+
* 「问 AI」出口:把标注的原文 + 自己的想法交给所在工作台(各台自己组上下文并发送)。
|
|
15
|
+
* 不传则不显示「问 AI」按钮(例如无输入区的只读场景)。
|
|
16
|
+
*/
|
|
17
|
+
onAsk?: (text: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function DocViewer({ relPath, result, onReadingChange, onOpenDoc, onOpenSegment, cwdParam, onAsk }: Props): JSX.Element;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=DocViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocViewer.d.ts","sourceRoot":"","sources":["../../../src/client/DocViewer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,YAAY,CAAA;AAmB3E,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,eAAe,CAAA;IACvB,eAAe,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;IAC9C,2CAA2C;IAC3C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,uEAAuE;IACvE,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAqGD,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA80B7H"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ViewGate } from './viewActive.js';
|
|
2
|
+
/**
|
|
3
|
+
* 顶栏「Git」按钮:轮询四仓概况,按状态显示彩色圆点(GitHub 同步指示风格)。
|
|
4
|
+
*
|
|
5
|
+
* `gate` 是所属工作台的可视性门:标签被保活隐藏时**跳过轮询**(每次 `/aero-kb/git/repos`
|
|
6
|
+
* 都要起 git 子进程,后台空转纯属浪费)。省略时不门控(单文件/嵌入式场景)。
|
|
7
|
+
*/
|
|
8
|
+
export declare function GitStatusButton({ cwd, refreshKey, onClick, gate }: {
|
|
9
|
+
cwd: string | undefined;
|
|
10
|
+
refreshKey: number;
|
|
11
|
+
onClick: () => void;
|
|
12
|
+
gate?: ViewGate;
|
|
13
|
+
}): JSX.Element;
|
|
14
|
+
export declare function GitPanel({ cwd, onChanged, onClose }: {
|
|
15
|
+
cwd: string | undefined;
|
|
16
|
+
/** 操作成功后通知宿主(刷新目录/案例清单/按钮圆点)。 */
|
|
17
|
+
onChanged: () => void;
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
}): JSX.Element;
|
|
20
|
+
//# sourceMappingURL=GitPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitPanel.d.ts","sourceRoot":"","sources":["../../../src/client/GitPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAI/C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAClE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,GAAG,GAAG,CAAC,OAAO,CA+Cd;AA2BD,wBAAgB,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IACpD,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,iCAAiC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,GAAG,GAAG,CAAC,OAAO,CAqOd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryWorkspace.d.ts","sourceRoot":"","sources":["../../../src/client/LibraryWorkspace.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAapE,KAAK,KAAK,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAA;AAyI9C,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA0X1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyLibraries.d.ts","sourceRoot":"","sources":["../../../src/client/MyLibraries.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAEpE,KAAK,KAAK,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAA;AAkD9C,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CAqEtD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ReadingContext } from './prose.js';
|
|
2
|
+
interface Props {
|
|
3
|
+
relPath: string;
|
|
4
|
+
/** 目录树里展示的课件名(取 slides.md 前置 YAML 的 title)。 */
|
|
5
|
+
name: string;
|
|
6
|
+
/** 形如 `&cwd=…` 的查询串(可为空串)。 */
|
|
7
|
+
cwdParam: string;
|
|
8
|
+
onReadingChange: (ctx: ReadingContext) => void;
|
|
9
|
+
/** 「问 AI」出口(与 DocViewer 同一约定):不传则不显示问 AI 按钮。 */
|
|
10
|
+
onAsk?: (text: string) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Slidev 课件播放器:宿主按需构建出静态 SPA(/aero-kb/slidev/<key>/),
|
|
14
|
+
* 右侧 iframe 嵌入放映视图;支持新窗口/演讲者视图/重新构建。
|
|
15
|
+
*
|
|
16
|
+
* 阅读标注:iframe 与宿主同源,因此可以直接读其中的选区、并在其上盖一层色块
|
|
17
|
+
* (见上面 DOM 段的说明)。标注按**页**锚定——课件的内容随翻页整体替换,
|
|
18
|
+
* 「文本偏移」在课件里没有意义,页号 + 原文才是稳定的坐标。
|
|
19
|
+
*
|
|
20
|
+
* 构建链缺失(no-toolchain)或构建失败时**不再停在「正在准备」转圈**:
|
|
21
|
+
* 展开「Slidev 环境体检」面板,逐项说明缺什么,并在用户确认后代为安装。
|
|
22
|
+
*/
|
|
23
|
+
export declare function SlidevDeckViewer({ relPath, name, cwdParam, onReadingChange, onAsk }: Props): JSX.Element;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=SlidevDeckViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlidevDeckViewer.d.ts","sourceRoot":"","sources":["../../../src/client/SlidevDeckViewer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAoBhD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAA;IAC9C,gDAAgD;IAChD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/B;AAwID;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA8bxG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
/** 课件 slides.md 相对路径(用于追加该课件的主题/依赖检查)。 */
|
|
3
|
+
relPath: string;
|
|
4
|
+
/** 形如 `&cwd=…` 的查询串(可为空串)。 */
|
|
5
|
+
cwdParam: string;
|
|
6
|
+
/** 体检通过后回调(上层可据此重挂载播放器)。 */
|
|
7
|
+
onReady?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function SlidevEnvPanel({ relPath, cwdParam, onReady }: Props): JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=SlidevEnvPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlidevEnvPanel.d.ts","sourceRoot":"","sources":["../../../src/client/SlidevEnvPanel.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAgCD,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,GAAG,CAAC,OAAO,CA6JjF"}
|