meshy-dsh 0.1.0 → 0.1.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meshy-dsh",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Meshy skills for DeepSeek Harness: textured, rigged and animated 3D models or print-ready files from text or images, through meshy-cli.",
5
5
  "keywords": [
6
6
  "dsh-plugin",
@@ -44,7 +44,7 @@
44
44
  "smoke": "node scripts/smoke.mjs"
45
45
  },
46
46
  "meshy": {
47
- "skills": "meshy-dev/meshy-3d-agent#v0.8.0"
47
+ "skills": "meshy-dev/meshy-3d-agent#v0.8.1"
48
48
  },
49
49
  "dsh": {
50
50
  "bundle": {
@@ -2,12 +2,12 @@
2
2
  name: meshy-3d-generation
3
3
  description: "Generates and edits digital 3D assets with the Meshy CLI: text-to-3D and image-to-3D models, texturing, remeshing and LODs, UV unwrapping, format conversion (GLB, FBX, OBJ, USDZ, STL, 3MF, Blender), rigging, animation, motion clips from text and reference images. Use when the user asks to make, texture, rig, animate or convert a 3D model or game asset. For physical 3D printing use meshy-3d-printing."
4
4
  license: MIT
5
- compatibility: "Needs Node.js 22.12+ and the Meshy CLI 0.7.x, 0.7.1 or later (npm install -g meshy-cli@0.7); network access to the Meshy API."
5
+ compatibility: "Needs Node.js 22.12+ and the Meshy CLI 0.7.x, 0.7.3 or later (npm install -g meshy-cli@0.7); network access to the Meshy API."
6
6
  ---
7
7
 
8
8
  # Meshy 3D Generation
9
9
 
10
- Use Meshy CLI **0.7** (0.7.1 or later) to turn the user's request into a delivered asset. Completion means
10
+ Use Meshy CLI **0.7** (0.7.3 or later) to turn the user's request into a delivered asset. Completion means
11
11
  saving the requested files in the requested location, inspecting an available preview, and
12
12
  finishing any project integration the user requested. Login or task submission alone is not
13
13
  completion. Choose the shortest suitable pipeline and reuse existing assets for follow-ups.
@@ -29,13 +29,14 @@ existing GLB needs no extra format conversion. Use command help when parameters
29
29
  ## First use and authorization
30
30
 
31
31
  Before the first command run `meshy --version`; no need to ask. When `meshy` is missing or
32
- older than 0.7.1, install the newest 0.7.x with `npm install -g meshy-cli@0.7` and say so in
32
+ older than 0.7.3, install the newest 0.7.x with `npm install -g meshy-cli@0.7` and say so in
33
33
  one line; Setup covers a refused install and a CLI of 0.8 or newer. Reuse a verified session. If login is
34
34
  needed, follow Setup and run `auth login --device` (adding `--region cn` for a user in mainland
35
35
  China) in a persistent tool session. Show its
36
36
  verification URL and user code in **commentary/progress, not a final answer**. Await that same
37
37
  session in this turn until it exits, verify `auth status`, then continue the original request.
38
- A background process cannot resume a finished turn; do not require a "done" chat message.
38
+ A background process cannot resume a finished turn; do not require a "done" chat message, except in
39
+ Setup's two-step sign-in for a user on a remote chat (a phone through a chat bot).
39
40
  Browser approval stays with the user; credentials never belong in chat.
40
41
 
41
42
  ## Execution boundaries
@@ -99,7 +99,9 @@ Deliver four things, every time:
99
99
 
100
100
  1. **The model file**, at the path the user asked for, written as a plain path in backticks.
101
101
  Do not present it as a clickable link: hosts open such links in a text/preview pane that
102
- cannot render a binary mesh, and it looks broken. Offer the next real action instead —
102
+ cannot render a binary mesh, and it looks broken. A host with a tool that delivers files to the
103
+ user (dsh's `present`) gets the model through that tool as well, so it opens from the
104
+ conversation. Offer the next real action instead —
103
105
  reveal it in the file manager (`open -R <path>` on macOS, `explorer /select,<path>` on
104
106
  Windows), open it in a local 3D tool, or wire it into the project.
105
107
  2. **The preview**, shown inline when one exists, or an explicit note that none does.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Shared by the generation and print workflows. Three things are settled before any job
4
4
  starts: **how to run the CLI**, **whether a session already exists**, and **where files go**.
5
- The supported CLI is **0.7.x, from 0.7.1,** on **Node.js 22.12 or newer**. No Python, request wrapper or
5
+ The supported CLI is **0.7.x, from 0.7.3,** on **Node.js 22.12 or newer**. No Python, request wrapper or
6
6
  separate token store is involved.
7
7
 
8
8
  Contents: 1 runner · 2 reuse a session · 3 first login · 4 where files go · 5 one session
@@ -17,26 +17,29 @@ meshy --version
17
17
 
18
18
  | Observation | What to do |
19
19
  |---|---|
20
- | `meshy --version` prints 0.7.1 or a later 0.7.x | run `meshy` |
21
- | no `meshy` command, or a version older than 0.7.1 | install the newest 0.7.x (below), then run `meshy` |
22
- | 0.8 or newer | keep it, since something else may rely on it, and run the temporary 0.7 package |
20
+ | `meshy --version` prints 0.7.3 or a later 0.7.x | run `meshy` |
21
+ | no `meshy` command, or a version older than 0.7.3 | install the newest 0.7.x (below), then run `meshy` |
22
+ | 0.8 or newer | keep it, since something else may rely on it, and run the temporary package |
23
23
  | no Node.js, or Node older than 22.12 | stop and report it: the user installs Node.js 22.12+ |
24
24
 
25
25
  ```bash
26
26
  npm install -g meshy-cli@0.7
27
27
  ```
28
28
 
29
- Check and install without asking first; say in one line that you are installing it. Never use `sudo` or change system policy: when the
30
- install is refused (permissions, a managed machine, a sandbox), use the temporary 0.7 package
29
+ Check and install without asking first; say in one line that you are installing it. Install at
30
+ most once: when `meshy --version` still reports a version older than 0.7.3 afterwards, the
31
+ registry this machine uses lags npm, so report that instead of installing again. Never use `sudo`
32
+ or change system policy: when the install is refused (permissions, a managed machine, a sandbox), use the temporary package
31
33
  instead. It runs the same CLI without installing anything: put `npm exec --yes
32
- --package=meshy-cli@0.7 --` in front of the same arguments, and the exit code and the JSON on
34
+ --package=meshy-cli@0.7.3 --` in front of the same arguments, and the exit code and the JSON on
33
35
  stdout are forwarded unchanged. Recipes are written as `meshy …`; example:
34
36
 
35
37
  ```bash
36
- npm exec --yes --package=meshy-cli@0.7 -- meshy auth status --format json --no-update-check
38
+ npm exec --yes --package=meshy-cli@0.7.3 -- meshy auth status --format json --no-update-check
37
39
  ```
38
40
 
39
- The first such call downloads the package into the npm cache; later calls reuse it. On Windows
41
+ The first such call downloads the package into the npm cache; later calls reuse it. It names an
42
+ exact version because `npm exec` keeps reusing whatever matching version it cached first. On Windows
40
43
  both commands go through `npm.cmd`. A missing `npm` with a working Node.js means the host
41
44
  stripped npm: report that and ask the user to install the CLI themselves.
42
45
 
@@ -138,12 +141,35 @@ Failure branches — each is a different recovery, so read the error rather than
138
141
  - **`device_flow_not_supported`**: this API host has no device endpoint. Ask the user to run
139
142
  `meshy auth login` in their own desktop terminal (loopback + browser), or to store their own
140
143
  key with `meshy auth login --with-key <key>` privately. Never ask for the key in chat.
141
- - **Host cannot keep a process alive at all**: fall back to the user running the login command
142
- in their own terminal, then re-check `auth status` and resume. This is the only case where a
143
- manual terminal step is acceptable.
144
+ - **Host cannot keep a process alive at all**: use the two-step sign-in below.
144
145
 
145
- Do not use `--no-wait`: its JSON contains a `device_code`, which is a bearer secret. Do not use
146
- `--manual` from an agent — it prompts on stdin for a pasted code. Never show a token, a device
146
+ ### Remote chat: sign in across two turns
147
+
148
+ When the user talks to you through a chat bridge from another device (a phone in QQ, WeChat,
149
+ Slack or Telegram), progress messages may arrive late or only when the turn ends, so a link shown
150
+ while the login waits never reaches them. Sign in in two steps instead (add `--region cn` to the
151
+ first for the China site):
152
+
153
+ ```bash
154
+ meshy auth login --device --no-wait --format json --no-update-check
155
+ ```
156
+
157
+ It returns at once with `result.verification_url` (the code is already in the link),
158
+ `result.user_code` and `result.flow_id`. Keep FLOW_ID in your notes and end the turn with the link
159
+ and the code: ask the user to open it in the phone's own browser rather than the chat app's (an
160
+ in-app browser may not keep the sign-in), approve, and reply when done. When they reply:
161
+
162
+ ```bash
163
+ meshy auth login --device-flow FLOW_ID --format json --no-update-check
164
+ ```
165
+
166
+ It waits while the approval is still pending, saves the session and prints
167
+ `result.status: "logged_in"`; verify `auth status` and continue the original request. An expired
168
+ or unknown flow means running step one again. A host whose question tool reaches the user
169
+ (dsh's `ask_user_question` is forwarded by its chat bridges) can instead ask with the link and
170
+ wait for the answer in the same turn, then run step two.
171
+
172
+ Do not use `--manual` from an agent — it prompts on stdin for a pasted code. Never show a token, a device
147
173
  code or a signed URL to the user or copy one into chat or a file: task results and sidecars
148
174
  carry signed URLs, so report paths and task IDs instead of pasting them.
149
175
 
@@ -11,11 +11,11 @@ timeout · deleting a task · local files.
11
11
 
12
12
  ## Runner problems
13
13
 
14
- - **`meshy: command not found`** or **a version older than 0.7.1**: install the newest 0.7.x as
15
- Setup describes. If the install is refused, use the temporary 0.7 package
16
- (`npm exec --yes --package=meshy-cli@0.7 -- meshy …`) and carry on with the same job.
14
+ - **`meshy: command not found`** or **a version older than 0.7.3**: install the newest 0.7.x as
15
+ Setup describes. If the install is refused, use the temporary package
16
+ (`npm exec --yes --package=meshy-cli@0.7.3 -- meshy …`) and carry on with the same job.
17
17
  - **A global 0.8 or newer** answers `--version`. Do not uninstall or downgrade it; use the
18
- temporary 0.7 package for this work and mention the mismatch once.
18
+ temporary package for this work and mention the mismatch once.
19
19
  - **Node older than 22.12** fails the CLI's own runtime gate. Report the required version and the
20
20
  installed one; do not try to relax it or run an older CLI.
21
21
  - **`npm exec` cannot reach the registry**: report the network/proxy error. A cached package
@@ -2,12 +2,12 @@
2
2
  name: meshy-3d-printing
3
3
  description: "Generates and prepares models for physical 3D printing with the Meshy CLI: white and multicolor prints (3MF, STL, OBJ), printability analysis and repair, splitting into parts, Creative Lab products such as figures, lamps and keychains, sizing, and slicer handoff (Bambu Studio, OrcaSlicer, PrusaSlicer, Cura). Use when the user wants something 3D-printed or asks for print or slicer files."
4
4
  license: MIT
5
- compatibility: "Needs Node.js 22.12+ and the Meshy CLI 0.7.x, 0.7.1 or later (npm install -g meshy-cli@0.7); network access to the Meshy API."
5
+ compatibility: "Needs Node.js 22.12+ and the Meshy CLI 0.7.x, 0.7.3 or later (npm install -g meshy-cli@0.7); network access to the Meshy API."
6
6
  ---
7
7
 
8
8
  # Meshy 3D Printing
9
9
 
10
- Use Meshy CLI **0.7** (0.7.1 or later) to deliver the requested print files at the intended size, with
10
+ Use Meshy CLI **0.7** (0.7.3 or later) to deliver the requested print files at the intended size, with
11
11
  analysis/repair results where applicable and a slicer handoff when requested. This skill is
12
12
  self-contained. Ordinary digital assets belong to meshy-3d-generation.
13
13
 
@@ -48,13 +48,14 @@ local dimension check cannot establish full printability.
48
48
  ## Cloud authorization
49
49
 
50
50
  Before the first command run `meshy --version`; no need to ask. When `meshy` is missing or
51
- older than 0.7.1, install the newest 0.7.x with `npm install -g meshy-cli@0.7` and say so in
51
+ older than 0.7.3, install the newest 0.7.x with `npm install -g meshy-cli@0.7` and say so in
52
52
  one line; Setup covers a refused install and a CLI of 0.8 or newer. Local-only work stops at runner setup.
53
53
  Cloud work reuses a verified session. If login is needed, keep `auth login --device` running (with `--region cn` for a
54
54
  user in mainland China),
55
55
  show its URL and user code in **commentary/progress, never a final answer**, and await the
56
56
  same tool session in this turn. After it exits, verify `auth status` and resume the print job.
57
- Do not ask for a "done" message or credentials in chat; Setup has the host wait procedure.
57
+ Never ask for credentials in chat, nor for a "done" message except in Setup's two-step sign-in for a
58
+ user on a remote chat (a phone through a chat bot); Setup has the host wait procedure.
58
59
 
59
60
  ## Printing-specific constraints
60
61
 
@@ -99,7 +99,9 @@ Deliver four things, every time:
99
99
 
100
100
  1. **The model file**, at the path the user asked for, written as a plain path in backticks.
101
101
  Do not present it as a clickable link: hosts open such links in a text/preview pane that
102
- cannot render a binary mesh, and it looks broken. Offer the next real action instead —
102
+ cannot render a binary mesh, and it looks broken. A host with a tool that delivers files to the
103
+ user (dsh's `present`) gets the model through that tool as well, so it opens from the
104
+ conversation. Offer the next real action instead —
103
105
  reveal it in the file manager (`open -R <path>` on macOS, `explorer /select,<path>` on
104
106
  Windows), open it in a local 3D tool, or wire it into the project.
105
107
  2. **The preview**, shown inline when one exists, or an explicit note that none does.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Shared by the generation and print workflows. Three things are settled before any job
4
4
  starts: **how to run the CLI**, **whether a session already exists**, and **where files go**.
5
- The supported CLI is **0.7.x, from 0.7.1,** on **Node.js 22.12 or newer**. No Python, request wrapper or
5
+ The supported CLI is **0.7.x, from 0.7.3,** on **Node.js 22.12 or newer**. No Python, request wrapper or
6
6
  separate token store is involved.
7
7
 
8
8
  Contents: 1 runner · 2 reuse a session · 3 first login · 4 where files go · 5 one session
@@ -17,26 +17,29 @@ meshy --version
17
17
 
18
18
  | Observation | What to do |
19
19
  |---|---|
20
- | `meshy --version` prints 0.7.1 or a later 0.7.x | run `meshy` |
21
- | no `meshy` command, or a version older than 0.7.1 | install the newest 0.7.x (below), then run `meshy` |
22
- | 0.8 or newer | keep it, since something else may rely on it, and run the temporary 0.7 package |
20
+ | `meshy --version` prints 0.7.3 or a later 0.7.x | run `meshy` |
21
+ | no `meshy` command, or a version older than 0.7.3 | install the newest 0.7.x (below), then run `meshy` |
22
+ | 0.8 or newer | keep it, since something else may rely on it, and run the temporary package |
23
23
  | no Node.js, or Node older than 22.12 | stop and report it: the user installs Node.js 22.12+ |
24
24
 
25
25
  ```bash
26
26
  npm install -g meshy-cli@0.7
27
27
  ```
28
28
 
29
- Check and install without asking first; say in one line that you are installing it. Never use `sudo` or change system policy: when the
30
- install is refused (permissions, a managed machine, a sandbox), use the temporary 0.7 package
29
+ Check and install without asking first; say in one line that you are installing it. Install at
30
+ most once: when `meshy --version` still reports a version older than 0.7.3 afterwards, the
31
+ registry this machine uses lags npm, so report that instead of installing again. Never use `sudo`
32
+ or change system policy: when the install is refused (permissions, a managed machine, a sandbox), use the temporary package
31
33
  instead. It runs the same CLI without installing anything: put `npm exec --yes
32
- --package=meshy-cli@0.7 --` in front of the same arguments, and the exit code and the JSON on
34
+ --package=meshy-cli@0.7.3 --` in front of the same arguments, and the exit code and the JSON on
33
35
  stdout are forwarded unchanged. Recipes are written as `meshy …`; example:
34
36
 
35
37
  ```bash
36
- npm exec --yes --package=meshy-cli@0.7 -- meshy auth status --format json --no-update-check
38
+ npm exec --yes --package=meshy-cli@0.7.3 -- meshy auth status --format json --no-update-check
37
39
  ```
38
40
 
39
- The first such call downloads the package into the npm cache; later calls reuse it. On Windows
41
+ The first such call downloads the package into the npm cache; later calls reuse it. It names an
42
+ exact version because `npm exec` keeps reusing whatever matching version it cached first. On Windows
40
43
  both commands go through `npm.cmd`. A missing `npm` with a working Node.js means the host
41
44
  stripped npm: report that and ask the user to install the CLI themselves.
42
45
 
@@ -138,12 +141,35 @@ Failure branches — each is a different recovery, so read the error rather than
138
141
  - **`device_flow_not_supported`**: this API host has no device endpoint. Ask the user to run
139
142
  `meshy auth login` in their own desktop terminal (loopback + browser), or to store their own
140
143
  key with `meshy auth login --with-key <key>` privately. Never ask for the key in chat.
141
- - **Host cannot keep a process alive at all**: fall back to the user running the login command
142
- in their own terminal, then re-check `auth status` and resume. This is the only case where a
143
- manual terminal step is acceptable.
144
+ - **Host cannot keep a process alive at all**: use the two-step sign-in below.
144
145
 
145
- Do not use `--no-wait`: its JSON contains a `device_code`, which is a bearer secret. Do not use
146
- `--manual` from an agent — it prompts on stdin for a pasted code. Never show a token, a device
146
+ ### Remote chat: sign in across two turns
147
+
148
+ When the user talks to you through a chat bridge from another device (a phone in QQ, WeChat,
149
+ Slack or Telegram), progress messages may arrive late or only when the turn ends, so a link shown
150
+ while the login waits never reaches them. Sign in in two steps instead (add `--region cn` to the
151
+ first for the China site):
152
+
153
+ ```bash
154
+ meshy auth login --device --no-wait --format json --no-update-check
155
+ ```
156
+
157
+ It returns at once with `result.verification_url` (the code is already in the link),
158
+ `result.user_code` and `result.flow_id`. Keep FLOW_ID in your notes and end the turn with the link
159
+ and the code: ask the user to open it in the phone's own browser rather than the chat app's (an
160
+ in-app browser may not keep the sign-in), approve, and reply when done. When they reply:
161
+
162
+ ```bash
163
+ meshy auth login --device-flow FLOW_ID --format json --no-update-check
164
+ ```
165
+
166
+ It waits while the approval is still pending, saves the session and prints
167
+ `result.status: "logged_in"`; verify `auth status` and continue the original request. An expired
168
+ or unknown flow means running step one again. A host whose question tool reaches the user
169
+ (dsh's `ask_user_question` is forwarded by its chat bridges) can instead ask with the link and
170
+ wait for the answer in the same turn, then run step two.
171
+
172
+ Do not use `--manual` from an agent — it prompts on stdin for a pasted code. Never show a token, a device
147
173
  code or a signed URL to the user or copy one into chat or a file: task results and sidecars
148
174
  carry signed URLs, so report paths and task IDs instead of pasting them.
149
175
 
@@ -11,11 +11,11 @@ timeout · deleting a task · local files.
11
11
 
12
12
  ## Runner problems
13
13
 
14
- - **`meshy: command not found`** or **a version older than 0.7.1**: install the newest 0.7.x as
15
- Setup describes. If the install is refused, use the temporary 0.7 package
16
- (`npm exec --yes --package=meshy-cli@0.7 -- meshy …`) and carry on with the same job.
14
+ - **`meshy: command not found`** or **a version older than 0.7.3**: install the newest 0.7.x as
15
+ Setup describes. If the install is refused, use the temporary package
16
+ (`npm exec --yes --package=meshy-cli@0.7.3 -- meshy …`) and carry on with the same job.
17
17
  - **A global 0.8 or newer** answers `--version`. Do not uninstall or downgrade it; use the
18
- temporary 0.7 package for this work and mention the mismatch once.
18
+ temporary package for this work and mention the mismatch once.
19
19
  - **Node older than 22.12** fails the CLI's own runtime gate. Report the required version and the
20
20
  installed one; do not try to relax it or run an older CLI.
21
21
  - **`npm exec` cannot reach the registry**: report the network/proxy error. A cached package