dsh-claude-slides 2.12.3 → 2.14.0

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/NOTICE.md CHANGED
@@ -24,6 +24,7 @@ baoyu-design brings claude.ai's Artifact types and Claude Design to local agents
24
24
  - **Reference docs.** `skills/*/artifact-type/reference/`, and the copies under `scripts/editor/artifact-type/`: the craft, format and layout guides, font lists and other references of the Artifact types.
25
25
  - **The `dataviz` skill.** `skills/dataviz/` is Anthropic's dataviz skill. Its palette validators include code from Color.js (MIT, Lea Verou and Chris Lilley), credited in the files.
26
26
  - **The editors.** `skills/claude-*/scripts/editor/` holds editors reconstructed from the claude.ai Artifact-type runtimes: their interface, wording and behaviour are Anthropic's. The built files mix that reconstruction with the maintainer's local additions (section 1) and with open-source packages (section 3).
27
+ - **Compiled engines.** Where an editor ships a WebAssembly engine as upstream built it (a `*.wasm` file in its `scripts/editor/artifact-type/`), the engine is Anthropic's too. The open-source code compiled into it is listed in the notices shipped beside it (`THIRD_PARTY_NOTICES.md`, `RUST_STANDARD_LIBRARY_NOTICES.html`).
27
28
  - **Icon fonts.** The Anthropicons icon fonts: the `anthropicons-*.woff2` files in the editors' `assets/` and `artifact-type/` folders, and the Anthropicons font faces embedded as data URIs in the editors' CSS.
28
29
  - **The archived `baoyu-design` skill.** In `archive/baoyu-design/`: `system-prompt.md`, `references/upstream-system-prompt.md` and `references/upstream-sync/` (the Claude Design system prompt, a snapshot of it and its sync records), `built-in-skills/` (Claude Design's built-in skills) and `starter-components/` (Claude Design's starter components; the local patches are recorded in the `*-patch.md` files there).
29
30
 
@@ -33,7 +34,7 @@ baoyu-design brings claude.ai's Artifact types and Claude Design to local agents
33
34
 
34
35
  ## 3. Third-party open-source code
35
36
 
36
- The editors bundle open-source packages, such as React, Base UI, d3 and pptxgenjs. Each keeps its own license, which this project's license does not replace. The licenses are in each editor's `scripts/editor/third-party-licenses.txt`, and for the slides compiler in `scripts/editor/node/third-party-licenses.txt`.
37
+ The editors bundle open-source packages, such as React, Base UI, d3 and pptxgenjs. Each keeps its own license, which this project's license does not replace. The licenses are in each editor's `scripts/editor/third-party-licenses.txt`, and for the slides compiler in `scripts/editor/node/third-party-licenses.txt`. The open-source crates and the Rust standard library compiled into a WebAssembly engine are listed in the notices beside it.
37
38
 
38
39
  The archived `baoyu-design` skill vendors React, ReactDOM, Babel and fflate (MIT) in `archive/baoyu-design/agents/vendor/`, and pptxgenjs (MIT) in `archive/baoyu-design/agents/gen-pptx/vendor/pptxgenjs/`, with its `LICENSE`.
39
40
 
@@ -51,6 +52,7 @@ If you hold rights in anything here and want it credited differently, changed or
51
52
  - `artifact-type/reference/` 里的参考文档;
52
53
  - `skills/dataviz/`(Anthropic 的 dataviz 技能);
53
54
  - `scripts/editor/` 里从 claude.ai 运行时还原的编辑器(界面、文案和行为);
55
+ - 编辑器原样带上的 WebAssembly 引擎(`scripts/editor/artifact-type/` 里的 `*.wasm`),编进去的开源代码列在它旁边的 `THIRD_PARTY_NOTICES.md`、`RUST_STANDARD_LIBRARY_NOTICES.html` 里;
54
56
  - Anthropicons 图标字体(`anthropicons-*.woff2` 文件,以及编辑器 CSS 里内嵌的字体);
55
57
  - `archive/baoyu-design/` 里的 Claude Design 系统提示词、内置技能和起步组件。
56
58
 
package/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- // dsh-claude-slides 2.12.3: built from baoyu-design.
1
+ // dsh-claude-slides 2.14.0: built from baoyu-design.
2
2
  var define_PLUGIN_default = { name: "claude-slides", provider: "dsh-claude-slides", skills: [{ name: "claude-slides", description: "Make and revise slide decks in the Slides artifact format (project/deck.json plus one HTML file per slide) as local files, then open them in a local slide editor where the user can present, retype, drag, and export PDF, HTML or PowerPoint. Use when the user asks for an editable slide deck or presentation in this format, names claude-slides or the Slides type, or wants to revise a folder that holds project/deck.json. Not for a one-off single-file HTML deck or prototype.", comments: true }] };
3
3
 
4
4
  import { readFile } from "node:fs/promises";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-claude-slides",
3
- "version": "2.12.3",
3
+ "version": "2.14.0",
4
4
  "description": "DeepSeek Harness plugin: the claude-slides skill from baoyu-design. The agent writes editable slide decks as files and opens them in a local slide editor.",
5
5
  "keywords": [
6
6
  "dsh",
@@ -23,6 +23,18 @@
23
23
  "icon": "./icon.svg",
24
24
  "baoyuDesign": {
25
25
  "releaseNotes": [
26
+ {
27
+ "version": "2.14.0",
28
+ "date": "2026-11-11",
29
+ "en": "### Features\n- **`claude-dashboard` is now `claude-data`.** claude.ai renamed the type to Data, and the skill, its DeepSeek Harness plugin (`dsh-claude-data`) and its ChatGPT and Codex plugin (**Baoyu Data**) follow. Call it as `/claude-data` (`$claude-data` in Codex). A dashboard made with `claude-dashboard` opens in `claude-data` as it is, with the same folder; its address is now `/data/<id>/` instead of `/dashboard/<id>/`. `dsh-claude-dashboard` and **Baoyu Dashboard** get no more updates: install `dsh-claude-data` (the **Artifacts** page offers it as a **Not installed** tile) or **Baoyu Data**, then remove the old one. On the Artifacts page, dashboards opened before the rename are listed with the new kind and still open, and comments sent from a dashboard reach the agent through `dsh-claude-data` (the copy of `dsh-claude-data` put on npm on its own before this release lacked both, because the Host plugin it came with did not know the new name).\n- **`claude-data` follows claude.ai's 2026-11-10 update.** A dashboard's toolbar now has a **Design** button. It shows the look in use and a new **Style** section: chart colors, page color, font, corners and text size. A change shows on the page at once and is kept with **Save**; **Reset all** goes back to the defaults. A dataset can be a text file (`format: \"text\"`), which the page turns into rows with a loader. `dash/meta` takes the page's language (`lang`). `check` also reports what the open page found when it checked itself (`pageCheck`: passed, failed with what went wrong, or still loading) beside the page's `runs`.\n- **`claude-design` follows claude.ai's 2026-11-10 update.** Pen, Line and Arrow have a **Drawing options** bar: four stroke weights, and solid, dashed or dotted lines. An artboard's export menu has **All artboards (.png)**, a zip with one PNG per artboard on the page. When the canvas's saved layout is damaged, the canvas turns read-only with a banner and an **Ask the agent to fix** button, and comes back on its own once the file is fixed. A new reference, `shaders.md`, is how the agent makes a shader artboard (WebGL, or anything that moves like light, water, smoke or liquid).\n\n### Fixes\n- `claude-design`: artboards ran React's development build (1.1 MB), which printed warnings such as `Invalid DOM property vector-effect` for drawn lines. They now run the production build (354 KB).\n- `claude-design`: when two tabs changed the same artboard and you chose **Keep both**, the copy was put 80 px right of the original, where it could cover another artboard. It now goes in the first free spot right of that row.\n- In every editor, Escape pressed while the keyboard is in the comments layer (on the comments button, say) now ends comment mode, as it does on the page.\n\n### Documentation\n- `claude-data`'s `SKILL.md` and reference follow the same update: what runs where (each reader's browser loads the datasets, and Sources shows where every number came from), what a page's code may write and when, and how `check` and `runs` report a page that went wrong.",
30
+ "zh": "### 新功能\n- **`claude-dashboard` 改名为 `claude-data`。** claude.ai 把这个类型改名为 Data,技能、它的 DeepSeek Harness 插件(`dsh-claude-data`)和 ChatGPT、Codex 插件(**Baoyu Data**)都跟着改名。调用名是 `/claude-data`(Codex 里是 `$claude-data`)。用 `claude-dashboard` 做的仪表盘,原样用 `claude-data` 打开,文件夹不变;地址从 `/dashboard/<id>/` 变成 `/data/<id>/`。`dsh-claude-dashboard` 和 **Baoyu Dashboard** 不再更新:装上 `dsh-claude-data`(**Artifacts** 页面上它是一个 **Not installed** 的卡片,点开就能装)或 **Baoyu Data**,再把旧的删掉。改名前打开过的仪表盘,在 Artifacts 页面上按新的类型列出,照样能打开;仪表盘上发出的评论经 `dsh-claude-data` 交给 Agent(这一版之前单独发到 npm 的 `dsh-claude-data` 这两样都不行,因为和它配套的 Host 插件还不认识新名字)。\n- **`claude-data` 跟上了 claude.ai 2026-11-10 的更新。** 仪表盘的工具栏多了一个 **Design** 按钮,里面是当前的外观和新的 **Style** 一段:图表配色、页面底色、字体、圆角和字号。改了页面马上显示,点 **Save** 保存;**Reset all** 回到默认。数据集可以是文本文件(`format: \"text\"`),由页面用 loader 拆成行。`dash/meta` 可以写页面的语言(`lang`)。`check` 还会报告打开着的页面自查的结果(`pageCheck`:通过、没通过和出了什么问题、还在加载),和页面的 `runs` 放在一起。\n- **`claude-design` 跟上了 claude.ai 2026-11-10 的更新。** 画笔、直线和箭头有了 **Drawing options** 条:四档粗细,实线、虚线或点线。画板的导出菜单里多了 **All artboards (.png)**,把这一页每块画板各导出一张 PNG,打成一个 zip。画布保存的布局文件坏了时,画布变成只读,顶上有横幅和 **Ask the agent to fix** 按钮,文件修好后自己恢复。新增 reference `shaders.md`,Agent 照它做着色器画板(WebGL,或者像光、水、烟、液体那样流动的效果)。\n\n### 修复\n- `claude-design`:画板里跑的是 React 的开发版(1.1 MB),画的线会报 `Invalid DOM property vector-effect` 这类警告。现在是生产版(354 KB)。\n- `claude-design`:两个标签页改了同一块画板、选 **Keep both** 时,副本放在原画板右边 80 px,可能压住那里的另一块画板。现在放在这一行右边第一个空位。\n- 所有编辑器:键盘在评论层里时(比如停在评论按钮上)按 Escape,现在会退出评论模式,和在页面上按一样。\n\n### 文档\n- `claude-data` 的 `SKILL.md` 和 reference 也跟着这次更新:什么在哪里运行(每个读者的浏览器加载数据集,Sources 说明每个数字从哪里来),页面的代码什么时候可以写入、能写什么,以及 `check` 和 `runs` 怎样报告出错的页面。"
31
+ },
32
+ {
33
+ "version": "2.13.0",
34
+ "date": "2026-11-10",
35
+ "en": "### Features\n- **Whiteboard is released.** `claude-whiteboard` lays out thinking on a board: a diagram, a flow, a map of ideas, a plan, a comparison or a drawn explanation. The agent writes it as elements (sections, blocks joined by arrows, text, tables, sticky notes, drawings and small working embeds) into the board's own store, and you watch them land in the local board editor. There you move and resize things, type, draw with the pen, and add sections, sticky notes, shapes and stickers from the toolbar, and the agent sees what you changed. Comment on an item, a spot or an area and send it to the agent, which changes the board and replies. **Share** opens the board to your local network with a link per role, everyone on a link sees the others' cursors and changes live, and its Export tab downloads the whole folder as a zip. **History** lists the versions. One server serves every board on the computer. Needs Node 22+. The board's own assistant on claude.ai (the Ask box, cursor chat, read-aloud and dictation) is not available locally; ask the agent in your conversation instead.\n- DeepSeek Harness: the new `dsh-claude-whiteboard` plugin. Comments sent from a board reach the agent, and boards are listed on the **Artifacts** page with a picture of the board, where they can be renamed like the other kinds.\n- ChatGPT and Codex: the new **Baoyu Whiteboard** plugin in the baoyu-design marketplace.",
36
+ "zh": "### 新功能\n- **白板正式发布。** `claude-whiteboard` 把想法摆在白板上:示意图、流程、想法地图、计划、对比或手绘的讲解。Agent 把它写成一个个元素(分区、用箭头连起来的方块、文字、表格、便签、手绘图和能操作的小嵌入),存进白板自己的存储,你在本地白板编辑器里看着它们一个个出现。你可以拖动、缩放、打字、用画笔画,从工具栏加分区、便签、形状和贴纸,你改了什么 Agent 也看得到。对一个元素、一个位置或一块区域留评论发给 Agent,它改好白板再回复你。**Share** 把白板开放到局域网,每种角色一个链接,拿到链接的人能实时看到彼此的光标和改动,它的 Export 页可以把整个文件夹下载成 zip。**History** 列出各个版本。这台电脑上的所有白板共用一个服务器。需要 Node 22+。claude.ai 上白板自带的助手(Ask 输入框、光标聊天、朗读和听写)在本地用不了,在对话里问 Agent 就好。\n- DeepSeek Harness:新增 `dsh-claude-whiteboard` 插件。白板上发出的评论会交给 Agent,白板也列在 **Artifacts** 页面上,带白板的缩略图,可以像其他类型一样改名。\n- ChatGPT 和 Codex:baoyu-design 插件市场新增 **Baoyu Whiteboard** 插件。"
37
+ },
26
38
  {
27
39
  "version": "2.12.3",
28
40
  "date": "2026-11-10",
@@ -58,18 +70,6 @@
58
70
  "date": "2026-11-05",
59
71
  "en": "### Features\n- **DeepSeek Harness: a new version no longer pops up over the app.** The **Artifacts** row in the left sidebar gets an **Update** label instead (a dot on the icon, where a collapsed sidebar keeps its icons), and a panel at the top of the Artifacts page shows the versions, each plugin and what the release changes. **Update all** updates them together; **Update** on a plugin's line takes just that one. **Later** folds the panel to one line and removes the label until the next version.\n- While an update runs you can leave the Artifacts page: the label says **Updating**, **Failed** or **Restart**. **Try again** picks up where it stopped: the rest after **Update all**, that plugin after its own **Update**.\n- The **Update** button on a plugin's page now updates only that plugin, and a page that was open when its plugin was replaced comes back by itself.",
60
72
  "zh": "### 新功能\n- **DeepSeek Harness:新版本不再弹出来打断你。** 左侧栏的 **Artifacts**(「作品」)这一行会多一个 **更新** 标签(侧栏收起后还留着图标的话,是图标上的小圆点),「作品」页顶部的面板写着版本、每个插件和这次改了什么。**全部更新** 一起更新;每个插件那一行的 **更新** 只更新它自己。**稍后** 把面板收成一行,标签也消失,等下一个版本再提示。\n- 更新时可以离开「作品」页:标签会显示 **更新中**、**更新失败** 或 **待重启**。**重试** 从停下的地方接着来:**全部更新** 失败就接着更新剩下的,单独更新失败就再试这一个。\n- 插件详情页的 **更新** 按钮现在只更新这一个插件;更新时开着的页面被替换后,会自己回来。"
61
- },
62
- {
63
- "version": "2.10.1",
64
- "date": "2026-11-05",
65
- "en": "### Fixes\n- DeepSeek Harness 0.2.2 has its own plugin updates, so a plugin's page showed two update buttons and two tags, the app's and the plugin's. It now shows one: the app's for a plugin the card hasn't updated, the plugin's own for one it has.\n- The one-click update looks again at what there is to update before it starts, so a plugin the app's button just updated isn't tried again. When the reply to an update is lost, the card no longer says the plugin stayed on its version: it asks you to check on the Plugins page.\n- The [how-to](dsh-plugins/README.md#if-something-doesnt-work) says what to do when the app's own **Update to x** fails on the second of two plugins and switches it off, and that 2.9.2 and earlier can use that button on DeepSeek Harness 0.2.2 instead of updating by hand.",
66
- "zh": "### 修复\n- DeepSeek Harness 0.2.2 自带了插件更新,插件详情页因此出现两个更新按钮和两个标签,应用的和插件的各一套。现在只有一个:没用卡片更新过的插件显示应用的按钮,更新过的显示插件自己的。\n- 一键更新开始前会重新确认要更新什么,刚用应用自带按钮更新过的插件不会再更新一次。更新的回复丢失时,卡片不再说插件还是原来的版本,而是请你到插件页确认。\n- [使用说明](dsh-plugins/README.zh-CN.md#遇到问题)写明了应用自带的 **更新到 x** 更新第二个插件失败、插件被关掉时怎么办;也说明了在 DeepSeek Harness 0.2.2 上,2.9.2 和更早的版本可以直接用这个按钮更新,不用手动。"
67
- },
68
- {
69
- "version": "2.10.0",
70
- "date": "2026-11-05",
71
- "en": "### Features\n- **The DeepSeek Harness plugins update in one click.** When a new version is out, the app offers it: a card at the bottom right, a line at the top of the **Artifacts** page, and an **Update** button on each plugin's page. One click updates the plugins together, with nothing to uninstall, and most updates need no restart. If an update fails, the plugin stays on the version it was. A plugin added from a folder isn't offered one. This starts with 2.10.0, so 2.9.2 and earlier need [one last update by hand](dsh-plugins/README.md#update).\n- **DeepSeek Harness: a skill can be kept to one agent preset.** Turn off the plugin's own row and declare the plugin in the preset, and `/` lists the skill only in that preset's sessions. The **Artifacts** page and comments keep working, through a new package, `dsh-claude-artifacts`, that each plugin installs with it. See [how to set it up](dsh-plugins/README.md#keep-a-skill-to-one-preset).\n\n### Fixes\n- `archive` and the **Whole folder** export zipped `.git`, including the remote's address and any token in it, and that zip is what gets sent to other people. `.git` now stays out, at any depth.\n- An artifact folder's default `.gitignore` took `exports/` (a film's MP4 too) and two of the three temp file shapes into git, and its `history/` rule also matched a project's own folder of that name, which git then dropped. `history/` and `exports/` now match only at the top of the folder.\n- `share` could give out a TUN proxy's address, such as sing-box's `172.19.0.1`, first when the system lists it first. It now skips an address that answers at every port, and lists tunnels after the local network.\n- Design's Standalone export: a `#id` link did nothing when the file was opened directly, and over `http://` it also scrolled the page around the frame. A click now scrolls inside the frame only, as Play does.",
72
- "zh": "### 新功能\n- **DeepSeek Harness 插件可以一键更新。** 出了新版本,应用会提示你:右下角弹出卡片,**Artifacts** 页(中文界面是「作品」)顶部和每个插件的详情页也有 **Update**(更新)按钮。点一下,这些插件一起更新,不用卸载,多数情况也不用重启。更新失败时插件还是原来的版本。从文件夹安装的插件不会收到提示。这个功能从 2.10.0 开始,所以 2.9.2 和更早的版本要[最后手动更新一次](dsh-plugins/README.zh-CN.md#更新)。\n- **DeepSeek Harness:技能可以只留给某个 Agent 预设。** 关掉插件自己那一行,再在预设里声明这个插件,`/` 就只在这个预设的会话里列出这个技能。作品页和评论照常工作,它们现在由新包 `dsh-claude-artifacts` 负责,每个插件都会带上它。[设置方法](dsh-plugins/README.zh-CN.md#只让某个预设用某个技能)。\n\n### 修复\n- `archive` 和导出的 **Whole folder**(整个文件夹)会把 `.git` 打进 zip,里面有远程仓库地址和可能带着的 token,而这个 zip 正是要发给别人的。现在任何层级的 `.git` 都不会打进去。\n- 作品文件夹默认的 `.gitignore` 会把 `exports/`(包括影片的 MP4)和三种临时文件里的两种提交进 git;它的 `history/` 规则还会匹配项目自己的同名文件夹,导致 git 把那个文件夹漏掉。现在 `history/` 和 `exports/` 只匹配文件夹顶层。\n- 系统把 TUN 代理的网卡排在前面时,`share` 可能先给出代理的地址,比如 sing-box 的 `172.19.0.1`。现在会跳过在所有端口都有应答的地址,并把隧道网卡排在局域网后面。\n- 设计稿的 Standalone 导出:直接打开文件时,`#id` 链接点了没反应;通过 `http://` 打开时,还会连带滚动框架外的页面。现在点击只在框架内滚动,和 Play 一样。"
73
73
  }
74
74
  ]
75
75
  },
@@ -95,7 +95,7 @@
95
95
  "dsh": ">=0.2.0-0"
96
96
  },
97
97
  "dependencies": {
98
- "dsh-claude-artifacts": "^2.12.3"
98
+ "dsh-claude-artifacts": "^2.14.0"
99
99
  },
100
100
  "dsh": {
101
101
  "bundle": {
@@ -2536,7 +2536,7 @@ async function runningServer(root, kind, probe) {
2536
2536
  return null;
2537
2537
  }
2538
2538
  }
2539
- var DEFAULT_PORTS = { slides: 4710, design: 4720, "design-system": 4730, dashboard: 4740, docs: 4750, motion: 4760 };
2539
+ var DEFAULT_PORTS = { slides: 4710, design: 4720, "design-system": 4730, data: 4740, docs: 4750, motion: 4760 };
2540
2540
  var PORT_TRIES = 100;
2541
2541
  var NetworkBlocked = class extends Error {
2542
2542
  code = "NETWORK_BLOCKED";