@meshy-ai/cli 0.4.6 → 0.6.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.
Files changed (207) hide show
  1. package/README.md +7 -6
  2. package/dist/client/endpoints/balance.d.ts +4 -3
  3. package/dist/client/endpoints/balance.d.ts.map +1 -1
  4. package/dist/client/endpoints/balance.js +10 -12
  5. package/dist/client/endpoints/balance.js.map +1 -1
  6. package/dist/client/endpoints/base.d.ts +0 -2
  7. package/dist/client/endpoints/base.d.ts.map +1 -1
  8. package/dist/client/endpoints/base.js.map +1 -1
  9. package/dist/client/index.d.ts +0 -6
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client/index.js +2 -22
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/client/resource-registry.d.ts +2 -9
  14. package/dist/client/resource-registry.d.ts.map +1 -1
  15. package/dist/client/resource-registry.js +5 -14
  16. package/dist/client/resource-registry.js.map +1 -1
  17. package/dist/client/transport.d.ts +1 -1
  18. package/dist/client/transport.d.ts.map +1 -1
  19. package/dist/client/types.d.ts +4 -26
  20. package/dist/client/types.d.ts.map +1 -1
  21. package/dist/client/types.js +4 -31
  22. package/dist/client/types.js.map +1 -1
  23. package/dist/cmd/animation-catalog.js +4 -4
  24. package/dist/cmd/animation-catalog.js.map +1 -1
  25. package/dist/cmd/api.d.ts.map +1 -1
  26. package/dist/cmd/api.js +5 -5
  27. package/dist/cmd/api.js.map +1 -1
  28. package/dist/cmd/auth.d.ts.map +1 -1
  29. package/dist/cmd/auth.js +41 -25
  30. package/dist/cmd/auth.js.map +1 -1
  31. package/dist/cmd/auto-split.d.ts.map +1 -1
  32. package/dist/cmd/auto-split.js +0 -1
  33. package/dist/cmd/auto-split.js.map +1 -1
  34. package/dist/cmd/balance.d.ts.map +1 -1
  35. package/dist/cmd/balance.js +6 -6
  36. package/dist/cmd/balance.js.map +1 -1
  37. package/dist/cmd/creative-lab.d.ts +0 -2
  38. package/dist/cmd/creative-lab.d.ts.map +1 -1
  39. package/dist/cmd/creative-lab.js +0 -7
  40. package/dist/cmd/creative-lab.js.map +1 -1
  41. package/dist/cmd/delete.d.ts.map +1 -1
  42. package/dist/cmd/delete.js +4 -4
  43. package/dist/cmd/delete.js.map +1 -1
  44. package/dist/cmd/doctor.js +4 -4
  45. package/dist/cmd/doctor.js.map +1 -1
  46. package/dist/cmd/download.d.ts +1 -1
  47. package/dist/cmd/download.js +9 -9
  48. package/dist/cmd/download.js.map +1 -1
  49. package/dist/cmd/image-to-3d.d.ts +3 -3
  50. package/dist/cmd/image-to-3d.d.ts.map +1 -1
  51. package/dist/cmd/image-to-3d.js +16 -45
  52. package/dist/cmd/image-to-3d.js.map +1 -1
  53. package/dist/cmd/image-to-image.d.ts.map +1 -1
  54. package/dist/cmd/image-to-image.js +2 -1
  55. package/dist/cmd/image-to-image.js.map +1 -1
  56. package/dist/cmd/inspect.d.ts +12 -4
  57. package/dist/cmd/inspect.d.ts.map +1 -1
  58. package/dist/cmd/inspect.js +63 -39
  59. package/dist/cmd/inspect.js.map +1 -1
  60. package/dist/cmd/make.d.ts.map +1 -1
  61. package/dist/cmd/make.js +51 -112
  62. package/dist/cmd/make.js.map +1 -1
  63. package/dist/cmd/mesh.d.ts +3 -3
  64. package/dist/cmd/mesh.js +5 -5
  65. package/dist/cmd/mesh.js.map +1 -1
  66. package/dist/cmd/multi-image-to-3d.d.ts +2 -3
  67. package/dist/cmd/multi-image-to-3d.d.ts.map +1 -1
  68. package/dist/cmd/multi-image-to-3d.js +10 -28
  69. package/dist/cmd/multi-image-to-3d.js.map +1 -1
  70. package/dist/cmd/operations.js +6 -6
  71. package/dist/cmd/operations.js.map +1 -1
  72. package/dist/cmd/project.d.ts.map +1 -1
  73. package/dist/cmd/project.js +11 -13
  74. package/dist/cmd/project.js.map +1 -1
  75. package/dist/cmd/resources.d.ts +4 -4
  76. package/dist/cmd/resources.d.ts.map +1 -1
  77. package/dist/cmd/resources.js +6 -15
  78. package/dist/cmd/resources.js.map +1 -1
  79. package/dist/cmd/retexture.d.ts +2 -2
  80. package/dist/cmd/retexture.js +2 -2
  81. package/dist/cmd/showcases.d.ts.map +1 -1
  82. package/dist/cmd/showcases.js +4 -4
  83. package/dist/cmd/showcases.js.map +1 -1
  84. package/dist/cmd/slicer.js +4 -4
  85. package/dist/cmd/slicer.js.map +1 -1
  86. package/dist/cmd/text-to-3d.d.ts +1 -1
  87. package/dist/cmd/text-to-3d.js +1 -1
  88. package/dist/cmd/text-to-image.d.ts.map +1 -1
  89. package/dist/cmd/text-to-image.js +3 -2
  90. package/dist/cmd/text-to-image.js.map +1 -1
  91. package/dist/cmd/usage.js +4 -4
  92. package/dist/cmd/usage.js.map +1 -1
  93. package/dist/cmd/uv-unwrap.d.ts +0 -1
  94. package/dist/cmd/uv-unwrap.d.ts.map +1 -1
  95. package/dist/cmd/uv-unwrap.js +0 -2
  96. package/dist/cmd/uv-unwrap.js.map +1 -1
  97. package/dist/index.d.ts +1 -1
  98. package/dist/index.js +22 -53
  99. package/dist/index.js.map +1 -1
  100. package/dist/internal/artifacts.d.ts +18 -9
  101. package/dist/internal/artifacts.d.ts.map +1 -1
  102. package/dist/internal/artifacts.js +56 -30
  103. package/dist/internal/artifacts.js.map +1 -1
  104. package/dist/internal/command-helpers.d.ts +9 -16
  105. package/dist/internal/command-helpers.d.ts.map +1 -1
  106. package/dist/internal/command-helpers.js +14 -31
  107. package/dist/internal/command-helpers.js.map +1 -1
  108. package/dist/internal/config.d.ts +3 -3
  109. package/dist/internal/config.js +3 -3
  110. package/dist/internal/context.d.ts +3 -5
  111. package/dist/internal/context.d.ts.map +1 -1
  112. package/dist/internal/context.js +3 -3
  113. package/dist/internal/context.js.map +1 -1
  114. package/dist/internal/doctor.d.ts +0 -2
  115. package/dist/internal/doctor.d.ts.map +1 -1
  116. package/dist/internal/doctor.js +0 -4
  117. package/dist/internal/doctor.js.map +1 -1
  118. package/dist/internal/download.d.ts +34 -50
  119. package/dist/internal/download.d.ts.map +1 -1
  120. package/dist/internal/download.js +83 -331
  121. package/dist/internal/download.js.map +1 -1
  122. package/dist/internal/errors.d.ts +2 -20
  123. package/dist/internal/errors.d.ts.map +1 -1
  124. package/dist/internal/errors.js +9 -88
  125. package/dist/internal/errors.js.map +1 -1
  126. package/dist/internal/file-input.d.ts +0 -12
  127. package/dist/internal/file-input.d.ts.map +1 -1
  128. package/dist/internal/file-input.js +2 -49
  129. package/dist/internal/file-input.js.map +1 -1
  130. package/dist/internal/global-options.d.ts +4 -1
  131. package/dist/internal/global-options.d.ts.map +1 -1
  132. package/dist/internal/global-options.js +9 -2
  133. package/dist/internal/global-options.js.map +1 -1
  134. package/dist/internal/image-models.d.ts +7 -0
  135. package/dist/internal/image-models.d.ts.map +1 -1
  136. package/dist/internal/image-models.js +14 -0
  137. package/dist/internal/image-models.js.map +1 -1
  138. package/dist/internal/inspect.d.ts +31 -6
  139. package/dist/internal/inspect.d.ts.map +1 -1
  140. package/dist/internal/inspect.js +125 -12
  141. package/dist/internal/inspect.js.map +1 -1
  142. package/dist/internal/logger.d.ts +0 -1
  143. package/dist/internal/logger.d.ts.map +1 -1
  144. package/dist/internal/logger.js +0 -3
  145. package/dist/internal/logger.js.map +1 -1
  146. package/dist/internal/material-links.d.ts +0 -2
  147. package/dist/internal/material-links.d.ts.map +1 -1
  148. package/dist/internal/material-links.js +0 -4
  149. package/dist/internal/material-links.js.map +1 -1
  150. package/dist/internal/obj-transform.d.ts +1 -1
  151. package/dist/internal/obj-transform.js +1 -1
  152. package/dist/internal/output.d.ts +4 -13
  153. package/dist/internal/output.d.ts.map +1 -1
  154. package/dist/internal/output.js +5 -26
  155. package/dist/internal/output.js.map +1 -1
  156. package/dist/internal/paths.d.ts +2 -0
  157. package/dist/internal/paths.d.ts.map +1 -1
  158. package/dist/internal/paths.js +4 -0
  159. package/dist/internal/paths.js.map +1 -1
  160. package/dist/internal/pricing.d.ts +1 -1
  161. package/dist/internal/pricing.d.ts.map +1 -1
  162. package/dist/internal/pricing.js +1 -1
  163. package/dist/internal/pricing.js.map +1 -1
  164. package/dist/internal/project-store.d.ts +6 -13
  165. package/dist/internal/project-store.d.ts.map +1 -1
  166. package/dist/internal/project-store.js +23 -27
  167. package/dist/internal/project-store.js.map +1 -1
  168. package/dist/internal/result.d.ts +1 -2
  169. package/dist/internal/result.d.ts.map +1 -1
  170. package/dist/internal/result.js +1 -1
  171. package/dist/internal/result.js.map +1 -1
  172. package/dist/internal/runtime.d.ts +3 -19
  173. package/dist/internal/runtime.d.ts.map +1 -1
  174. package/dist/internal/runtime.js +12 -35
  175. package/dist/internal/runtime.js.map +1 -1
  176. package/dist/internal/slicers.d.ts +7 -8
  177. package/dist/internal/slicers.d.ts.map +1 -1
  178. package/dist/internal/slicers.js +7 -8
  179. package/dist/internal/slicers.js.map +1 -1
  180. package/dist/internal/task-command.d.ts +18 -14
  181. package/dist/internal/task-command.d.ts.map +1 -1
  182. package/dist/internal/task-command.js +53 -201
  183. package/dist/internal/task-command.js.map +1 -1
  184. package/dist/internal/task-view.js +1 -1
  185. package/dist/internal/task-view.js.map +1 -1
  186. package/dist/internal/texturing.d.ts +17 -0
  187. package/dist/internal/texturing.d.ts.map +1 -0
  188. package/dist/internal/texturing.js +30 -0
  189. package/dist/internal/texturing.js.map +1 -0
  190. package/dist/internal/update-notifier.d.ts +5 -25
  191. package/dist/internal/update-notifier.d.ts.map +1 -1
  192. package/dist/internal/update-notifier.js +5 -58
  193. package/dist/internal/update-notifier.js.map +1 -1
  194. package/dist/internal/views.d.ts +8 -10
  195. package/dist/internal/views.d.ts.map +1 -1
  196. package/dist/internal/views.js +61 -29
  197. package/dist/internal/views.js.map +1 -1
  198. package/dist/root.d.ts +0 -5
  199. package/dist/root.d.ts.map +1 -1
  200. package/dist/root.js +6 -24
  201. package/dist/root.js.map +1 -1
  202. package/package.json +1 -1
  203. package/skills/meshy-cli/SKILL.md +53 -49
  204. package/dist/internal/report.d.ts +0 -40
  205. package/dist/internal/report.d.ts.map +0 -1
  206. package/dist/internal/report.js +0 -48
  207. package/dist/internal/report.js.map +0 -1
@@ -4,7 +4,7 @@ description: "Generate 3D models, motion clips, 2D images and Creative Lab print
4
4
  license: MIT
5
5
  compatibility: Requires meshy-cli on PATH (Node 22.12+, no Python) and a stored credential, MESHY_API_KEY or --api-key-file for API commands; network access to api.meshy.ai. Local helpers work offline.
6
6
  metadata:
7
- version: "1.2.0"
7
+ version: "1.4.0"
8
8
  cli-help: "meshy --help"
9
9
  ---
10
10
 
@@ -20,14 +20,15 @@ executed; do not use Node's `--env-file`). Never echo the key back or write it
20
20
  into a shell profile. `meshy doctor` checks the environment without touching the
21
21
  network; `meshy doctor --check-api` makes one free balance call.
22
22
 
23
- ## Always ask for the stable envelope
23
+ ## Parse the envelope
24
24
 
25
- Add `--output-schema v1 --format json` to every command you parse. Untyped,
26
- `--format` is `pretty` at a terminal and `json` elsewhere; say both and the
27
- shape is fixed however you are spawned. `pretty` is a human view that drops
28
- fields, so never parse it; `json` and `ndjson` carry no colour codes. stdout is then
29
- exactly one JSON object with six keys — `schema_version, command, ok, result,
30
- error, warnings` — and nothing else. Progress goes to stderr as plain lines
25
+ Every command prints one `meshy.cli/v1` envelope on stdout. Add `--format json`
26
+ to every command you parse: untyped, `--format` is `pretty` at a terminal and
27
+ `json` elsewhere; say it and the rendering is fixed however you are spawned.
28
+ `pretty` is a human view that drops fields, so never parse it; `json` and
29
+ `ndjson` carry no colour codes. stdout is then exactly one JSON object with six
30
+ keys — `schema_version, command, ok, result, error, warnings` — and nothing
31
+ else. Progress goes to stderr as plain lines
31
32
  (none under `ndjson`); it is for people, so read ids from stdout, not from it. `ok` is whether the
32
33
  CLI operation completed; `result.task.status` is the server's task state (a `get`
33
34
  of a FAILED task is `ok:true`). Fields the server did not send are `null` —
@@ -39,11 +40,11 @@ recoveries) is replaced with a real path.
39
40
  ## One model, one command
40
41
 
41
42
  ```bash
42
- meshy make "a red sports car" -o car.glb --output-schema v1 # prompt → text-to-3d preview → refine
43
- meshy make ./cat.png -o out/cat/ --output-schema v1 # image → image-to-3d, textured
44
- meshy make "a red sports car" --dry-run --output-schema v1 # planned steps + estimate, no spend, no network
43
+ meshy make "a red sports car" -o car.glb # prompt → text-to-3d preview → refine
44
+ meshy make ./cat.png -o out/cat/ # image → image-to-3d, textured
45
+ meshy make "a red sports car" --dry-run # planned steps + estimate, no spend, no network
45
46
  meshy make "..." --max-credits 25 # refuse to start over budget
46
- meshy make "..." --async --output-schema v1 # one POST, returns step 1's task_id + pending_steps
47
+ meshy make "..." --async # one POST, returns step 1's task_id + pending_steps
47
48
  ```
48
49
 
49
50
  The input decides the chain and nothing else does. If a later step fails, the
@@ -52,13 +53,13 @@ verbatim rather than starting over, or the finished step is paid for twice.
52
53
 
53
54
  ## Everything else
54
55
 
55
- `meshy resources --output-schema v1` indexes every command (kind `task`, `query`,
56
+ `meshy resources` indexes every command (kind `task`, `query`,
56
57
  `action` or `local`); each task resource carries the same verbs:
57
58
 
58
59
  ```bash
59
- meshy <resource> create [flags] [--data '<json>'] [--async] [--timeout <s>] [--operation-id <id>] --output-schema v1
60
- meshy <resource> get|wait|stream|delete <task-id> --output-schema v1
61
- meshy <resource> list [--page-size <n>] --output-schema v1
60
+ meshy <resource> create [flags] [--data '<json>'] [--async] [--timeout <s>] [--operation-id <id>]
61
+ meshy <resource> get|wait|stream|delete <task-id>
62
+ meshy <resource> list [--page-size <n>]
62
63
  ```
63
64
 
64
65
  - `create` blocks until the task is terminal; `--async` submits **exactly one
@@ -79,6 +80,13 @@ meshy <resource> list [--page-size <n>] --output-schema v1
79
80
  `result.task_id` / `result.submission.task_id` and `result.next` from any
80
81
  non-zero exit (11 local I/O, 8 timeout, 130 interrupt) before deciding
81
82
  anything; never create again because a later step failed.
83
+ - `-o <dir>` saves the primary files of a SUCCEEDED task (model formats it produced,
84
+ thumbnail, images, the rig/animation result in GLB) plus `meta.json`; `-o <file.ext>`
85
+ saves the one file of that format (`-o car.glb`, `-o hero.fbx` on a rig). Texture
86
+ maps a GLB already embeds, the rig's bundled walking/running clips and FBX copies
87
+ stay on the server, listed in `result.downloads.skipped`; `--all-assets` (directory
88
+ only) saves them too. Between pipeline steps pass the task id
89
+ (`--input-task-id`, `--rig-task-id`) instead of downloading.
82
90
  - `--save-json <file>` stores the raw API task (use it as the input of `download`,
83
91
  `inspect faces` and `project record`); `--include-raw` puts the raw response under
84
92
  `result.task.raw`; `--project <dir>` records the task in a project folder.
@@ -90,14 +98,14 @@ meshy <resource> list [--page-size <n>] --output-schema v1
90
98
  ## Creative Lab, UV, catalog, showcases
91
99
 
92
100
  ```bash
93
- meshy uv-unwrap create --input-task-id <id> --async --output-schema v1 # GLB only, ≤40k faces (server enforces)
94
- meshy creative-lab <figure|vinyl-figure|brick-figure|lamp|keychain|fridge-magnet|keycap|fidget-pixel> prototype create --image-url ./photo.png --name demo --async --output-schema v1
95
- meshy creative-lab <product> build create --input-task-id <prototype-id> [--model-format …] [--options '<json>'] --async --output-schema v1
96
- meshy creative-lab fidget-collapsible create --image-url ./photo.png --async --output-schema v1 # one stage → STL
97
- meshy animation-catalog list --category DailyActions --search wave --output-schema v1 # free; search is server-side
98
- meshy auto-split create --input-task-id <id> --mode by_parts --prompt "head, torso" --async --output-schema v1 # printable parts
99
- meshy usage tasks --start-time 2026-08-01T00:00:00Z --output-schema v1 # Studio/Enterprise; credits per task
100
- meshy showcases list --search car --page-size 3 --output-schema v1 # Enterprise only; EVERY request is billed
101
+ meshy uv-unwrap create --input-task-id <id> --async # GLB only, ≤40k faces (server enforces)
102
+ meshy creative-lab <figure|vinyl-figure|brick-figure|lamp|keychain|fridge-magnet|keycap|fidget-pixel> prototype create --image-url ./photo.png --name demo --async
103
+ meshy creative-lab <product> build create --input-task-id <prototype-id> [--model-format …] [--options '<json>'] --async
104
+ meshy creative-lab fidget-collapsible create --image-url ./photo.png --async # one stage → STL
105
+ meshy animation-catalog list --category DailyActions --search wave # free; search is server-side
106
+ meshy auto-split create --input-task-id <id> --mode by_parts --prompt "head, torso" --async # printable parts
107
+ meshy usage tasks --start-time 2026-08-01T00:00:00Z # Studio/Enterprise; credits per task
108
+ meshy showcases list --search car --page-size 3 # Enterprise only; EVERY request is billed
101
109
  ```
102
110
 
103
111
  Prototype meanings differ: most yield a concept image, lamp also yields a
@@ -112,23 +120,24 @@ Never call `showcases` in a health check.
112
120
  ## Downloads, projects, printing (local, no key)
113
121
 
114
122
  ```bash
115
- meshy download --task-json ./task.json --list --output-schema v1
116
- meshy download --task-json ./task.json --model-format glb --output ./model.glb --output-schema v1
117
- meshy download --task-json ./rig.json --asset result.basic_animations.walking_glb_url --output ./walking.glb --output-schema v1
118
- meshy download --resource image-to-3d --task-id <id> --all --output-dir ./out/ --output-schema v1
119
- meshy project init --root ./meshy_output --name "<prompt>" --task-id <id> --output-schema v1
120
- meshy project record --project <dir> --task-id <id> --resource text-to-3d --stage preview --file preview.glb --output-schema v1
121
- meshy inspect faces --task-json ./task.json --max-faces 300000 --output-schema v1 # exit 0 pass | 12 fail | 13 unknown
122
- meshy mesh prepare-print ./model.obj --height-mm 75 --output-schema v1 # writes ./model.print.obj (Y-up → Z-up, grounded)
123
- meshy slicer detect --output-schema v1
124
- meshy slicer open --slicer OrcaSlicer --file ./model.print.obj --output-schema v1 # launch only; not proof of import
123
+ meshy download --task-json ./task.json --list
124
+ meshy download --task-json ./task.json --model-format glb --output ./model.glb
125
+ meshy download --task-json ./rig.json --asset result.basic_animations.walking_glb_url --output ./walking.glb
126
+ meshy download --resource image-to-3d --task-id <id> --all --output-dir ./out/
127
+ meshy project init --root ./meshy_output --name "<prompt>" --task-id <id>
128
+ meshy project record --project <dir> --task-id <id> --resource text-to-3d --stage preview --file preview.glb
129
+ meshy inspect faces --model ./model.glb --max-faces 300000 # exit 0 pass | 12 fail | 13 unknown
130
+ meshy mesh prepare-print ./model.obj --height-mm 75 # writes ./model.print.obj (Y-up → Z-up, grounded)
131
+ meshy slicer detect
132
+ meshy slicer open --slicer OrcaSlicer --file ./model.print.obj # launch only; not proof of import
125
133
  ```
126
134
 
127
135
  `download` needs an explicit selector when a task has several assets (it lists
128
136
  them and exits 2 otherwise); it never overwrites without `--overwrite`. `inspect
129
- faces` answers only the face-count question — `unknown` (exit 13) means the task
130
- carries no usable `face_count`; do not treat it as a pass and do not start a
131
- remesh unless the user agrees. `prepare-print` never edits the input unless
137
+ faces` answers only the face-count question. The API does not report
138
+ `face_count`, so measure the downloaded model with `--model <file.glb>`; a task
139
+ source answers `unknown` (exit 13) — never treat that as a pass, and do not
140
+ start a remesh unless the user agrees. `prepare-print` never edits the input unless
132
141
  `--in-place`.
133
142
 
134
143
  ## Constraints that will bite
@@ -161,12 +170,12 @@ These are API rules, not preferences — ignoring them produces failed tasks:
161
170
  - `multi-image-to-3d` takes 1-4 views of one object; use `image-to-3d` unless
162
171
  multi-view input was asked for. Both accept `--input-task-id` of a SUCCEEDED
163
172
  `text-to-image` / `image-to-image` task, so a generated image chains to 3D.
164
- - `image-to-3d` defaults to an untextured draft mesh; `--should-texture true`
165
- (what `make` uses) produces a textured model in one task.
173
+ - `image-to-3d` and `multi-image-to-3d` texture by default, like the API (one
174
+ task, full PBR maps, 4k base color). `--should-texture false` is an untextured
175
+ draft to confirm first; texture it later with `retexture`.
166
176
  - **The default model is `latest` = Meshy 7.1** on all three generators.
167
177
  `--geometry-resolution 2k|4k` runs the Ultra geometry pass (+5 credits;
168
- text-to-3d: preview only; multi-image: `2k` only; not with smart-topology);
169
- `--ultra-mode` on image-to-3d is its deprecated spelling of `2k`.
178
+ text-to-3d: preview only; multi-image: `2k` only; not with smart-topology).
170
179
  `--model-type smart-topology` (text-to-3d and image-to-3d) has a native
171
180
  `--target-polycount`: meshy-t2.5 is the CLI default, 100-30000 (default
172
181
  15000); `--ai-model meshy-t2` selects T2, 100-15000 (default 10000). `retexture`'s
@@ -184,8 +193,8 @@ These are API rules, not preferences — ignoring them produces failed tasks:
184
193
  ## Finding an animation id
185
194
 
186
195
  `--action-id` is an integer from Meshy's animation library. Ask the live
187
- library (free): `meshy animation-catalog list --category Fighting --search kick
188
- --output-schema v1` → `result.items[].action_id`; `--action-ids 92,4` checks
196
+ library (free): `meshy animation-catalog list --category Fighting --search kick` →
197
+ `result.items[].action_id`; `--action-ids 92,4` checks
189
198
  stored ids. Ids are not `1..N` (the catalog contains `-2`, `-1` and `0`) — never
190
199
  guess one. This skill also bundles a
191
200
  snapshot as `animation-library.json` (with hand-written descriptions the API does
@@ -213,8 +222,6 @@ Exit codes: `0` ok · `1` task FAILED/CANCELED while waiting, or unclassified ·
213
222
  `result.downloads.files` lists what already landed (`status: written`), the rest can
214
223
  be fetched with `meshy download`. `downloads.failed_step` (`relink` | `digest` |
215
224
  `sidecar`) means every asset is on disk and only that step is missing.
216
- - Legacy-schema errors (no `--output-schema v1`) after a create carry additive
217
- `task_id` / `operation_id` fields and a `hint` with the resume command — never re-create.
218
225
  - `result.downloads.material_links.status: "incomplete"` → name the references that
219
226
  stayed unresolved or ambiguous (`texture_maps[].method`, `note`) instead of claiming the
220
227
  model loads; two material groups that would share one texture without evidence are
@@ -223,7 +230,7 @@ Exit codes: `0` ok · `1` task FAILED/CANCELED while waiting, or unclassified ·
223
230
  disk (`result.downloads.files`); repair the project's `metadata.json`, then run
224
231
  `error.recovery.command` (`meshy project record …`, it already carries the original
225
232
  `--workspace` and `--operation-id`) verbatim — do not download or create again. The same
226
- command appears after a task verb's `--project` record failure (legacy: `hint`); when the
233
+ command appears after a task verb's `--project` record failure; when the
227
234
  error says the project is *no longer a target inside the authorised boundary* (it moved
228
235
  mid-request) there is deliberately no command and `recovery` is null — restore the
229
236
  directory first, then record with `meshy project record` from inside the original workspace.
@@ -235,9 +242,6 @@ Exit codes: `0` ok · `1` task FAILED/CANCELED while waiting, or unclassified ·
235
242
  - A `FAILED` task → relay `result.task.task_error.message` verbatim; do not guess a cause.
236
243
  - Any error may carry `error.recovery.command` — prefer it over improvising.
237
244
 
238
- Legacy JSON output (without `--output-schema v1`) may carry `_notice.update` when
239
- a newer meshy-cli exists; pass its `command` on to the user.
240
-
241
245
  ## Docs
242
246
 
243
247
  Endpoint reference and pricing: https://docs.meshy.ai/en/api/
@@ -1,40 +0,0 @@
1
- /**
2
- * Human-readable status report printed when `-o` is in play.
3
- *
4
- * Format:
5
- * Status: SUCCESS | FAIL
6
- * Task Id: <id>
7
- * Generated <type>
8
- * Saved to:
9
- * - <path>
10
- * - <path>
11
- * Metadata path: <path>
12
- * [optional update notice line when a newer version is available]
13
- *
14
- * Success reports list every saved file and the meta.json path. Failure
15
- * reports include the task_error.message (if present) and skip the Saved
16
- * to / Metadata path lines since nothing is written.
17
- */
18
- import type { Task } from "../client/types.js";
19
- import type { UpdateNotice } from "./update-notifier.js";
20
- export interface SuccessReport {
21
- status: "SUCCESS";
22
- taskId: string;
23
- type: string;
24
- savedFiles: string[];
25
- metadataPath: string;
26
- _notice?: UpdateNotice;
27
- }
28
- export interface FailReport {
29
- status: "FAIL";
30
- taskId: string;
31
- type: string;
32
- error?: string;
33
- timedOut?: boolean;
34
- _notice?: UpdateNotice;
35
- }
36
- export type Report = SuccessReport | FailReport;
37
- export declare function formatReport(r: Report): string;
38
- export declare function printReport(r: Report): void;
39
- export declare function reportFromTask(task: Task, resource: string): Pick<Report, "taskId" | "type">;
40
- //# sourceMappingURL=report.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/internal/report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;AAEhD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB9C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC,CAK5F"}
@@ -1,48 +0,0 @@
1
- /**
2
- * Human-readable status report printed when `-o` is in play.
3
- *
4
- * Format:
5
- * Status: SUCCESS | FAIL
6
- * Task Id: <id>
7
- * Generated <type>
8
- * Saved to:
9
- * - <path>
10
- * - <path>
11
- * Metadata path: <path>
12
- * [optional update notice line when a newer version is available]
13
- *
14
- * Success reports list every saved file and the meta.json path. Failure
15
- * reports include the task_error.message (if present) and skip the Saved
16
- * to / Metadata path lines since nothing is written.
17
- */
18
- export function formatReport(r) {
19
- const lines = [];
20
- lines.push(`Status: ${r.status}`);
21
- lines.push(`Task Id: ${r.taskId}`);
22
- lines.push(`Generated ${r.type || "(unknown)"}`);
23
- if (r.status === "SUCCESS") {
24
- lines.push("Saved to:");
25
- for (const file of r.savedFiles)
26
- lines.push(`- ${file}`);
27
- lines.push(`Metadata path: ${r.metadataPath}`);
28
- }
29
- else {
30
- if (r.timedOut)
31
- lines.push("Error: polling timed out before the task reached a terminal status");
32
- else if (r.error)
33
- lines.push(`Error: ${r.error}`);
34
- }
35
- if (r._notice)
36
- lines.push(r._notice.message);
37
- return `${lines.join("\n")}\n`;
38
- }
39
- export function printReport(r) {
40
- process.stdout.write(formatReport(r));
41
- }
42
- export function reportFromTask(task, resource) {
43
- return {
44
- taskId: task.id,
45
- type: task.type || resource,
46
- };
47
- }
48
- //# sourceMappingURL=report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/internal/report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAyBH,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAEjD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;aAC5F,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,CAAC,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7C,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU,EAAE,QAAgB;IACzD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,QAAQ;KAC5B,CAAC;AACJ,CAAC"}