@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
@@ -11,12 +11,11 @@
11
11
  * any MIME-driven extension change — is checked against the authorised root.
12
12
  *
13
13
  * Two entry points share the core:
14
- * downloadArtifacts — the 0.2.0 `-o` behaviour (all artifacts, role-based
15
- * names, meta.json sidecar); output shape unchanged. An
16
- * explicit `root` (the --workspace) confines every path.
17
- * downloadAssets — the selective downloader behind `meshy download` and
18
- * the v1 manifest.
19
- * Both relink OBJ → MTL → texture references after the set has landed (see
14
+ * downloadAssets — writes a list of enumerated assets (artifacts.ts):
15
+ * `meshy download` selects them explicitly;
16
+ * downloadTaskAssets — `-o`: the task's default selection (or every asset
17
+ * with --all-assets) plus the meta.json sidecar.
18
+ * OBJ → MTL → texture references are relinked after the set has landed (see
20
19
  * material-links.ts), so a saved OBJ loads with the files beside it.
21
20
  */
22
21
  import { createHash } from "node:crypto";
@@ -28,10 +27,9 @@ import { pipeline } from "node:stream/promises";
28
27
  import sharp from "sharp";
29
28
  import { publishTempFile, tempPathFor, writeJsonFile } from "./atomic-file.js";
30
29
  import { CliError, UsageError } from "./errors.js";
31
- import { logger } from "./logger.js";
32
- import { freezeRoot, isInside, resolveWithinRoot, safeExtension, safeSegment } from "./paths.js";
30
+ import { freezeRoot, isInside, looksLikeFile, resolveWithinRoot, safeExtension } from "./paths.js";
33
31
  import { USER_AGENT } from "./user-agent.js";
34
- import { modelAsset, productFromTaskType } from "./artifacts.js";
32
+ import { enumerateAssets, selectDefaultAssets } from "./artifacts.js";
35
33
  import { fileDigest, relinkMaterials } from "./material-links.js";
36
34
  /** Extensions sharp can transcode between. */
37
35
  const CONVERTIBLE_IMAGE_EXTS = new Set(["jpg", "jpeg", "png", "webp", "gif", "tiff", "tif", "avif"]);
@@ -530,351 +528,105 @@ async function convertImage(buffer, targetExt, targetPath) {
530
528
  throw new Error(`unsupported image target extension: ${targetExt}`);
531
529
  }
532
530
  }
533
- export function enumerateArtifacts(task) {
534
- const out = [];
535
- if (task.model_urls) {
536
- // `model_urls` keys are usually formats (glb, obj) but Creative Lab builds
537
- // use part names (`lamp_stl`, `base_stl`, `bundle_zip`) and deliver the
538
- // keychain / fridge-magnet OBJ as a ZIP bundle. The selective downloader
539
- // already knows this (artifacts.ts); the legacy layout names the files the
540
- // same way while keeping its slot keys (`model_lamp_stl`).
541
- const product = productFromTaskType(task.type)?.product ?? null;
542
- for (const [ext, url] of Object.entries(task.model_urls)) {
543
- if (typeof url === "string" && url) {
544
- const asset = modelAsset(ext, url, product);
545
- out.push({ key: `model_${ext}`, url, preferredExt: asset.format ?? ext.toLowerCase(), filename: asset.filename });
546
- }
547
- }
548
- }
549
- if (task.thumbnail_url) {
550
- out.push({ key: "thumbnail", url: task.thumbnail_url, preferredExt: "png" });
551
- }
552
- if (Array.isArray(task.texture_urls)) {
553
- task.texture_urls.forEach((set, i) => {
554
- for (const [name, url] of Object.entries(set)) {
555
- if (typeof url === "string" && url) {
556
- out.push({ key: `texture_${i}_${name}`, url, preferredExt: "png" });
557
- }
558
- }
559
- });
560
- }
561
- if (Array.isArray(task.image_urls)) {
562
- task.image_urls.forEach((url, i) => {
563
- if (typeof url === "string" && url) {
564
- out.push({ key: `image_${i}`, url, preferredExt: "" });
565
- }
566
- });
567
- }
568
- // Rigging / animate-style endpoints nest outputs under `result`; the
569
- // bundled walking/running clips live one level deeper.
570
- if (task.result && typeof task.result === "object") {
571
- const motionFormat = task.result["motion_format"];
572
- for (const [key, value] of Object.entries(task.result)) {
573
- if (key === "basic_animations" && value && typeof value === "object" && !Array.isArray(value)) {
574
- for (const [sub, url] of Object.entries(value)) {
575
- if (typeof url !== "string" || !/^https?:/.test(url))
576
- continue;
577
- const extMatch = sub.match(/_(fbx|glb|usdz|obj|png|jpg|jpeg|webp)_url$/i);
578
- out.push({ key: `basic_animations_${sub}`, url, preferredExt: extMatch ? extMatch[1].toLowerCase() : "" });
579
- }
580
- continue;
581
- }
582
- if (typeof value !== "string" || !/^https?:/.test(value))
583
- continue;
584
- const extMatch = key.match(/_(fbx|glb|usdz|obj|png|jpg|jpeg|webp)_url$/i);
585
- let preferredExt = extMatch ? extMatch[1].toLowerCase() : "";
586
- if (key === "motion_url" && (motionFormat === "fbx" || motionFormat === "bvh")) {
587
- preferredExt = motionFormat;
588
- }
589
- out.push({ key, url: value, preferredExt });
590
- }
591
- }
592
- return out;
593
- }
594
- /** Heuristic: does this look like a file path (has an extension) or a dir? */
595
- export function looksLikeFile(path) {
596
- return /\.[A-Za-z0-9]{2,6}$/.test(path);
597
- }
598
- function interruptedBefore(what) {
599
- return new CliError({ code: "interrupted", message: `interrupted before ${what}; nothing further was written` });
600
- }
601
531
  /**
602
- * A failure *after* every transfer landed (relink, digest refresh, sidecar).
603
- * The manifest keeps every committed file with the bytes actually on disk —
604
- * a relink may already have rewritten some — and names the step that failed;
605
- * a cooperative interrupt is `interrupted` (130), everything else keeps its class.
532
+ * Single-file `-o <file.ext>`: the asset whose format matches the extension
533
+ * (`-o car.glb` → the model GLB), first among the selected assets, then among
534
+ * the alternate formats (`-o hero.fbx` on rigging → the FBX rigged character).
535
+ * A sole selected asset of unknown format, or an image the extension can
536
+ * transcode to, is taken as well. Null when nothing or several match.
606
537
  */
607
- function finalisationFailure(step, err, files, signal) {
608
- redigest(files);
609
- const downloads = { state: "partial", files, metadata_path: null, failed_step: step };
610
- const written = files.filter((f) => f.status === "written").length;
611
- const interrupted = (err instanceof CliError && err.code === "interrupted") || Boolean(signal?.aborted);
612
- const message = `${written} file(s) were written but the ${step} step ${interrupted ? "was interrupted" : "failed"}: ${err instanceof Error ? err.message : String(err)}`;
613
- if (err instanceof CliError) {
614
- return new CliError({
615
- code: interrupted ? "interrupted" : err.code,
616
- message,
617
- httpStatus: err.httpStatus,
618
- retryable: err.retryable,
619
- recovery: err.recovery,
620
- hint: err.hint,
621
- details: err.details,
622
- warnings: err.warnings,
623
- result: { ...(err.result ?? {}), downloads },
624
- cause: err,
625
- });
626
- }
627
- return new CliError({ code: interrupted ? "interrupted" : "local_io", message, result: { downloads }, cause: err });
538
+ function pickSingleFile(selection, outputPath) {
539
+ const ext = safeExtension(extname(outputPath));
540
+ const matches = (a) => a.format !== null && (a.format === ext || extEquivalent(a.format, ext));
541
+ const direct = selection.selected.filter(matches);
542
+ if (direct.length > 0)
543
+ return direct.length === 1 ? direct[0] : null;
544
+ const alternates = selection.skipped.filter((s) => s.reason === "alternate_format" && matches(s.asset));
545
+ if (alternates.length === 1)
546
+ return alternates[0].asset;
547
+ const sole = selection.selected.length === 1 ? selection.selected[0] : null;
548
+ const transcodable = (a) => a.format === null || (CONVERTIBLE_IMAGE_EXTS.has(a.format) && CONVERTIBLE_IMAGE_EXTS.has(ext));
549
+ return sole && transcodable(sole) ? sole : null;
628
550
  }
629
551
  /**
630
- * Wrap a per-artifact failure so the caller sees what already landed. The
631
- * original classification (network / not_found / validation / interrupted /
632
- * local_io, HTTP status, recovery) is kept; only the message names the artifact.
552
+ * `-o`: save a SUCCEEDED task's default selection (or every asset with
553
+ * `allAssets`) into a directory with a `meta.json` sidecar, or one asset into
554
+ * a file path with a `<stem>_meta.json` sidecar. Every planned path is checked
555
+ * before any request: inside the workspace, and not already there.
633
556
  */
634
- function downloadFailure(artifact, err, files) {
635
- const message = err instanceof Error ? err.message : String(err);
636
- const downloads = { state: files.some((f) => f.status === "written") ? "partial" : "failed", files, metadata_path: null };
637
- if (err instanceof CliError) {
638
- return new CliError({
639
- code: err.code,
640
- message: `download failed for ${artifact.key}: ${message}`,
641
- exitCode: err.exitCode,
642
- httpStatus: err.httpStatus,
643
- retryable: err.retryable,
644
- recovery: err.recovery,
645
- hint: err.hint,
646
- details: err.details,
647
- warnings: err.warnings,
648
- result: { ...(err.result ?? {}), downloads },
649
- cause: err,
650
- });
651
- }
652
- return new CliError({ code: "local_io", message: `download failed for ${artifact.key}: ${message}`, result: { downloads }, cause: err });
653
- }
654
- export async function downloadArtifacts(task, outputPath, resource, opts = {}) {
655
- const artifacts = enumerateArtifacts(task);
656
- // An explicit workspace is the root for everything written here — the
657
- // directory, every planned file and the sidecar — checked before mkdir.
658
- const workspaceRoot = opts.root === undefined ? null : typeof opts.root === "string" ? freezeRoot(opts.root, { label: "--workspace" }) : opts.root;
659
- if (artifacts.length === 0) {
660
- // Report-only tasks (analyze-printability) carry their result in a
661
- // structured field instead of downloadable files. Persist the full task
662
- // JSON so `-o` still means "give me the result on disk".
663
- if (task.printability != null) {
664
- return saveReportOnly(task, outputPath, resource, workspaceRoot);
557
+ export async function downloadTaskAssets(task, outputPath, descriptor, opts = {}) {
558
+ const all = enumerateAssets(task, descriptor).assets;
559
+ if (all.length === 0)
560
+ throw new Error(`task ${task.id} has no downloadable assets`);
561
+ const singleFile = looksLikeFile(outputPath);
562
+ if (singleFile && opts.allAssets && all.length > 1) {
563
+ throw new UsageError(`--all-assets saves all ${all.length} files of task ${task.id} and needs a directory — '${outputPath}' looks like a file (e.g. '${stripExt(outputPath)}')`);
564
+ }
565
+ let selection = opts.allAssets ? { selected: [...all], skipped: [] } : selectDefaultAssets(all);
566
+ if (singleFile) {
567
+ const chosen = pickSingleFile(selection, outputPath);
568
+ if (!chosen) {
569
+ throw new UsageError(`'${outputPath}' does not name exactly one file of task ${task.id} (it has ${selection.selected.map((a) => a.filename).join(", ")}): ` +
570
+ `use one of those extensions, or pass a directory path for --output (e.g. '${stripExt(outputPath)}').`);
665
571
  }
666
- throw new Error(`task ${task.id} has no downloadable artifacts`);
667
- }
668
- if (looksLikeFile(outputPath) && artifacts.length > 1) {
669
- throw new UsageError(`task ${task.id} produced ${artifacts.length} artifacts — '${outputPath}' looks like a file. ` +
670
- `Pass a directory path for --output instead (e.g. '${stripExt(outputPath)}').`);
671
- }
672
- const singleFileMode = looksLikeFile(outputPath);
673
- // Plan every path we'd write up front so we can bail before any network
674
- // work when a destination already exists. This prevents silent overwrite
675
- // of prior runs.
676
- let targetDir;
677
- const plan = [];
678
- if (singleFileMode) {
679
- targetDir = dirname(outputPath) || ".";
680
- plan.push({ artifact: artifacts[0], target: outputPath });
681
- }
682
- else {
683
- targetDir = outputPath;
684
- for (const artifact of artifacts)
685
- plan.push({ artifact, target: join(targetDir, deriveFilename(artifact)) });
686
- }
687
- // Per-file meta in single-file mode (`-o a.png` → `a_meta.json`) so two
688
- // outputs can share a directory without trampling each other. Directory
689
- // mode keeps the plain `meta.json` alongside the artifacts.
690
- const metadataPath = singleFileMode
691
- ? `${stripExt(outputPath)}_meta.json`
692
- : join(targetDir, "meta.json");
693
- const existing = [...plan.map((p) => p.target), metadataPath].filter((p) => existsSync(p));
572
+ const reasons = new Map(selection.skipped.map((s) => [s.asset, s.reason]));
573
+ selection = { selected: [chosen], skipped: all.filter((a) => a !== chosen).map((asset) => ({ asset, reason: reasons.get(asset) ?? "not_selected" })) };
574
+ }
575
+ const targetDir = singleFile ? dirname(resolvePath(outputPath)) : resolvePath(outputPath);
576
+ const metadataPath = singleFile ? `${stripExt(resolvePath(outputPath))}_meta.json` : join(targetDir, "meta.json");
577
+ const planned = singleFile ? [resolvePath(outputPath)] : selection.selected.map((a) => join(targetDir, a.filename));
578
+ const existing = [...planned, metadataPath].filter((p) => existsSync(p));
694
579
  if (existing.length > 0) {
695
- throw new UsageError(`refusing to overwrite existing file(s):\n ${existing.join("\n ")}\n` +
696
- `(delete them or choose a different --output path to rerun)`);
580
+ throw new UsageError(`refusing to overwrite existing file(s):\n ${existing.join("\n ")}\n(delete them or choose a different --output path to rerun)`);
697
581
  }
698
- if (workspaceRoot) {
699
- resolveWithinRoot(targetDir, workspaceRoot, { label: "output directory" });
700
- for (const p of [...plan.map((x) => x.target), metadataPath])
701
- resolveWithinRoot(p, workspaceRoot, { label: "planned download path" });
582
+ if (opts.root) {
583
+ resolveWithinRoot(targetDir, opts.root, { label: "output directory" });
584
+ for (const p of [...planned, metadataPath])
585
+ resolveWithinRoot(p, opts.root, { label: "planned download path" });
702
586
  }
703
587
  mkdirSync(targetDir, { recursive: true });
704
- const root = workspaceRoot ?? freezeRoot(targetDir, { label: "output directory" });
705
- const files = [];
706
- const saved = [];
707
- for (const { artifact, target } of plan) {
708
- if (opts.signal?.aborted)
709
- throw downloadFailure(artifact, interruptedBefore(`${artifact.key} was downloaded`), files);
710
- try {
711
- const placed = await downloadArtifact(artifact, target, root, opts.signal);
712
- saved.push(placed.path);
713
- files.push({ key: artifact.key, path: placed.path, bytes: placed.bytes, sha256: placed.sha256, content_type: placed.contentType, status: "written", error: null, relinked: false });
714
- }
715
- catch (err) {
716
- files.push({ key: artifact.key, path: target, bytes: 0, sha256: "", content_type: null, status: "failed", error: err instanceof Error ? err.message : String(err), relinked: false });
717
- throw downloadFailure(artifact, err, files);
718
- }
719
- }
720
- // --- Finalisation: relink, refresh digests, publish the sidecar. Every step
721
- // runs under the same failure handling as the transfers: whatever fails or is
722
- // interrupted, the manifest still lists every committed file with the bytes
723
- // actually on disk, and the sidecar is published like an asset (root re-proven
724
- // at publication, symlink refused, exclusive — never truncating a file that
725
- // appeared since the preflight).
726
- const linkables = plan.map((p, i) => ({ key: p.artifact.key, path: resolvePath(saved[i]), sourceName: basenameOfUrl(p.artifact.url) }));
727
- let step = "relink";
728
- let materialLinks = null;
588
+ const root = opts.root ?? freezeRoot(targetDir, { label: "output directory" });
589
+ const result = await downloadAssets(selection.selected, {
590
+ ...(singleFile ? { targetFile: resolvePath(outputPath) } : { targetDir }),
591
+ root,
592
+ ...(opts.signal ? { signal: opts.signal } : {}),
593
+ });
594
+ const skipped = selection.skipped.map((s) => ({ key: s.asset.key, reason: s.reason }));
729
595
  try {
730
596
  if (opts.signal?.aborted)
731
- throw interruptedBefore("the material references were relinked");
732
- materialLinks = await relinkMaterials(linkables, { signal: opts.signal });
733
- step = "digest";
734
- if (materialLinks) {
735
- for (const path of materialLinks.rewritten) {
736
- const entry = files.find((f) => resolvePath(f.path) === path);
737
- if (!entry)
738
- continue;
739
- const digest = fileDigest(path);
740
- entry.bytes = digest.bytes;
741
- entry.sha256 = digest.sha256;
742
- entry.relinked = true;
743
- }
744
- for (const w of materialLinks.warnings)
745
- logger.warn(w.message);
746
- }
747
- step = "sidecar";
748
- if (opts.signal?.aborted)
749
- throw interruptedBefore("the sidecar was written");
750
- writeMeta(task, resource, metadataPath, saved, root);
597
+ throw new CliError({ code: "interrupted", message: "interrupted before the sidecar was written; nothing further was written" });
598
+ writeMeta(task, descriptor.id, metadataPath, result.files.map((f) => f.path), skipped, root);
751
599
  }
752
600
  catch (err) {
753
- throw finalisationFailure(step, err, files, opts.signal);
601
+ throw sidecarFailure(err, result.files, opts.signal);
754
602
  }
755
- return { savedFiles: saved, metadataPath, materialLinks, files };
756
- }
757
- function deriveFilename(artifact) {
758
- if (artifact.filename)
759
- return artifact.filename;
760
- if (artifact.key.startsWith("model_")) {
761
- const ext = artifact.key.slice("model_".length);
762
- return `model.${ext}`;
763
- }
764
- if (artifact.key === "thumbnail") {
765
- return `thumbnail.${artifact.preferredExt || "png"}`;
766
- }
767
- // Keys from `result.*_url` (animate / rigging) arrive like
768
- // "animation_glb_url". The trailing "_url" is structural; the real name
769
- // is what precedes it.
770
- const stem = artifact.key.replace(/_url$/, "");
771
- // Unknown extension → leave it off; downloadArtifact will append the
772
- // content-type-derived extension so we don't emit a bogus `.bin`.
773
- return artifact.preferredExt ? `${stem}.${artifact.preferredExt}` : stem;
774
- }
775
- /** Fetch one artifact into place. Errors keep their class: a CliError from the fetch/publish core is rethrown untouched. */
776
- async function downloadArtifact(artifact, targetPath, root, signal) {
777
- logger.debug(`GET ${redact(artifact.url)}`);
778
- const fetched = await fetchToTemp(artifact.url, targetPath, { signal });
779
- const actualExt = extFromContentType(fetched.contentType);
780
- const requestedExt = extname(targetPath).slice(1).toLowerCase();
781
- let finalPath = targetPath;
782
- let tmp = fetched.tmpPath;
783
- let bytes = fetched.bytes;
784
- let sha = fetched.sha256;
785
- try {
786
- if (!requestedExt && actualExt) {
787
- // No extension requested (e.g. unknown-format image artifact) — pick one
788
- // from the content-type so the file has a reasonable suffix.
789
- finalPath = `${targetPath}.${actualExt}`;
790
- }
791
- else if (actualExt && requestedExt && actualExt !== requestedExt && !extEquivalent(actualExt, requestedExt)) {
792
- if (CONVERTIBLE_IMAGE_EXTS.has(actualExt) && CONVERTIBLE_IMAGE_EXTS.has(requestedExt)) {
793
- // Both sides are image formats sharp understands — convert.
794
- logger.debug(`converting ${actualExt} → ${requestedExt} for ${artifact.key}`);
795
- const converted = `${tmp}.conv`;
796
- await convertImage(readFileSync(tmp), requestedExt, converted);
797
- removeQuietly(tmp);
798
- tmp = converted;
799
- const digest = fileDigest(converted);
800
- bytes = digest.bytes;
801
- sha = digest.sha256;
802
- }
803
- else {
804
- // Can't convert safely — save with the true extension so the file isn't a lie.
805
- finalPath = `${targetPath.slice(0, targetPath.length - (requestedExt.length + 1))}.${actualExt}`;
806
- logger.warn(`extension mismatch for ${artifact.key}: requested .${requestedExt}, got ${fetched.contentType || "?"}; ` +
807
- `cannot transcode ${actualExt} → ${requestedExt}, saving as ${finalPath}`);
808
- }
809
- }
810
- if (signal?.aborted)
811
- throw new CliError({ code: "interrupted", message: `interrupted before ${artifact.key} was published` });
812
- // The final name may differ from the pre-checked one; it still may not
813
- // clobber anything and must stay under the output directory.
814
- const resolved = resolveWithinRoot(finalPath, root, { label: "download target" }).path;
815
- publishTempFile(tmp, resolved, { overwrite: false });
816
- }
817
- catch (err) {
818
- removeQuietly(tmp);
819
- throw err;
820
- }
821
- return { path: finalPath === targetPath ? targetPath : finalPath, bytes, sha256: sha, contentType: fetched.contentType };
603
+ return { files: result.files, skipped, metadataPath, materialLinks: result.materialLinks, warnings: result.warnings };
822
604
  }
823
605
  /**
824
- * Save a no-artifact task (e.g. analyze-printability) to disk. Two layouts:
825
- * - `-o report.json` (or any .json file): write the full task object there;
826
- * no sidecar (the file IS the report).
827
- * - `-o some/dir/` (or any non-file path): write `meta.json` inside,
828
- * matching the directory-mode layout used elsewhere.
829
- * Other single-file extensions are rejected — the data is JSON, lying about
830
- * the extension would be worse than a clear error. Every path is proven inside
831
- * the workspace (when given) before any directory or file is created.
606
+ * The sidecar failed (or was interrupted) after every asset landed: the
607
+ * manifest keeps each committed file with the bytes on disk; an interrupt is
608
+ * `interrupted` (130), everything else keeps its class.
832
609
  */
833
- function saveReportOnly(task, outputPath, resource, workspaceRoot) {
834
- const singleFileMode = looksLikeFile(outputPath);
835
- const abs = resolvePath(outputPath);
836
- if (singleFileMode) {
837
- const ext = extname(abs).slice(1).toLowerCase();
838
- if (ext !== "json") {
839
- throw new UsageError(`${resource} produces a JSON report — pass '-o <path>.json' or a directory path (got '${outputPath}').`);
840
- }
841
- if (existsSync(abs)) {
842
- throw new UsageError(`refusing to overwrite existing file:\n ${outputPath}\n` +
843
- `(delete it or choose a different --output path to rerun)`);
844
- }
845
- if (workspaceRoot)
846
- resolveWithinRoot(abs, workspaceRoot, { label: "report path" });
847
- writeJsonFile(abs, { resource, task, downloaded_at: new Date().toISOString() }, { overwrite: false, mode: 0o644 });
848
- return { savedFiles: [], metadataPath: abs, materialLinks: null, files: [] };
849
- }
850
- const metadataPath = join(abs, "meta.json");
851
- if (existsSync(metadataPath)) {
852
- throw new UsageError(`refusing to overwrite existing file:\n ${metadataPath}\n` +
853
- `(delete it or choose a different --output path to rerun)`);
854
- }
855
- if (workspaceRoot) {
856
- resolveWithinRoot(abs, workspaceRoot, { label: "output directory" });
857
- resolveWithinRoot(metadataPath, workspaceRoot, { label: "planned download path" });
858
- }
859
- mkdirSync(abs, { recursive: true });
860
- writeMeta(task, resource, metadataPath, [], workspaceRoot ?? freezeRoot(abs, { label: "output directory" }));
861
- return { savedFiles: [], metadataPath, materialLinks: null, files: [] };
610
+ function sidecarFailure(err, files, signal) {
611
+ redigest(files);
612
+ const downloads = { state: "partial", files, metadata_path: null, failed_step: "sidecar" };
613
+ const interrupted = (err instanceof CliError && err.code === "interrupted") || Boolean(signal?.aborted);
614
+ const message = `${files.length} file(s) were written but the sidecar step ${interrupted ? "was interrupted" : "failed"}: ${err instanceof Error ? err.message : String(err)}`;
615
+ if (err instanceof CliError) {
616
+ return new CliError({ code: interrupted ? "interrupted" : err.code, message, httpStatus: err.httpStatus, retryable: err.retryable, recovery: err.recovery, hint: err.hint, details: err.details, warnings: err.warnings, result: { ...(err.result ?? {}), downloads }, cause: err });
617
+ }
618
+ return new CliError({ code: interrupted ? "interrupted" : "local_io", message, result: { downloads }, cause: err });
862
619
  }
863
620
  /**
864
- * The legacy sidecar (`meta.json` / `<stem>_meta.json`), published under the
865
- * same rules as an asset: the real path is re-proven inside `root` at
621
+ * The sidecar (`meta.json` / `<stem>_meta.json`): the full task — every URL,
622
+ * so `meshy download --task-json` can fetch a skipped asset later — the saved
623
+ * paths and what was skipped. Published under the root re-proven at
866
624
  * publication time (a symlink or file that appeared since the preflight is
867
- * refused, never followed or truncated) and the write is exclusive and atomic.
625
+ * refused, never followed or truncated); the write is exclusive and atomic.
868
626
  */
869
- function writeMeta(task, resource, path, savedFiles, root) {
870
- const meta = {
871
- resource,
872
- task,
873
- saved_files: savedFiles,
874
- downloaded_at: new Date().toISOString(),
875
- };
627
+ function writeMeta(task, resource, path, savedFiles, skipped, root) {
628
+ const meta = { resource, task, saved_files: savedFiles, skipped, downloaded_at: new Date().toISOString() };
876
629
  const resolved = resolveWithinRoot(path, root, { label: "sidecar path" }).path;
877
630
  writeJsonFile(resolved, meta, { overwrite: false, mode: 0o644 });
878
631
  }
879
- export { safeSegment as _safeSegmentForTests };
880
632
  //# sourceMappingURL=download.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/internal/download.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/internal/download.ts"],"names":[],"mappings":"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"}