@keyou007/agent-bot 0.1.17 → 0.1.18-alpha.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/CHANGELOG.md +11 -0
- package/dist/feishu/FeishuConnector.js +7 -1
- package/dist/feishu/FeishuConnector.js.map +1 -1
- package/dist/local-files/LocalFileViewerServer.js +107 -5
- package/dist/local-files/LocalFileViewerServer.js.map +1 -1
- package/dist/proxy/ProxySessionController.js +90 -15
- package/dist/proxy/ProxySessionController.js.map +1 -1
- package/dist/shell/ShellCommandJobManager.js +33 -0
- package/dist/shell/ShellCommandJobManager.js.map +1 -1
- package/npm-shrinkwrap.json +98 -2
- package/package.json +2 -1
- package/src/feishu/FeishuConnector.ts +5 -2
- package/src/local-files/LocalFileViewerServer.ts +112 -5
- package/src/proxy/ProxySessionController.ts +96 -14
- package/src/shell/ShellCommandJobManager.ts +30 -0
|
@@ -15,6 +15,7 @@ export class ShellCommandJobManager {
|
|
|
15
15
|
jobsRoot;
|
|
16
16
|
runnerEntry;
|
|
17
17
|
spawnRunner;
|
|
18
|
+
jobIdByCardMessageId = new Map();
|
|
18
19
|
constructor(jobsRoot, options = {}) {
|
|
19
20
|
this.jobsRoot = jobsRoot;
|
|
20
21
|
this.runnerEntry = options.runnerEntry ?? resolveRunnerEntry();
|
|
@@ -42,8 +43,40 @@ export class ShellCommandJobManager {
|
|
|
42
43
|
const jobDirectory = this.jobDirectory(jobId);
|
|
43
44
|
const spec = await readJson(path.join(jobDirectory, JOB_SPEC_FILE));
|
|
44
45
|
await writeJsonAtomic(path.join(jobDirectory, JOB_SPEC_FILE), { ...spec, cardMessageId });
|
|
46
|
+
this.jobIdByCardMessageId.set(cardMessageId, jobId);
|
|
45
47
|
return this.readJob(jobId);
|
|
46
48
|
}
|
|
49
|
+
async findJobByCardMessageId(cardMessageId) {
|
|
50
|
+
const cachedJobId = this.jobIdByCardMessageId.get(cardMessageId);
|
|
51
|
+
if (cachedJobId) {
|
|
52
|
+
try {
|
|
53
|
+
return await this.readJob(cachedJobId);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
this.jobIdByCardMessageId.delete(cardMessageId);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const entries = await fs.readdir(this.jobsRoot, { withFileTypes: true }).catch((error) => {
|
|
60
|
+
if (error.code === "ENOENT")
|
|
61
|
+
return [];
|
|
62
|
+
throw error;
|
|
63
|
+
});
|
|
64
|
+
for (const entry of entries) {
|
|
65
|
+
if (!entry.isDirectory())
|
|
66
|
+
continue;
|
|
67
|
+
try {
|
|
68
|
+
const spec = await readJson(path.join(this.jobsRoot, entry.name, JOB_SPEC_FILE));
|
|
69
|
+
if (spec.cardMessageId)
|
|
70
|
+
this.jobIdByCardMessageId.set(spec.cardMessageId, spec.id);
|
|
71
|
+
if (spec.cardMessageId === cardMessageId)
|
|
72
|
+
return this.readJob(spec.id);
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Ignore partially written or unrelated job directories while rebuilding the card index.
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
47
80
|
async startJob(jobId) {
|
|
48
81
|
const jobDirectory = this.jobDirectory(jobId);
|
|
49
82
|
await this.spawnRunner(this.runnerEntry, jobDirectory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellCommandJobManager.js","sourceRoot":"","sources":["../../src/shell/ShellCommandJobManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShellCommandJobManager.js","sourceRoot":"","sources":["../../src/shell/ShellCommandJobManager.ts"],"names":[],"mappings":"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"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyou007/agent-bot",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18-alpha.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@keyou007/agent-bot",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.18-alpha.1",
|
|
10
10
|
"license": "GPL-3.0-only",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@agentclientprotocol/sdk": "1.2.1",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"better-sqlite3": "12.11.1",
|
|
17
17
|
"dotenv": "17.4.2",
|
|
18
18
|
"highlight.js": "11.12.0",
|
|
19
|
+
"markdown-it": "15.0.1",
|
|
19
20
|
"pino": "10.3.1",
|
|
20
21
|
"yaml": "2.9.0",
|
|
21
22
|
"zod": "4.4.3"
|
|
@@ -1927,6 +1928,22 @@
|
|
|
1927
1928
|
"url": "https://github.com/sponsors/epoberezkin"
|
|
1928
1929
|
}
|
|
1929
1930
|
},
|
|
1931
|
+
"node_modules/argparse": {
|
|
1932
|
+
"version": "3.0.1",
|
|
1933
|
+
"resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.1.tgz",
|
|
1934
|
+
"integrity": "sha512-nM4mHF/KM1v59ZNKX7zfusQz5wUAxR511YG8Vo6TyiV4aqhu++rbJW4v04xsWhpSsHFj66flT8P7znVpyO20xQ==",
|
|
1935
|
+
"funding": [
|
|
1936
|
+
{
|
|
1937
|
+
"type": "github",
|
|
1938
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
1939
|
+
},
|
|
1940
|
+
{
|
|
1941
|
+
"type": "github",
|
|
1942
|
+
"url": "https://github.com/sponsors/nodeca"
|
|
1943
|
+
}
|
|
1944
|
+
],
|
|
1945
|
+
"license": "PSF-2.0"
|
|
1946
|
+
},
|
|
1930
1947
|
"node_modules/assertion-error": {
|
|
1931
1948
|
"version": "2.0.1",
|
|
1932
1949
|
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
|
|
@@ -2245,6 +2262,18 @@
|
|
|
2245
2262
|
"once": "^1.4.0"
|
|
2246
2263
|
}
|
|
2247
2264
|
},
|
|
2265
|
+
"node_modules/entities": {
|
|
2266
|
+
"version": "8.0.0",
|
|
2267
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz",
|
|
2268
|
+
"integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==",
|
|
2269
|
+
"license": "BSD-2-Clause",
|
|
2270
|
+
"engines": {
|
|
2271
|
+
"node": ">=20.19.0"
|
|
2272
|
+
},
|
|
2273
|
+
"funding": {
|
|
2274
|
+
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
2275
|
+
}
|
|
2276
|
+
},
|
|
2248
2277
|
"node_modules/es-define-property": {
|
|
2249
2278
|
"version": "1.0.1",
|
|
2250
2279
|
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
|
|
@@ -3251,6 +3280,25 @@
|
|
|
3251
3280
|
"url": "https://opencollective.com/parcel"
|
|
3252
3281
|
}
|
|
3253
3282
|
},
|
|
3283
|
+
"node_modules/linkify-it": {
|
|
3284
|
+
"version": "6.1.0",
|
|
3285
|
+
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-6.1.0.tgz",
|
|
3286
|
+
"integrity": "sha512-wJ/TwpSDTLepCrQoYWYIExIKg5Zchex2Nn5yk2mFnB+6PtdkHtyLx742md9csRjjOnGkKIS/RrbY7l8D6gT9Vw==",
|
|
3287
|
+
"funding": [
|
|
3288
|
+
{
|
|
3289
|
+
"type": "github",
|
|
3290
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
3291
|
+
},
|
|
3292
|
+
{
|
|
3293
|
+
"type": "github",
|
|
3294
|
+
"url": "https://github.com/sponsors/markdown-it"
|
|
3295
|
+
}
|
|
3296
|
+
],
|
|
3297
|
+
"license": "MIT",
|
|
3298
|
+
"dependencies": {
|
|
3299
|
+
"uc.micro": "^3.0.0"
|
|
3300
|
+
}
|
|
3301
|
+
},
|
|
3254
3302
|
"node_modules/locate-path": {
|
|
3255
3303
|
"version": "6.0.0",
|
|
3256
3304
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
|
|
@@ -3301,6 +3349,33 @@
|
|
|
3301
3349
|
"@jridgewell/sourcemap-codec": "^1.5.5"
|
|
3302
3350
|
}
|
|
3303
3351
|
},
|
|
3352
|
+
"node_modules/markdown-it": {
|
|
3353
|
+
"version": "15.0.1",
|
|
3354
|
+
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-15.0.1.tgz",
|
|
3355
|
+
"integrity": "sha512-9/7gE95FNPkfUWrjJIoHZza2iLmuJlPD0UNMxPi7bxUrbCR525YZY0r+zyfes0dZI5ZZ/uNIXUJca0pJvtw41g==",
|
|
3356
|
+
"funding": [
|
|
3357
|
+
{
|
|
3358
|
+
"type": "github",
|
|
3359
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
3360
|
+
},
|
|
3361
|
+
{
|
|
3362
|
+
"type": "github",
|
|
3363
|
+
"url": "https://github.com/sponsors/markdown-it"
|
|
3364
|
+
}
|
|
3365
|
+
],
|
|
3366
|
+
"license": "MIT",
|
|
3367
|
+
"dependencies": {
|
|
3368
|
+
"argparse": "^3.0.0",
|
|
3369
|
+
"entities": "^8.0.0",
|
|
3370
|
+
"linkify-it": "^6.0.0",
|
|
3371
|
+
"mdurl": "^2.1.0",
|
|
3372
|
+
"punycode.js": "^2.3.1",
|
|
3373
|
+
"uc.micro": "^3.0.0"
|
|
3374
|
+
},
|
|
3375
|
+
"bin": {
|
|
3376
|
+
"markdown-it": "bin/markdown-it.mjs"
|
|
3377
|
+
}
|
|
3378
|
+
},
|
|
3304
3379
|
"node_modules/math-intrinsics": {
|
|
3305
3380
|
"version": "1.1.0",
|
|
3306
3381
|
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
|
|
@@ -3310,6 +3385,12 @@
|
|
|
3310
3385
|
"node": ">= 0.4"
|
|
3311
3386
|
}
|
|
3312
3387
|
},
|
|
3388
|
+
"node_modules/mdurl": {
|
|
3389
|
+
"version": "2.1.0",
|
|
3390
|
+
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz",
|
|
3391
|
+
"integrity": "sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==",
|
|
3392
|
+
"license": "MIT"
|
|
3393
|
+
},
|
|
3313
3394
|
"node_modules/mime-db": {
|
|
3314
3395
|
"version": "1.52.0",
|
|
3315
3396
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
|
@@ -3752,6 +3833,15 @@
|
|
|
3752
3833
|
"node": ">=6"
|
|
3753
3834
|
}
|
|
3754
3835
|
},
|
|
3836
|
+
"node_modules/punycode.js": {
|
|
3837
|
+
"version": "2.3.1",
|
|
3838
|
+
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
|
|
3839
|
+
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
|
|
3840
|
+
"license": "MIT",
|
|
3841
|
+
"engines": {
|
|
3842
|
+
"node": ">=6"
|
|
3843
|
+
}
|
|
3844
|
+
},
|
|
3755
3845
|
"node_modules/qs": {
|
|
3756
3846
|
"version": "6.15.3",
|
|
3757
3847
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
|
|
@@ -4277,6 +4367,12 @@
|
|
|
4277
4367
|
"@typescript/typescript-win32-x64": "7.0.2"
|
|
4278
4368
|
}
|
|
4279
4369
|
},
|
|
4370
|
+
"node_modules/uc.micro": {
|
|
4371
|
+
"version": "3.0.0",
|
|
4372
|
+
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-3.0.0.tgz",
|
|
4373
|
+
"integrity": "sha512-U3PppEkleoTnIfi8BozMx3yju3qc/L6SwqWo2Sw+54PX+PX0q9I+r1Um5HCmqD7n9VDX5/v3vQH/AjA6deDdtw==",
|
|
4374
|
+
"license": "MIT"
|
|
4375
|
+
},
|
|
4280
4376
|
"node_modules/undici-types": {
|
|
4281
4377
|
"version": "6.21.0",
|
|
4282
4378
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyou007/agent-bot",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18-alpha.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Use Codex, TraeX, and compatible coding agents from Lark/Feishu.",
|
|
6
6
|
"license": "GPL-3.0-only",
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
"better-sqlite3": "12.11.1",
|
|
75
75
|
"dotenv": "17.4.2",
|
|
76
76
|
"highlight.js": "11.12.0",
|
|
77
|
+
"markdown-it": "15.0.1",
|
|
77
78
|
"pino": "10.3.1",
|
|
78
79
|
"yaml": "2.9.0",
|
|
79
80
|
"zod": "4.4.3"
|
|
@@ -284,8 +284,11 @@ function toIncomingMessage(
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
function mentionsOpenId(value: unknown, openId: string): boolean {
|
|
287
|
-
return Array.isArray(value) && value.some((mention) =>
|
|
288
|
-
isRecord(mention)
|
|
287
|
+
return Array.isArray(value) && value.some((mention) => {
|
|
288
|
+
if (!isRecord(mention)) return false;
|
|
289
|
+
if (mention.id === openId || mention.open_id === openId) return true;
|
|
290
|
+
return isRecord(mention.id) && mention.id.open_id === openId;
|
|
291
|
+
});
|
|
289
292
|
}
|
|
290
293
|
|
|
291
294
|
function parseMessageContent(
|
|
@@ -6,6 +6,7 @@ import hljs from "highlight.js/lib/common";
|
|
|
6
6
|
import dos from "highlight.js/lib/languages/dos";
|
|
7
7
|
import dockerfile from "highlight.js/lib/languages/dockerfile";
|
|
8
8
|
import powershell from "highlight.js/lib/languages/powershell";
|
|
9
|
+
import MarkdownIt from "markdown-it";
|
|
9
10
|
import {
|
|
10
11
|
selectPreferredNetworkAddress,
|
|
11
12
|
type NetworkConnectionKind,
|
|
@@ -19,10 +20,27 @@ const MAX_TEXT_PREVIEW_BYTES = 2 * 1024 * 1024;
|
|
|
19
20
|
const MAX_CONTENT_SAMPLE_BYTES = 64 * 1024;
|
|
20
21
|
const MAX_SYNTAX_HIGHLIGHT_BYTES = 512 * 1024;
|
|
21
22
|
const DIRECTORY_PAGE_SIZE = 100;
|
|
23
|
+
const MARKDOWN_EXTENSIONS = new Set([".markdown", ".md", ".mdown", ".mkd", ".mkdn"]);
|
|
22
24
|
hljs.registerLanguage("dos", dos);
|
|
23
25
|
hljs.registerLanguage("dockerfile", dockerfile);
|
|
24
26
|
hljs.registerLanguage("powershell", powershell);
|
|
25
27
|
|
|
28
|
+
const MARKDOWN_RENDERER = new MarkdownIt({
|
|
29
|
+
breaks: false,
|
|
30
|
+
html: false,
|
|
31
|
+
linkify: true,
|
|
32
|
+
typographer: false,
|
|
33
|
+
highlight(value, language) {
|
|
34
|
+
const highlighted = language && hljs.getLanguage(language)
|
|
35
|
+
? hljs.highlight(value, { language, ignoreIllegals: true }).value
|
|
36
|
+
: escapeHtml(value);
|
|
37
|
+
const languageAttribute = language && hljs.getLanguage(language)
|
|
38
|
+
? ` class="language-${escapeAttribute(language)}"`
|
|
39
|
+
: "";
|
|
40
|
+
return `<pre class="markdown-code-block hljs"><code${languageAttribute}>${highlighted}</code></pre>`;
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
|
|
26
44
|
const HIGHLIGHT_LANGUAGE_BY_EXTENSION: Readonly<Record<string, string>> = {
|
|
27
45
|
".bash": "bash", ".bat": "dos", ".c": "c", ".cc": "cpp", ".cmd": "dos", ".cpp": "cpp",
|
|
28
46
|
".cs": "csharp", ".css": "css", ".cxx": "cpp", ".diff": "diff", ".go": "go", ".h": "cpp",
|
|
@@ -46,9 +64,31 @@ const VIEWER_CLIENT_SCRIPT = `(() => {
|
|
|
46
64
|
const metadata = document.getElementById("viewer-metadata");
|
|
47
65
|
const header = document.getElementById("viewer-header");
|
|
48
66
|
const title = document.getElementById("viewer-title");
|
|
67
|
+
const viewSwitch = document.getElementById("viewer-view-switch");
|
|
68
|
+
const viewButtons = Array.from(document.querySelectorAll("[data-view-mode-button]"));
|
|
49
69
|
if (!content || !metadata || !header || !title) return;
|
|
50
70
|
const filePath = title.dataset.filePath || title.textContent || "";
|
|
51
71
|
|
|
72
|
+
const syncViewMode = () => {
|
|
73
|
+
const mode = document.body.dataset.viewMode === "code" ? "code" : "rendered";
|
|
74
|
+
for (const button of viewButtons) {
|
|
75
|
+
const active = button.dataset.viewModeButton === mode;
|
|
76
|
+
button.classList.toggle("is-active", active);
|
|
77
|
+
button.setAttribute("aria-selected", String(active));
|
|
78
|
+
}
|
|
79
|
+
for (const panel of content.querySelectorAll("[data-view-panel]")) {
|
|
80
|
+
panel.setAttribute("aria-hidden", String(panel.dataset.viewPanel !== mode));
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const setViewMode = (mode) => {
|
|
84
|
+
document.body.dataset.viewMode = mode === "code" ? "code" : "rendered";
|
|
85
|
+
syncViewMode();
|
|
86
|
+
if (mode === "code") requestAnimationFrame(positionHashTarget);
|
|
87
|
+
};
|
|
88
|
+
for (const button of viewButtons) {
|
|
89
|
+
button.addEventListener("click", () => setViewMode(button.dataset.viewModeButton));
|
|
90
|
+
}
|
|
91
|
+
|
|
52
92
|
title.addEventListener("pointerdown", (event) => {
|
|
53
93
|
if (event.button !== 0) return;
|
|
54
94
|
event.preventDefault();
|
|
@@ -83,6 +123,8 @@ const VIEWER_CLIENT_SCRIPT = `(() => {
|
|
|
83
123
|
const positionHashTarget = () => {
|
|
84
124
|
highlightHashTarget()?.scrollIntoView({ block: "start" });
|
|
85
125
|
};
|
|
126
|
+
if (/^#L\\d+$/u.test(window.location.hash)) document.body.dataset.viewMode = "code";
|
|
127
|
+
syncViewMode();
|
|
86
128
|
updateHeaderOffset();
|
|
87
129
|
if (typeof ResizeObserver === "function") {
|
|
88
130
|
new ResizeObserver(updateHeaderOffset).observe(header);
|
|
@@ -107,6 +149,7 @@ const VIEWER_CLIENT_SCRIPT = `(() => {
|
|
|
107
149
|
const codeScrollLeft = content.querySelector(".code")?.scrollLeft ?? 0;
|
|
108
150
|
content.innerHTML = nextContent;
|
|
109
151
|
metadata.innerHTML = nextMetadata;
|
|
152
|
+
syncViewMode();
|
|
110
153
|
highlightHashTarget();
|
|
111
154
|
restoreScroll(top, left, atBottom, codeScrollLeft);
|
|
112
155
|
};
|
|
@@ -116,6 +159,7 @@ const VIEWER_CLIENT_SCRIPT = `(() => {
|
|
|
116
159
|
try {
|
|
117
160
|
const update = JSON.parse(event.data);
|
|
118
161
|
if (typeof update.content === "string" && typeof update.metadata === "string") {
|
|
162
|
+
if (viewSwitch) viewSwitch.hidden = update.viewMode !== "markdown";
|
|
119
163
|
replaceContent(update.content, update.metadata);
|
|
120
164
|
}
|
|
121
165
|
} catch {
|
|
@@ -157,6 +201,7 @@ interface DirectoryViewerEntry {
|
|
|
157
201
|
interface RenderedFileSnapshot {
|
|
158
202
|
content: string;
|
|
159
203
|
metadata: string[];
|
|
204
|
+
viewMode?: "markdown";
|
|
160
205
|
}
|
|
161
206
|
|
|
162
207
|
export interface LocalFileViewerServerOptions {
|
|
@@ -423,6 +468,7 @@ export class LocalFileViewerServer {
|
|
|
423
468
|
{ href: downloadUrl.toString(), label: "下载" },
|
|
424
469
|
],
|
|
425
470
|
content: snapshot.content,
|
|
471
|
+
viewMode: snapshot.viewMode,
|
|
426
472
|
liveUpdates: {
|
|
427
473
|
eventsUrl: eventsUrl.toString(),
|
|
428
474
|
scriptPath: `${this.basePath}/assets/viewer.js`.replace(/\/{2,}/gu, "/"),
|
|
@@ -442,7 +488,10 @@ export class LocalFileViewerServer {
|
|
|
442
488
|
let content: string;
|
|
443
489
|
if (classification.kind === "text") {
|
|
444
490
|
const preview = readTextPreview(filePath, stat.size, classification.encoding);
|
|
445
|
-
|
|
491
|
+
const previewContent = isMarkdownFile(filePath)
|
|
492
|
+
? renderMarkdownDocument(preview.text, filePath)
|
|
493
|
+
: renderText(preview.text, filePath);
|
|
494
|
+
content = `${preview.truncated ? '<div class="notice">文件较大,仅显示开头 2 MiB。可使用下方按钮查看或下载完整文件。</div>' : ""}${previewContent}`;
|
|
446
495
|
} else if (contentType.startsWith("image/")) {
|
|
447
496
|
content = `<div class="media"><img src="${escapeAttribute(rawUrl.toString())}" alt="${escapeAttribute(fileName)}"></div>`;
|
|
448
497
|
} else if (contentType === "application/pdf") {
|
|
@@ -457,6 +506,9 @@ export class LocalFileViewerServer {
|
|
|
457
506
|
return {
|
|
458
507
|
content,
|
|
459
508
|
metadata: [formatFileSize(stat.size), stat.mtime.toLocaleString()],
|
|
509
|
+
...(classification.kind === "text" && isMarkdownFile(filePath)
|
|
510
|
+
? { viewMode: "markdown" as const }
|
|
511
|
+
: {}),
|
|
460
512
|
};
|
|
461
513
|
}
|
|
462
514
|
|
|
@@ -485,6 +537,7 @@ export class LocalFileViewerServer {
|
|
|
485
537
|
writeServerSentEvent(response, "update", JSON.stringify({
|
|
486
538
|
content: snapshot.content,
|
|
487
539
|
metadata: renderMetadata(snapshot.metadata),
|
|
540
|
+
viewMode: snapshot.viewMode ?? null,
|
|
488
541
|
}));
|
|
489
542
|
} catch {
|
|
490
543
|
writeServerSentEvent(response, "unavailable", JSON.stringify({
|
|
@@ -637,12 +690,19 @@ function renderViewerPage(input: {
|
|
|
637
690
|
metadata: string[];
|
|
638
691
|
actions: Array<{ href: string; label: string }>;
|
|
639
692
|
content: string;
|
|
693
|
+
viewMode?: "markdown";
|
|
640
694
|
liveUpdates?: { eventsUrl: string; scriptPath: string };
|
|
641
695
|
}): string {
|
|
642
696
|
const metadata = renderMetadata(input.metadata);
|
|
643
697
|
const actions = input.actions.length > 0
|
|
644
698
|
? `<nav class="actions">${input.actions.map((action) => `<a href="${escapeAttribute(action.href)}">${escapeHtml(action.label)}</a>`).join("")}</nav>`
|
|
645
699
|
: "";
|
|
700
|
+
const viewSwitch = input.viewMode === "markdown"
|
|
701
|
+
? '<div class="view-switch" id="viewer-view-switch" role="tablist" aria-label="预览模式"><button class="is-active" type="button" role="tab" aria-selected="true" data-view-mode-button="rendered">预览</button><button type="button" role="tab" aria-selected="false" data-view-mode-button="code">代码</button></div>'
|
|
702
|
+
: "";
|
|
703
|
+
const toolbar = viewSwitch || actions
|
|
704
|
+
? `<div class="toolbar">${viewSwitch}${actions}</div>`
|
|
705
|
+
: "";
|
|
646
706
|
const liveAttributes = input.liveUpdates
|
|
647
707
|
? ` data-events-url="${escapeAttribute(input.liveUpdates.eventsUrl)}"`
|
|
648
708
|
: "";
|
|
@@ -661,10 +721,15 @@ function renderViewerPage(input: {
|
|
|
661
721
|
body { margin: 0; background: #f5f7fa; color: #1f2329; }
|
|
662
722
|
header { position: sticky; top: 0; z-index: 2; padding: 7px 12px; background: rgba(255,255,255,.96); border-bottom: 1px solid #dfe3e8; }
|
|
663
723
|
h1 { margin: 0; cursor: text; font: 600 13px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
|
|
664
|
-
.meta { display: flex; gap: 10px; align-items: center; min-height: 26px; margin-top: 3px; color: #646a73; font-size: 11px; }
|
|
724
|
+
.meta { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; min-height: 26px; margin-top: 3px; color: #646a73; font-size: 11px; }
|
|
665
725
|
.metadata-values { display: contents; }
|
|
666
|
-
.
|
|
726
|
+
.toolbar { margin-left: auto; display: flex; gap: 8px; align-items: center; }
|
|
727
|
+
.actions { display: flex; gap: 8px; }
|
|
667
728
|
.actions a { color: #1456f0; text-decoration: none; padding: 3px 7px; border: 1px solid #c9d0db; border-radius: 4px; background: #fff; }
|
|
729
|
+
.view-switch { display: inline-flex; padding: 2px; border: 1px solid #c9d0db; border-radius: 5px; background: #f2f3f5; }
|
|
730
|
+
.view-switch[hidden] { display: none; }
|
|
731
|
+
.view-switch button { min-width: 46px; padding: 2px 8px; border: 0; border-radius: 3px; background: transparent; color: #646a73; cursor: pointer; font: inherit; }
|
|
732
|
+
.view-switch button.is-active { background: #fff; color: #1456f0; box-shadow: 0 1px 3px rgba(31,35,41,.16); }
|
|
668
733
|
main { padding: 0; }
|
|
669
734
|
.notice, .unsupported { margin: 8px; padding: 10px 12px; border: 1px solid #f3cf8f; background: #fff7e6; border-radius: 5px; }
|
|
670
735
|
.code { margin: 0; padding: 6px 0; overflow: auto; border: 0; border-radius: 0; background: #fff; color: #1f2329; font-size: 13px; line-height: 1.5; tab-size: 2; }
|
|
@@ -681,6 +746,28 @@ function renderViewerPage(input: {
|
|
|
681
746
|
.hljs-addition { background: #e6ffed; }
|
|
682
747
|
.hljs-emphasis { font-style: italic; }
|
|
683
748
|
.hljs-strong { font-weight: 700; }
|
|
749
|
+
body[data-view-mode="rendered"] [data-view-panel="code"], body[data-view-mode="code"] [data-view-panel="rendered"] { display: none; }
|
|
750
|
+
.markdown-body { max-width: 980px; margin: 0 auto; padding: 20px 28px 48px; background: #fff; font-size: 15px; line-height: 1.72; overflow-wrap: anywhere; }
|
|
751
|
+
.markdown-body > :first-child { margin-top: 0; }
|
|
752
|
+
.markdown-body > :last-child { margin-bottom: 0; }
|
|
753
|
+
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin: 1.45em 0 .6em; line-height: 1.28; }
|
|
754
|
+
.markdown-body h1 { padding-bottom: .35em; border-bottom: 1px solid #dfe3e8; font-size: 2em; }
|
|
755
|
+
.markdown-body h2 { padding-bottom: .3em; border-bottom: 1px solid #eceff3; font-size: 1.5em; }
|
|
756
|
+
.markdown-body h3 { font-size: 1.25em; }
|
|
757
|
+
.markdown-body p, .markdown-body ul, .markdown-body ol, .markdown-body blockquote, .markdown-body table, .markdown-body pre { margin: 0 0 1em; }
|
|
758
|
+
.markdown-body ul, .markdown-body ol { padding-left: 1.8em; }
|
|
759
|
+
.markdown-body li + li { margin-top: .28em; }
|
|
760
|
+
.markdown-body blockquote { margin-left: 0; padding: .15em 1em; border-left: 4px solid #c9d0db; color: #646a73; }
|
|
761
|
+
.markdown-body a { color: #1456f0; text-decoration: none; }
|
|
762
|
+
.markdown-body a:hover { text-decoration: underline; }
|
|
763
|
+
.markdown-body code { padding: .14em .35em; border-radius: 4px; background: #f2f3f5; font-family: var(--viewer-code-font); font-size: .9em; }
|
|
764
|
+
.markdown-body .markdown-code-block { margin: 0 0 1em; padding: 14px 16px; overflow: auto; border-radius: 6px; background: #f6f8fa; line-height: 1.55; }
|
|
765
|
+
.markdown-body .markdown-code-block code { padding: 0; background: transparent; font-size: 13px; }
|
|
766
|
+
.markdown-body table { display: block; max-width: 100%; overflow: auto; border-collapse: collapse; }
|
|
767
|
+
.markdown-body th, .markdown-body td { padding: 7px 12px; border: 1px solid #dfe3e8; text-align: left; }
|
|
768
|
+
.markdown-body th { background: #f5f7fa; }
|
|
769
|
+
.markdown-body img { max-width: 100%; height: auto; }
|
|
770
|
+
.markdown-body hr { height: 1px; margin: 1.5em 0; border: 0; background: #dfe3e8; }
|
|
684
771
|
.media { display: grid; place-items: center; min-height: 220px; }
|
|
685
772
|
.media img, .media video { max-width: 100%; max-height: calc(100vh - 70px); }
|
|
686
773
|
.media audio { width: min(720px, 100%); }
|
|
@@ -704,7 +791,19 @@ function renderViewerPage(input: {
|
|
|
704
791
|
.meta, .pagination { color: #a6a9ad; }
|
|
705
792
|
.actions a, .pagination a { color: #8ab4ff; }
|
|
706
793
|
.actions a { border-color: #55585c; background: #292a2d; }
|
|
794
|
+
.view-switch { border-color: #55585c; background: #292a2d; }
|
|
795
|
+
.view-switch button { color: #a6a9ad; }
|
|
796
|
+
.view-switch button.is-active { background: #3a3b3d; color: #8ab4ff; box-shadow: none; }
|
|
707
797
|
.code, .directory-list { background: #202124; color: #e8eaed; border-color: #3a3b3d; }
|
|
798
|
+
.markdown-body { background: #202124; color: #e8eaed; }
|
|
799
|
+
.markdown-body h1, .markdown-body h2 { border-color: #3a3b3d; }
|
|
800
|
+
.markdown-body blockquote { color: #a6a9ad; border-color: #55585c; }
|
|
801
|
+
.markdown-body a { color: #8ab4ff; }
|
|
802
|
+
.markdown-body code { background: #303134; }
|
|
803
|
+
.markdown-body .markdown-code-block { background: #282a2d; }
|
|
804
|
+
.markdown-body th, .markdown-body td { border-color: #55585c; }
|
|
805
|
+
.markdown-body th { background: #292a2d; }
|
|
806
|
+
.markdown-body hr { background: #3a3b3d; }
|
|
708
807
|
.directory-entry { border-color: #3a3b3d; }
|
|
709
808
|
.directory-entry:hover { background: #292f3d; }
|
|
710
809
|
.line-number { color: #8b9098; border-color: #3a3b3d; }
|
|
@@ -720,10 +819,10 @@ function renderViewerPage(input: {
|
|
|
720
819
|
}
|
|
721
820
|
</style>
|
|
722
821
|
</head>
|
|
723
|
-
<body${liveAttributes}>
|
|
822
|
+
<body${input.viewMode === "markdown" ? ' data-view-mode="rendered"' : ""}${liveAttributes}>
|
|
724
823
|
<header id="viewer-header">
|
|
725
824
|
<h1 id="viewer-title" data-file-path="${escapeAttribute(input.filePath)}">${escapeHtml(input.filePath)}</h1>
|
|
726
|
-
<div class="meta"><span class="metadata-values" id="viewer-metadata">${metadata}</span>${
|
|
825
|
+
<div class="meta"><span class="metadata-values" id="viewer-metadata">${metadata}</span>${toolbar}</div>
|
|
727
826
|
</header>
|
|
728
827
|
<main id="viewer-content">${input.content}</main>
|
|
729
828
|
${liveScript}
|
|
@@ -976,6 +1075,14 @@ function renderText(value: string, filePath: string): string {
|
|
|
976
1075
|
}).join("")}</code></pre>`;
|
|
977
1076
|
}
|
|
978
1077
|
|
|
1078
|
+
function renderMarkdownDocument(value: string, filePath: string): string {
|
|
1079
|
+
return `<article class="markdown-body" data-view-panel="rendered">${MARKDOWN_RENDERER.render(value)}</article><section data-view-panel="code">${renderText(value, filePath)}</section>`;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
function isMarkdownFile(filePath: string): boolean {
|
|
1083
|
+
return MARKDOWN_EXTENSIONS.has(path.extname(filePath).toLowerCase());
|
|
1084
|
+
}
|
|
1085
|
+
|
|
979
1086
|
function syntaxLanguageFor(filePath: string): string | undefined {
|
|
980
1087
|
const fileName = path.basename(filePath).toLowerCase();
|
|
981
1088
|
return HIGHLIGHT_LANGUAGE_BY_FILENAME[fileName]
|