Why: The conversation and office fallbacks wrote marked output straight into the page, including converted docx HTML. Evidence: html-sinks ratchet forbids new innerHTML writes outside @ui safeHtml. Impact: Conversation keeps line-break rendering. Unsafe links are stripped after docx and pptx preview. dompurify is deduped with the UI package. Refs: feature/sillytavern-review Co-authored-by: Cursor <cursoragent@cursor.com>
14 lines
889 B
Markdown
14 lines
889 B
Markdown
# Agent-System-Frontend 项目事实
|
||
|
||
- 用途:见 README。定位与边界见设计文档(Agent-System-Documents)。
|
||
- 技术栈:React 19 + Vite + TypeScript(Node 仅构建期)
|
||
- 构建/验证:见仓内 Makefile 或 Dev 仓顶层 Makefile(待 P1 起补充并保持本节同步)。
|
||
- 状态:P0 骨架;当前阶段见 Dev 仓任务记录。
|
||
|
||
## 验证(当前状态)
|
||
|
||
- `npx tsc -b` — 类型检查;`npm run build` — 产物 dist/(Dev Makefile 拷贝至 backend web/dist 内嵌)。
|
||
- `npm test` — vitest:契约形状测试(Core 黄金样本驱动的判别联合/事件信封/HITL impact/工具三清单断言)。
|
||
- 开发:`npm run dev`(Vite 代理 /api → 127.0.0.1:8787)。
|
||
- 依赖刻意最小:react + marked + dompurify(模型输出与文档预览先清洗再写入页面);无 UI 框架(设计令牌手写,见 styles.css)。
|