kimi-code/apps/kimi-web/package.json
Simon He 7f05f589e7
feat(web): add Mermaid diagram rendering and off-thread KaTeX/Mermaid workers (#1226)
* feat(web): add Mermaid diagram rendering and off-thread KaTeX/Mermaid workers

Enable Mermaid diagram support in the web chat via markstream-vue's enableMermaid(). Set up Web Workers for both KaTeX rendering and Mermaid parsing using markstream-vue's pre-built workers (katexRenderer.worker, mermaidParser.worker), keeping heavy computation off the main thread during live streaming.

* fix(web): skip Mermaid SVG subtrees in file link and markdown link rewriters

processFileLinks() uses a TreeWalker that scans all text nodes in mdRef.
Mermaid diagrams render as inline SVG, and diagram labels containing
file-path-like strings (e.g. src/App.vue) would be replaced with HTML
<button> elements inside SVG <text> nodes, corrupting the rendered diagram.

processMarkdownLinks() similarly queries a[href] inside SVGs; while
isLocalLink() mostly filters these out, explicitly skipping SVG subtrees
is safer.

Add svg to the closest() exclusion in processFileLinks(), and skip
links inside svg in processMarkdownLinks().

* fix(web): satisfy worker import lint

* chore: align mermaid dependency versions

* chore: change mermaid workers changeset to patch

---------

Co-authored-by: qer <wbxl2000@outlook.com>
2026-07-01 02:17:34 +08:00

37 lines
911 B
JSON

{
"name": "@moonshot-ai/kimi-web",
"version": "0.1.2",
"private": true,
"license": "MIT",
"type": "module",
"scripts": {
"dev": "vite",
"dev:stub": "node dev/stub-daemon.mjs",
"build": "vite build",
"typecheck": "vue-tsc --noEmit",
"test": "vitest run"
},
"dependencies": {
"@fontsource-variable/inter": "^5.2.8",
"@fontsource-variable/jetbrains-mono": "^5.2.8",
"@xterm/addon-fit": "^0.11.0",
"@xterm/xterm": "^6.0.0",
"katex": "^0.17.0",
"markstream-vue": "^1.0.4",
"mermaid": "^11.15.0",
"shiki": "^4.3.0",
"stream-markdown": "^0.0.16",
"vue": "^3.5.35",
"vue-i18n": "^11.4.5"
},
"devDependencies": {
"@tailwindcss/vite": "^4.1.4",
"@vitejs/plugin-vue": "^5.2.4",
"tailwindcss": "^4.1.4",
"typescript": "6.0.2",
"vite": "^6.3.3",
"vitest": "4.1.4",
"vue-tsc": "~3.2.0",
"ws": "^8.18.0"
}
}