# deepseek-design

> iPolloWork is a PPT view plugin for DeepSeek Harness. It generates and fine-tunes slides directly within conversations, includes 6 curated templates, and supports PDF/PPTX export.

## Metadata

- Author: [@Devin-AXIS](https://github.com/Devin-AXIS)
- Repo: <https://github.com/Devin-AXIS/deepseek-design.git>
- GitHub: [Devin-AXIS/deepseek-design](https://github.com/Devin-AXIS/deepseek-design)
- Stars: 195
- Language: JavaScript
- License: [NOASSERTION](https://spdx.org/licenses/NOASSERTION.html)
- Homepage: <https://github.com/Devin-AXIS/iPolloWork>
- Topics: `ai-design`, `deepseek`, `deepseek-harness`, `design`, `design-studio`, `dsh-plugin`, `ipollowork`, `ipollowork-plugin`, `plugin`, `ppt`, `presentation`, `prototyping`, `visual-editor`
- Forks: 67
- Open Issues: 2
- Last push: 2026-08-18T09:54:38.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:Devin-AXIS/deepseek-design/packages/deepseek-ippt
```

## Wiki

## 一句话定位
deepseek-ippt 是 iPolloWork 为 DeepSeek Harness 做的"幻灯片"原生插件，在对话里多出一个 PPT 视图，可以由 AI 直接生成完整演示文稿，也可以选中某张幻灯片或其中某个元素做选区级 Ask AI，最后把真实可继续编辑的 HTML/CSS/设计令牌落到工作区的 `design/<sessionId>-ippt/` 目录。

## 核心能力
- 在 Harness 对话中多出 **PPT** 视图（label `PPT`，与 iDesign 的 Design 视图并存），可在该视图里逐页预览与编辑
- AI 在对话中直接生成叙事、页面、整篇演示文稿，并支持选区级 **Ask AI**（选中元素后填好草稿，由用户发送）
- 6 个精选幻灯片模板（4 套 HTML Anything 系列 + 2 套原生可编辑 PPTX），模板市场只展示幻灯片，不会混入网站/海报/视频
- 逐页预览 + 直接元素编辑：文字、图片、排版、颜色、位置、视觉样式均可在画布里调整
- 共享 iPolloWork 设计令牌系统：通过 `design-tokens.css` 统一管理颜色、字体、背景、圆角、阴影、间距，编辑主题时整本 PPT 同步更新
- 导出 PDF 与 PPTX（PPT 视图内置 jsPDF、html2canvas、pptxgen、JSZip；原生 PPTX 模板导出后对象在 PowerPoint 里仍可继续编辑）
- 保存带 `baseUpdatedAt` 冲突检测 + 原子替换，模板应用先在隔离目录校验再原子替换，失败时恢复旧项目

## 技术实现
- **语言**: TypeScript（子包 `type: module`，主源码在 `source/plugins/deepseek-ippt/src/`，构建产物在 `packages/deepseek-ippt/lib/`）；Studio 端用 React 18 + Vite 6 + Tailwind CSS v4
- **关键依赖**: `@deepseek-ai/cordis`、`@deepseek-ai/dsh-host-webserver`、`@deepseek-ai/dsh-workspace`、`@deepseek-ai/dsh-client-runtime`、`@deepseek-ai/dsh-client-ui-conversation`、`react` 18.2（全部为可选 peer dependency）；运行期只用 Node 内置 `node:crypto` / `node:fs` / `node:fs/promises` / `node:path` / `node:url`
- **架构模式**: DSH 适配器插件 —— `cordis.patch.yml` 向宿主插入 Cordis 插件 `id: ipollowork-ppt-studio`；`client.tsx` 用 `ctx.slots.inject("conversation.view")` 把 `PPT` 视图组件挂到 Harness 对话里；`index.ts` 用 `ctx.webServer.register({ kind: "prefix", path: "/ipollowork-ppt" })` 把 Studio 静态资源和 `/ipollowork-ppt/api/*` 接口挂到 Harness 内置 Web 服务器
- **入口文件**: `source/plugins/deepseek-ippt/src/index.ts`（服务端，复用 `source/shared/design-studio/src/index.ts` 的 `createDeepSeekDesignStudioPlugin` 工厂，传 `mode: "slides"`、`routeRoot: "/ipollowork-ppt"`、`studioTitle: "DeepSeek iPPT"`、`defaultTemplateId: "ipollowork.deepseek-harness.ppt"`、`projectSuffix: "-ippt"`），客户端入口 `source/plugins/deepseek-ippt/src/client.tsx`，编译后分别是 `packages/deepseek-ippt/lib/index.js` 与 `packages/deepseek-ippt/lib/client.js`

## 适用场景
希望直接在 Harness 对话里就把一份演示文稿做出来、再逐页精调细节的工作者，比如产品/运营做 pitch deck、技术汇报、季度评审、对外宣传页等；也想让生成的 PPT 既能被 AI 修改也能直接打开 PowerPoint 继续编辑的人群。`design/<sessionId>-ippt/` 与 iDesign 的 `design/<sessionId>/` 目录相互隔离，两边可以同时装在同一工作区，不会互相覆盖。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | `>=0.0.1-rc.1` 且 `<0.2.0-0`，开发期锁定 `0.1.0-rc.6` | `package.json#peerDependencies` 声明 `@deepseek-ai/dsh-host-webserver`、`@deepseek-ai/dsh-client-runtime`、`@deepseek-ai/dsh-client-ui-conversation`、`@deepseek-ai/dsh-workspace` 需要该区间（package.json:51-58），开发依赖实际锁定 `0.1.0-rc.6`（package.json:81-84） |
| Node.js | `^22.19.0` 或 `>=24.0.0` | 子包 `package.json` 没有 `engines` 字段；沿用父仓库 README.md:74 声明；`@types/node` devDep 锁到 `25.6.0`（package.json:86） |
| React | `^18.2.0` | 由 Harness 宿主提供，列在 peerDependencies（package.json:57） |
| 平台 | 跨平台（macOS / Windows / Linux） | `package.json` 没有 `os`/`cpu` 限制；客户端用 iframe + `sandbox` 属性隔离（lib/client.js:103） |
| 原生模块 | 无 | 运行时只使用 Node 内置模块（lib/index.js:1-5），安装不会拉 sharp/onnxruntime-node 等预编译二进制 |
| 浏览器运行时 | Chromium（由 Harness 宿主提供） | Studio 是浏览器内运行的 React/Vite 应用（packages/deepseek-ippt/studio/dist/），插件不自带浏览器二进制 |

## 安装方式
```bash
dsh plugin --profile web add github:Devin-AXIS/deepseek-design/packages/deepseek-ippt
```

## 配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 本插件无需额外配置 | — | `cordis.patch.yml` 不读任何字段；`createDeepSeekDesignStudioPlugin` 只在编译期接收 `mode/routeRoot/studioTitle/defaultTemplateId/projectSuffix` 等构造参数（已硬编码为 `slides` / `/ipollowork-ppt` / `DeepSeek iPPT` / `ipollowork.deepseek-harness.ppt` / `-ippt`）。运行期所有交互（工作区 ID、会话 ID、模板 ID、选区上下文）通过 URL 查询参数和 PostMessage 在 Studio 与 Harness 之间传递 | — |

## 常见问题

**Q: 这个插件和 deepseek-design 是什么关系？**

A: 它是 deepseek-design 套件里的"幻灯片"那一支，专门为 Harness 对话增加一个 PPT 视图。三个兄弟插件 iDesign/iPPT/iVideo 各自独立安装、目录彼此隔离（`design/<sessionId>/`、`design/<sessionId>-ippt/`、`video/<sessionId>/`），可以只装这一份。

**Q: 装了它会不会顺便下载 iPolloWork 桌面端或 iVideo？**

A: 不会。npm 包自带 Studio 浏览器资源（`packages/deepseek-ippt/studio/dist/` 与 `lib/client.js`），既不下载 iPolloWork 桌面应用，也不加载 iVideo 或 iDesign；安装命令只拉这一份插件。

**Q: 作品真实文件落在哪里，能继续手动编辑吗？**

A: 落在 Harness 工作区的 `design/<sessionId>-ippt/` 下，是真实的 HTML、CSS 设计令牌和 manifest.json 等文件，不是云端封闭画布；你可以用任意编辑器改这些文件，也可以让 AI 通过对话继续修改。

**Q: 自带了哪些模板？**

A: 6 个精选幻灯片模板：Knowledge Arch Blueprint（技术风）、Hermes Cyber Terminal Deck、Presenter Mode Deck、Pastel Slow-life Deck、Morrow Brand Narrative（PPTX 可继续编辑）、iPollo VI Enterprise Presentation（38 页原生可编辑 PPTX）。

**Q: 能导出 PDF/PPTX 吗？**

A: 可以。Studio 内置 jsPDF、html2canvas、pptxgen 和 JSZip，PPT 视图支持 PDF 和 PPTX 两种导出；带 "native-editable" 标记的 PPTX 模板导出后对象在 PowerPoint 里仍可继续编辑。

**Q: Ask AI 会自动发出消息吗？**

A: 不会。Ask AI 只把"目标元素 + 文件路径 + CSS 定位 + 当前样式（文字/alt/src 截断到 240 字）"组装成一段草稿填进当前对话，必须由用户点发送才会提交，插件也不会自动执行任何工具调用。

**Q: 保存会覆盖我的手工编辑吗？**

A: 不会。文本写入带 `baseUpdatedAt` 冲突检查——文件自上次读取后被外部改动时返回 409 让用户先刷新再保存；写入采用临时文件 + `rename` 的原子替换，避免半写状态。模板应用也是先在隔离目录校验再原子替换，失败时恢复旧项目。

**Q: PPT 视图能不能和 Design 视图同时用？**

A: 可以。两个视图独立注册（`viewId: "ipollowork-ppt-studio"` vs `ipollowork-design-studio`），且项目目录分别为 `design/<sessionId>-ippt/` 与 `design/<sessionId>/`，互不覆盖；同时安装 `deepseek-idesign` 与 `deepseek-ippt` 即可。

## 上手难度
入门 — 在新对话里点 PPT 视图即开用，常见路径是"AI 生成大纲与初稿 → 在 Studio 逐页精调或 Ask AI 改元素 → 导出 PDF/PPTX"；想榨干选区上下文、设计令牌、manifest schema 则需要再读 iPolloWork 主仓库与子包 README。

## 已知问题与限制
- **DSH 仍处开发者预览**：Harness 主版本号与插件 peer 范围（`>=0.0.1-rc.1 <0.2.0-0`）较宽，DSH 升级到下一个主版本时本插件需要重新验证（README.md:76-77）
- **路径写入有强约束**：写入路径必须落在工作区 `design/` 前缀内，符号链接不能逃逸工作区，相对路径里含 `..` 或绝对路径会返回 400/403；这意味着"跨工作区移动项目"会被原样拒绝（lib/index.js:3889-3917）
- **生成产物不可在 `packages/` 直接改**：仓库采用 iPolloWork 上游同步模型，`packages/` 是构建产物，应改 `source/plugins/deepseek-ippt/` 并提交 PR，由上游合并后同步回来（source/README.md:1-7）
- **每进程 Studio token 不可跨进程复用**：进程级随机 base64url token 失效后所有 API 请求会 401，重启 Harness 即可（lib/index.js:4167、3899-3901）
- **iDesign/iVideo 关闭 Studio 路径里的相同 token 通道**：本插件的服务端用 `x-ipollowork-design-token` 头校验 Studio iframe；同进程内的 iDesign/iVideo 复用同一套 host channel 和 token 协议，互不冲突但也不各自独立密钥（lib/index.js:3899-3901、source/shared/design-studio/src/bridge.ts:3-16）

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [deepseek-design](https://deepseek-plugin.org/plugins/Devin-AXIS/deepseek-design/packages/deepseek-ippt)
Wiki generated by AI (model: `MiniMax-M3`)
