From 39b2d2a6ace8485dd7933ee5dd80102f89f93c62 Mon Sep 17 00:00:00 2001 From: Abeautifulsnow Date: Mon, 7 Sep 2026 22:44:23 +0800 Subject: [PATCH] feat(ai): add sandboxed HTML preview for AI rich content --- .../src/components/ai/rich/AiHtmlPreview.vue | 141 ++++++++++ .../ai/rich/__tests__/AiHtmlPreview.spec.ts | 218 +++++++++++++++ .../src/components/editor/AiAssistant.vue | 6 + .../__tests__/aiRichContentParity.spec.ts | 37 +++ apps/desktop/src/i18n/locales/en.ts | 10 + apps/desktop/src/i18n/locales/es.ts | 10 + apps/desktop/src/i18n/locales/it.ts | 10 + apps/desktop/src/i18n/locales/ja.ts | 10 + apps/desktop/src/i18n/locales/ko.ts | 10 + apps/desktop/src/i18n/locales/pt-BR.ts | 10 + apps/desktop/src/i18n/locales/tr.ts | 10 + apps/desktop/src/i18n/locales/zh-CN.ts | 10 + apps/desktop/src/i18n/locales/zh-TW.ts | 10 + .../lib/__tests__/ai/aiMessageRender.spec.ts | 50 ++++ apps/desktop/src/lib/ai/aiMessageRender.ts | 4 +- .../__tests__/aiHtmlPreview.spec.ts | 116 ++++++++ .../__tests__/aiHtmlPreviewCanary.spec.ts | 127 +++++++++ .../__tests__/aiRichContent.spec.ts | 39 ++- .../src/lib/ai/richContent/aiHtmlPreview.ts | 82 ++++++ .../src/lib/ai/richContent/aiRichContent.ts | 42 ++- package.json | 1 + scripts/ai-html-runtime-canary.mjs | 259 ++++++++++++++++++ 22 files changed, 1199 insertions(+), 13 deletions(-) create mode 100644 apps/desktop/src/components/ai/rich/AiHtmlPreview.vue create mode 100644 apps/desktop/src/components/ai/rich/__tests__/AiHtmlPreview.spec.ts create mode 100644 apps/desktop/src/i18n/__tests__/aiRichContentParity.spec.ts create mode 100644 apps/desktop/src/lib/ai/richContent/__tests__/aiHtmlPreview.spec.ts create mode 100644 apps/desktop/src/lib/ai/richContent/__tests__/aiHtmlPreviewCanary.spec.ts create mode 100644 apps/desktop/src/lib/ai/richContent/aiHtmlPreview.ts create mode 100644 scripts/ai-html-runtime-canary.mjs diff --git a/apps/desktop/src/components/ai/rich/AiHtmlPreview.vue b/apps/desktop/src/components/ai/rich/AiHtmlPreview.vue new file mode 100644 index 0000000000..da900c8ed5 --- /dev/null +++ b/apps/desktop/src/components/ai/rich/AiHtmlPreview.vue @@ -0,0 +1,141 @@ + + +