dsh-claude-slides 2.7.2 → 2.8.1
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 +2 -1
- package/lib/client.js +1 -1
- package/lib/index.js +2 -2
- package/package.json +1 -1
- package/skills/claude-slides/SKILL.md +4 -4
- package/skills/claude-slides/scripts/artifact.mjs +198 -105
- package/skills/claude-slides/scripts/server.mjs +998 -424
package/NOTICE.md
CHANGED
|
@@ -11,6 +11,7 @@ Copyright (c) 2026 Jim Liu 宝玉, under the MIT License in [LICENSE](LICENSE):
|
|
|
11
11
|
- The local tooling: each skill's `scripts/artifact.mjs` and, where there is one, `scripts/server.mjs` (the command line and the local editor server), the local comments, and what lets the editors run on a local machine instead of claude.ai.
|
|
12
12
|
- The DeepSeek Harness plugins' own code and files: `dsh-plugins/*/lib/`, `cordis.patch.yml`, `locale/`, `docs/` and `icon.svg`.
|
|
13
13
|
- The parts of the skills' text written for local agents: how to open and run the editors, local paths and files, comments.
|
|
14
|
+
- A skill whose `license:` line says plain MIT is wholly the maintainer's work: all of its files are MIT.
|
|
14
15
|
- The READMEs, the changelogs, the images in `assets/` and the files in `.github/`.
|
|
15
16
|
- The maintainer's tools in `archive/baoyu-design/agents/`, apart from the open-source code vendored there (section 3).
|
|
16
17
|
|
|
@@ -43,7 +44,7 @@ If you hold rights in anything here and want it credited differently, changed or
|
|
|
43
44
|
|
|
44
45
|
本仓库(以及 npm 上的 DeepSeek Harness 插件)里的内容分三类,许可各不相同。[LICENSE](LICENSE) 里的 MIT 许可只管第一类。
|
|
45
46
|
|
|
46
|
-
1. **维护者自己写的部分,MIT。** 本地命令行和编辑器服务器(各技能的 `scripts/artifact.mjs`,以及有的技能带的 `scripts/server.mjs`)、本地评论、让编辑器离开 claude.ai 在本机运行的那部分代码;DeepSeek Harness 插件自己的代码和文件(`dsh-plugins/*/lib/`、`cordis.patch.yml`、`locale/`、`docs/`、`icon.svg`);技能说明里为本地 Agent
|
|
47
|
+
1. **维护者自己写的部分,MIT。** 本地命令行和编辑器服务器(各技能的 `scripts/artifact.mjs`,以及有的技能带的 `scripts/server.mjs`)、本地评论、让编辑器离开 claude.ai 在本机运行的那部分代码;DeepSeek Harness 插件自己的代码和文件(`dsh-plugins/*/lib/`、`cordis.patch.yml`、`locale/`、`docs/`、`icon.svg`);技能说明里为本地 Agent 写的部分;`license:` 一行只写 MIT 的技能,整个是维护者写的,它的全部文件都是;README、更新日志、`assets/` 里的图片、`.github/`;`archive/baoyu-design/agents/` 里维护者写的工具。
|
|
47
48
|
2. **取自 Anthropic 的部分,不适用 MIT。** 权利归 Anthropic。除 frontend-design 外,Anthropic 没有为这些内容公开许可,本项目也不授予任何许可。包括:
|
|
48
49
|
- 各 `skills/claude-*/SKILL.md` 所改编的 Artifact 类型技能说明;
|
|
49
50
|
- `artifact-type/reference/` 里的参考文档;
|
package/lib/client.js
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// dsh-claude-slides 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.
|
|
1
|
+
// dsh-claude-slides 2.8.1: built from baoyu-design.
|
|
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 { spawn as spawn2 } from "node:child_process";
|
|
5
5
|
import { randomUUID } from "node:crypto";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-claude-slides",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.1",
|
|
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",
|
|
@@ -5,7 +5,7 @@ description: >-
|
|
|
5
5
|
per slide) as local files, then open them in a local slide editor where the user can present,
|
|
6
6
|
retype, drag, and export PDF, HTML or PowerPoint. Use when the user asks for an editable slide
|
|
7
7
|
deck or presentation in this format, names claude-slides or the Slides type, or wants to revise a
|
|
8
|
-
folder that holds project/deck.json.
|
|
8
|
+
folder that holds project/deck.json. Not for a one-off single-file HTML deck or prototype.
|
|
9
9
|
license: "Mixed. The skill text, references and editors adapted from Anthropic's claude.ai Artifact types stay Anthropic's and are not MIT-licensed; the local tooling is MIT. Complete terms in NOTICE.md: https://github.com/JimLiu/baoyu-design/blob/main/NOTICE.md"
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -80,7 +80,7 @@ leave alone stays as it is, and removing a slide is deleting its file. The rest
|
|
|
80
80
|
- `list [dir …]` → the design systems in the working directory (or the folders given, and those in `$CLAUDE_DESIGN_SYSTEMS`), each `{title, namespace, folder, root, readme, tokens}`: its files are at `<its root>/project/<path>`, its uploads at `<its root>/project/_blobs/<id>.<ext>`.
|
|
81
81
|
- `check <root>` → `problems` (0: done); when any, `deckProblems` and per slide `problems` with the fix, slide `notes` (hints; fix the "排版" and "警告" ones), and `designSystemNotes` when an install looks incomplete; it exits 1 while problems remain. `notChecked` names what it can't see: text sizes and contrast stay yours.
|
|
82
82
|
- `ds-sync <root> [<folder>] [--check]` → an installed design system is a copy, and a copy never changes by itself. This compares each file of `project/ds/<folder>/` with the same file in the system's own folder (the record's `artifact`, a path on this machine; a system installed from claude.ai has none, and `--from <folder>` names one), copies the ones that differ byte for byte, and sets the record's `copiedAt`. `--check` only lists them (`changed`, and `goneFromSource` for a file the system dropped, which stays in the copy) and exits 1 while a copy is behind. Files the system gained are not copied: compare its README with the copy. A relative `artifact` is looked for from the working directory, then the artifact's folder and the folders above it. `check` notes a copy that is behind in `designSystemNotes`, and the Theme tab says so beside "View … design system" with a Sync button (the owner's), or says its source folder wasn't found.
|
|
83
|
-
- `open <root>` → `{url, pid, stop, …}`: starts the editor page on this machine in the background (once; later calls reuse it, `reused: true`) and prints its address, 127.0.0.1:4710 (the next free port up when
|
|
83
|
+
- `open <root>` → `{url, pid, stop, …}`: starts the editor page on this machine in the background (once; later calls reuse it, `reused: true`) and prints its address, `http://127.0.0.1:4710/slides/<id>/`. All the decks open on this computer share one server and port (4710, the next free port up when that is taken; `--port n` looks for it at n and starts from n, `--port 0` runs a server of its own on any port), each at its own path, which stays the same from one start to the next. `stop <root>` takes this one off, and the server ends with the last (`serve <root>` runs it in the foreground instead). The page saves the user's edits into the same files, and shows yours as soon as you write them. `.artifact-server.json` and `.artifact-server.log` beside `project/` are its own: leave them; so is `comments.json` (the comments, see Comments), which only the comment commands below change.
|
|
84
84
|
- `share <root>` (or `open <root> --lan`): opens the page to the local network and prints a link per role (Sharing, below).
|
|
85
85
|
- `archive <root> [--out file.zip|dir]` → `{file, files, bytes, open}`: the whole folder, history and comments too, as one zip beside it (`--out`: another file or folder), to back it up, move it to another computer or send it to someone; unzipped anywhere, `open` carries on. The owner's Download folder button in the page (between History and Share) does the same. The server's own files and the share links stay out.
|
|
86
86
|
- The Theme tab links to a read-only page of the system in use, `<editor>/__ds/<folder>/`: the copy under `project/ds/<folder>/` as this deck carries it (its tokens, its components with their `README.md` and types, its `README.md`). Anyone who can open the deck can open it, and it changes only when the copy does.
|
|
@@ -175,12 +175,12 @@ People comment in the open editor: Comment (or C), then a click on anything on a
|
|
|
175
175
|
|
|
176
176
|
## Sharing
|
|
177
177
|
|
|
178
|
-
`share <root>` opens the deck to the local network (the same Wi-Fi or LAN, as `http://<this computer's address>:4710
|
|
178
|
+
`share <root>` opens the deck to the local network (the same Wi-Fi or LAN, as `http://<this computer's address>:4710/slides/<id>/`), starting the server if it isn't running, and prints a link per role (the other decks on the same server stay closed to the network): `editor` edits and comments, `commenter` comments without editing, `viewer` only looks. `open <root> --lan` (or `serve --lan`) shares it as it starts.
|
|
179
179
|
|
|
180
180
|
- The person at this computer is the owner: everything, plus the Share button in the toolbar (the links, the people who joined and who is online, each one's role, sharing on or off). On this computer (`127.0.0.1`) they stay the owner even when they open a link; a link opened at the network address shows what that role sees.
|
|
181
181
|
- Give the person the links to pass on. Whoever opens one types a name and is in as that role; what they change and comment lands in the same folder as the owner's. The links survive a restart while the server gets its port back; if not, `share <root>` prints the new ones to give out again.
|
|
182
182
|
- Guests have a Share button too. It holds the links they may pass on, their own role's and the ones below it (an editor's has all three, a commenter's the commenter and viewer links, a viewer's the viewer link), and Copy link for the page's address, which only people who already have access can open. Whoever joins through a guest's link shows in the owner's panel like anyone else; turning links off, resetting them, changing roles and removing people stay the owner's.
|
|
183
|
-
- `share <root> --disable <role>` / `--enable <role>` turns a link off or on (`<role>`: one, `editor,viewer`, or `all`); off, it holds everyone who came by it until it is on again. `--reset <role>` gives the role a new link: the old one stops working and the people who came by it are out. `--role <guest>=<role>` gives someone who joined another role (`<guest>`: an id from the `guests` it prints). `--off` stops sharing on the network.
|
|
183
|
+
- `share <root> --disable <role>` / `--enable <role>` turns a link off or on (`<role>`: one, `editor,viewer`, or `all`); off, it holds everyone who came by it until it is on again. `--reset <role>` gives the role a new link: the old one stops working and the people who came by it are out. `--role <guest>=<role>` gives someone who joined another role (`<guest>`: an id from the `guests` it prints). `--off` stops sharing on the network, and only `share <root>` alone opens it: the link options leave it shared or not as it was.
|
|
184
184
|
- Who is here: while someone else has the deck open, their avatars sit before History; each one's card says which slide they are on and whether they are editing, and a click goes there. The slide rail shows their badges and the slide their cursors and selections. Someone starting to edit the slide you are on gets you a short note; nothing is locked (two people on one slide: see History). After you change a file you show there as Agent, on the slide you changed, for about 20 s.
|
|
185
185
|
- Only the owner's page sends to you (Send to Agent); what guests comment is saved for you to read with `comments <root>`.
|
|
186
186
|
- The links and the people who joined are in `<root>/.sharing.json`: leave it. It is plain http on the local network: anyone there can read what passes, and a link is the permission: whoever has one gets its role, so send each only to the people meant to have it, and `--reset` a role's link that went further (the Share panel says so too). When this computer has a Tailscale address (100.64.0.0/10), `share` also prints `tailscale`: the same links at that address, for people on the owner's tailnet from any network (the Share panel: Copy Tailscale link in a link's More menu). Nothing else reaches past the local network; there is no tunnel.
|