@meshy-ai/cli 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +8 -2
- package/README.md +342 -108
- package/dist/client/endpoints/animation-catalog.d.ts +37 -0
- package/dist/client/endpoints/animation-catalog.d.ts.map +1 -0
- package/dist/client/endpoints/animation-catalog.js +55 -0
- package/dist/client/endpoints/animation-catalog.js.map +1 -0
- package/dist/client/endpoints/balance.d.ts +5 -0
- package/dist/client/endpoints/balance.d.ts.map +1 -1
- package/dist/client/endpoints/balance.js +5 -1
- package/dist/client/endpoints/balance.js.map +1 -1
- package/dist/client/endpoints/base.d.ts +41 -7
- package/dist/client/endpoints/base.d.ts.map +1 -1
- package/dist/client/endpoints/base.js +61 -40
- package/dist/client/endpoints/base.js.map +1 -1
- package/dist/client/endpoints/showcases.d.ts +31 -0
- package/dist/client/endpoints/showcases.d.ts.map +1 -0
- package/dist/client/endpoints/showcases.js +49 -0
- package/dist/client/endpoints/showcases.js.map +1 -0
- package/dist/client/errors.d.ts +1 -0
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +1 -1
- package/dist/client/errors.js.map +1 -1
- package/dist/client/index.d.ts +47 -38
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +89 -120
- package/dist/client/index.js.map +1 -1
- package/dist/client/resource-registry.d.ts +97 -0
- package/dist/client/resource-registry.d.ts.map +1 -0
- package/dist/client/resource-registry.js +157 -0
- package/dist/client/resource-registry.js.map +1 -0
- package/dist/client/transport.d.ts +99 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +320 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client/types.d.ts +17 -6
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/types.js +28 -6
- package/dist/client/types.js.map +1 -1
- package/dist/cmd/animation-catalog.d.ts +26 -0
- package/dist/cmd/animation-catalog.d.ts.map +1 -0
- package/dist/cmd/animation-catalog.js +80 -0
- package/dist/cmd/animation-catalog.js.map +1 -0
- package/dist/cmd/api.d.ts +3 -2
- package/dist/cmd/api.d.ts.map +1 -1
- package/dist/cmd/api.js +22 -8
- package/dist/cmd/api.js.map +1 -1
- package/dist/cmd/auth.d.ts.map +1 -1
- package/dist/cmd/auth.js +5 -0
- package/dist/cmd/auth.js.map +1 -1
- package/dist/cmd/balance.d.ts.map +1 -1
- package/dist/cmd/balance.js +10 -6
- package/dist/cmd/balance.js.map +1 -1
- package/dist/cmd/creative-lab.d.ts +26 -0
- package/dist/cmd/creative-lab.d.ts.map +1 -0
- package/dist/cmd/creative-lab.js +256 -0
- package/dist/cmd/creative-lab.js.map +1 -0
- package/dist/cmd/delete.d.ts.map +1 -1
- package/dist/cmd/delete.js +6 -7
- package/dist/cmd/delete.js.map +1 -1
- package/dist/cmd/doctor.d.ts +23 -0
- package/dist/cmd/doctor.d.ts.map +1 -0
- package/dist/cmd/doctor.js +61 -0
- package/dist/cmd/doctor.js.map +1 -0
- package/dist/cmd/download.d.ts +17 -0
- package/dist/cmd/download.d.ts.map +1 -0
- package/dist/cmd/download.js +436 -0
- package/dist/cmd/download.js.map +1 -0
- package/dist/cmd/inspect.d.ts +63 -0
- package/dist/cmd/inspect.d.ts.map +1 -0
- package/dist/cmd/inspect.js +179 -0
- package/dist/cmd/inspect.js.map +1 -0
- package/dist/cmd/make.d.ts +13 -3
- package/dist/cmd/make.d.ts.map +1 -1
- package/dist/cmd/make.js +240 -36
- package/dist/cmd/make.js.map +1 -1
- package/dist/cmd/mesh.d.ts +13 -0
- package/dist/cmd/mesh.d.ts.map +1 -0
- package/dist/cmd/mesh.js +67 -0
- package/dist/cmd/mesh.js.map +1 -0
- package/dist/cmd/project.d.ts +16 -0
- package/dist/cmd/project.d.ts.map +1 -0
- package/dist/cmd/project.js +136 -0
- package/dist/cmd/project.js.map +1 -0
- package/dist/cmd/resources.d.ts +5 -0
- package/dist/cmd/resources.d.ts.map +1 -1
- package/dist/cmd/resources.js +38 -10
- package/dist/cmd/resources.js.map +1 -1
- package/dist/cmd/showcases.d.ts +10 -0
- package/dist/cmd/showcases.d.ts.map +1 -0
- package/dist/cmd/showcases.js +63 -0
- package/dist/cmd/showcases.js.map +1 -0
- package/dist/cmd/slicer.d.ts +12 -0
- package/dist/cmd/slicer.d.ts.map +1 -0
- package/dist/cmd/slicer.js +46 -0
- package/dist/cmd/slicer.js.map +1 -0
- package/dist/cmd/uv-unwrap.d.ts +16 -0
- package/dist/cmd/uv-unwrap.d.ts.map +1 -0
- package/dist/cmd/uv-unwrap.js +52 -0
- package/dist/cmd/uv-unwrap.js.map +1 -0
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -8
- package/dist/index.js.map +1 -1
- package/dist/internal/artifacts.d.ts +97 -0
- package/dist/internal/artifacts.d.ts.map +1 -0
- package/dist/internal/artifacts.js +280 -0
- package/dist/internal/artifacts.js.map +1 -0
- package/dist/internal/atomic-file.d.ts +39 -0
- package/dist/internal/atomic-file.d.ts.map +1 -0
- package/dist/internal/atomic-file.js +160 -0
- package/dist/internal/atomic-file.js.map +1 -0
- package/dist/internal/command-helpers.d.ts +46 -0
- package/dist/internal/command-helpers.d.ts.map +1 -0
- package/dist/internal/command-helpers.js +61 -0
- package/dist/internal/command-helpers.js.map +1 -0
- package/dist/internal/config.d.ts +48 -5
- package/dist/internal/config.d.ts.map +1 -1
- package/dist/internal/config.js +95 -6
- package/dist/internal/config.js.map +1 -1
- package/dist/internal/context.d.ts +25 -0
- package/dist/internal/context.d.ts.map +1 -0
- package/dist/internal/context.js +37 -0
- package/dist/internal/context.js.map +1 -0
- package/dist/internal/credentials.d.ts +11 -0
- package/dist/internal/credentials.d.ts.map +1 -1
- package/dist/internal/credentials.js +2 -0
- package/dist/internal/credentials.js.map +1 -1
- package/dist/internal/doctor.d.ts +94 -0
- package/dist/internal/doctor.d.ts.map +1 -0
- package/dist/internal/doctor.js +280 -0
- package/dist/internal/doctor.js.map +1 -0
- package/dist/internal/download.d.ts +147 -13
- package/dist/internal/download.d.ts.map +1 -1
- package/dist/internal/download.js +735 -142
- package/dist/internal/download.js.map +1 -1
- package/dist/internal/env-file.d.ts +29 -0
- package/dist/internal/env-file.d.ts.map +1 -0
- package/dist/internal/env-file.js +95 -0
- package/dist/internal/env-file.js.map +1 -0
- package/dist/internal/errors.d.ts +74 -1
- package/dist/internal/errors.d.ts.map +1 -1
- package/dist/internal/errors.js +173 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/file-input.d.ts +52 -12
- package/dist/internal/file-input.d.ts.map +1 -1
- package/dist/internal/file-input.js +162 -33
- package/dist/internal/file-input.js.map +1 -1
- package/dist/internal/global-options.d.ts +6 -4
- package/dist/internal/global-options.d.ts.map +1 -1
- package/dist/internal/global-options.js +19 -4
- package/dist/internal/global-options.js.map +1 -1
- package/dist/internal/inspect.d.ts +67 -0
- package/dist/internal/inspect.d.ts.map +1 -0
- package/dist/internal/inspect.js +111 -0
- package/dist/internal/inspect.js.map +1 -0
- package/dist/internal/lock.d.ts +19 -0
- package/dist/internal/lock.d.ts.map +1 -0
- package/dist/internal/lock.js +66 -0
- package/dist/internal/lock.js.map +1 -0
- package/dist/internal/material-links.d.ts +115 -0
- package/dist/internal/material-links.d.ts.map +1 -0
- package/dist/internal/material-links.js +577 -0
- package/dist/internal/material-links.js.map +1 -0
- package/dist/internal/obj-transform.d.ts +115 -0
- package/dist/internal/obj-transform.d.ts.map +1 -0
- package/dist/internal/obj-transform.js +649 -0
- package/dist/internal/obj-transform.js.map +1 -0
- package/dist/internal/operation-store.d.ts +123 -0
- package/dist/internal/operation-store.d.ts.map +1 -0
- package/dist/internal/operation-store.js +229 -0
- package/dist/internal/operation-store.js.map +1 -0
- package/dist/internal/output.d.ts +20 -2
- package/dist/internal/output.d.ts.map +1 -1
- package/dist/internal/output.js +32 -4
- package/dist/internal/output.js.map +1 -1
- package/dist/internal/paths.d.ts +89 -0
- package/dist/internal/paths.d.ts.map +1 -0
- package/dist/internal/paths.js +168 -0
- package/dist/internal/paths.js.map +1 -0
- package/dist/internal/payload.d.ts +15 -0
- package/dist/internal/payload.d.ts.map +1 -1
- package/dist/internal/payload.js +50 -3
- package/dist/internal/payload.js.map +1 -1
- package/dist/internal/poll.d.ts +30 -4
- package/dist/internal/poll.d.ts.map +1 -1
- package/dist/internal/poll.js +99 -16
- package/dist/internal/poll.js.map +1 -1
- package/dist/internal/project-store.d.ts +197 -0
- package/dist/internal/project-store.d.ts.map +1 -0
- package/dist/internal/project-store.js +467 -0
- package/dist/internal/project-store.js.map +1 -0
- package/dist/internal/result.d.ts +50 -0
- package/dist/internal/result.d.ts.map +1 -0
- package/dist/internal/result.js +41 -0
- package/dist/internal/result.js.map +1 -0
- package/dist/internal/runtime.d.ts +35 -5
- package/dist/internal/runtime.d.ts.map +1 -1
- package/dist/internal/runtime.js +68 -18
- package/dist/internal/runtime.js.map +1 -1
- package/dist/internal/slicers.d.ts +117 -0
- package/dist/internal/slicers.d.ts.map +1 -0
- package/dist/internal/slicers.js +314 -0
- package/dist/internal/slicers.js.map +1 -0
- package/dist/internal/stream.d.ts +58 -0
- package/dist/internal/stream.d.ts.map +1 -0
- package/dist/internal/stream.js +280 -0
- package/dist/internal/stream.js.map +1 -0
- package/dist/internal/task-command.d.ts +128 -11
- package/dist/internal/task-command.d.ts.map +1 -1
- package/dist/internal/task-command.js +991 -111
- package/dist/internal/task-command.js.map +1 -1
- package/dist/internal/task-view.d.ts +56 -0
- package/dist/internal/task-view.d.ts.map +1 -0
- package/dist/internal/task-view.js +95 -0
- package/dist/internal/task-view.js.map +1 -0
- package/dist/internal/update-notifier.d.ts +5 -1
- package/dist/internal/update-notifier.d.ts.map +1 -1
- package/dist/internal/update-notifier.js +7 -3
- package/dist/internal/update-notifier.js.map +1 -1
- package/dist/root.d.ts +10 -0
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +75 -10
- package/dist/root.js.map +1 -1
- package/package.json +3 -2
- package/skills/meshy-cli/SKILL.md +140 -59
- package/dist/client/endpoints/analyze-printability.d.ts +0 -5
- package/dist/client/endpoints/analyze-printability.d.ts.map +0 -1
- package/dist/client/endpoints/analyze-printability.js +0 -7
- package/dist/client/endpoints/analyze-printability.js.map +0 -1
- package/dist/client/endpoints/animate.d.ts +0 -6
- package/dist/client/endpoints/animate.d.ts.map +0 -1
- package/dist/client/endpoints/animate.js +0 -8
- package/dist/client/endpoints/animate.js.map +0 -1
- package/dist/client/endpoints/convert.d.ts +0 -5
- package/dist/client/endpoints/convert.d.ts.map +0 -1
- package/dist/client/endpoints/convert.js +0 -7
- package/dist/client/endpoints/convert.js.map +0 -1
- package/dist/client/endpoints/image-to-3d.d.ts +0 -5
- package/dist/client/endpoints/image-to-3d.d.ts.map +0 -1
- package/dist/client/endpoints/image-to-3d.js +0 -7
- package/dist/client/endpoints/image-to-3d.js.map +0 -1
- package/dist/client/endpoints/image-to-image.d.ts +0 -5
- package/dist/client/endpoints/image-to-image.d.ts.map +0 -1
- package/dist/client/endpoints/image-to-image.js +0 -7
- package/dist/client/endpoints/image-to-image.js.map +0 -1
- package/dist/client/endpoints/multi-color-print.d.ts +0 -5
- package/dist/client/endpoints/multi-color-print.d.ts.map +0 -1
- package/dist/client/endpoints/multi-color-print.js +0 -7
- package/dist/client/endpoints/multi-color-print.js.map +0 -1
- package/dist/client/endpoints/multi-image-to-3d.d.ts +0 -5
- package/dist/client/endpoints/multi-image-to-3d.d.ts.map +0 -1
- package/dist/client/endpoints/multi-image-to-3d.js +0 -7
- package/dist/client/endpoints/multi-image-to-3d.js.map +0 -1
- package/dist/client/endpoints/remesh.d.ts +0 -5
- package/dist/client/endpoints/remesh.d.ts.map +0 -1
- package/dist/client/endpoints/remesh.js +0 -7
- package/dist/client/endpoints/remesh.js.map +0 -1
- package/dist/client/endpoints/repair-printability.d.ts +0 -5
- package/dist/client/endpoints/repair-printability.d.ts.map +0 -1
- package/dist/client/endpoints/repair-printability.js +0 -7
- package/dist/client/endpoints/repair-printability.js.map +0 -1
- package/dist/client/endpoints/resize.d.ts +0 -5
- package/dist/client/endpoints/resize.d.ts.map +0 -1
- package/dist/client/endpoints/resize.js +0 -7
- package/dist/client/endpoints/resize.js.map +0 -1
- package/dist/client/endpoints/retexture.d.ts +0 -5
- package/dist/client/endpoints/retexture.d.ts.map +0 -1
- package/dist/client/endpoints/retexture.js +0 -7
- package/dist/client/endpoints/retexture.js.map +0 -1
- package/dist/client/endpoints/rigging.d.ts +0 -6
- package/dist/client/endpoints/rigging.d.ts.map +0 -1
- package/dist/client/endpoints/rigging.js +0 -8
- package/dist/client/endpoints/rigging.js.map +0 -1
- package/dist/client/endpoints/text-to-3d.d.ts +0 -6
- package/dist/client/endpoints/text-to-3d.d.ts.map +0 -1
- package/dist/client/endpoints/text-to-3d.js +0 -8
- package/dist/client/endpoints/text-to-3d.js.map +0 -1
- package/dist/client/endpoints/text-to-image.d.ts +0 -5
- package/dist/client/endpoints/text-to-image.d.ts.map +0 -1
- package/dist/client/endpoints/text-to-image.js +0 -7
- package/dist/client/endpoints/text-to-image.js.map +0 -1
- package/dist/client/endpoints/text-to-motion.d.ts +0 -6
- package/dist/client/endpoints/text-to-motion.d.ts.map +0 -1
- package/dist/client/endpoints/text-to-motion.js +0 -8
- package/dist/client/endpoints/text-to-motion.js.map +0 -1
|
@@ -1,24 +1,64 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Media inputs: turn what the user typed into what the API accepts.
|
|
3
3
|
*
|
|
4
|
-
* Accepted
|
|
5
|
-
* - http(s) URLs — preflighted with
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Accepted for every declared media field (see resource-registry mediaFields):
|
|
5
|
+
* - http(s) URLs — preflighted with an unauthenticated HEAD (GET fallback,
|
|
6
|
+
* aborted right after the headers) so unreachable sources fail before a
|
|
7
|
+
* billable POST. The API credential is never attached to a preflight.
|
|
8
|
+
* - data: URIs — validated (base64, sane MIME, size cap) and passed through.
|
|
9
|
+
* - Local file paths (absolute or relative to cwd) — must be regular files
|
|
10
|
+
* under the size cap and of an accepted format; read, MIME-sniffed and
|
|
11
|
+
* inlined as data URIs.
|
|
8
12
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
13
|
+
* Normalisation runs on the *final merged payload* (defaults < --data <
|
|
14
|
+
* flags), so a path inside `--data '{"texture_image_url":"./tex.png"}'` is
|
|
15
|
+
* handled exactly like the typed flag. Only fields the resource declares are
|
|
16
|
+
* touched — no string that merely looks like a path is ever read.
|
|
11
17
|
*/
|
|
12
|
-
|
|
18
|
+
import type { MediaField } from "../client/resource-registry.js";
|
|
19
|
+
export declare const DEFAULT_MEDIA_LIMITS: {
|
|
20
|
+
/** 50 MiB — an engineering default, not a Meshy product limit. */
|
|
21
|
+
readonly maxFileBytes: number;
|
|
22
|
+
readonly preflightTimeoutMs: 10000;
|
|
23
|
+
};
|
|
24
|
+
export type MediaLimits = {
|
|
25
|
+
maxFileBytes: number;
|
|
26
|
+
preflightTimeoutMs: number;
|
|
27
|
+
};
|
|
28
|
+
export interface NormalizeOptions {
|
|
29
|
+
cwd?: string;
|
|
30
|
+
limits?: Partial<MediaLimits>;
|
|
31
|
+
fetchImpl?: typeof fetch;
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
}
|
|
34
|
+
export interface NormalizedMedia {
|
|
35
|
+
field: string;
|
|
36
|
+
index: number | null;
|
|
37
|
+
source: "url" | "data-uri" | "local-file";
|
|
38
|
+
mime: string | null;
|
|
39
|
+
bytes: number | null;
|
|
40
|
+
}
|
|
41
|
+
/** camelCase option names that hold image inputs (legacy flag-level API). */
|
|
13
42
|
export declare const IMAGE_FIELDS: {
|
|
14
|
-
scalar: readonly ["imageUrl", "imageStyleUrl"];
|
|
43
|
+
scalar: readonly ["imageUrl", "imageStyleUrl", "textureImageUrl"];
|
|
15
44
|
list: readonly ["imageUrls", "referenceImageUrls", "multiviewImageUrls"];
|
|
16
45
|
};
|
|
17
|
-
/** camelCase option names that hold 3D model inputs. */
|
|
46
|
+
/** camelCase option names that hold 3D model inputs (legacy flag-level API). */
|
|
18
47
|
export declare const MODEL_FIELDS: {
|
|
19
48
|
scalar: readonly ["modelUrl"];
|
|
20
49
|
list: readonly [];
|
|
21
50
|
};
|
|
22
|
-
export declare function resolveImageFields(opts: Record<string, unknown
|
|
23
|
-
export declare function resolveModelFields(opts: Record<string, unknown
|
|
51
|
+
export declare function resolveImageFields(opts: Record<string, unknown>, o?: NormalizeOptions): Promise<void>;
|
|
52
|
+
export declare function resolveModelFields(opts: Record<string, unknown>, o?: NormalizeOptions): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Normalise every declared media field of a final payload in place-free
|
|
55
|
+
* fashion (a new object is returned). Non-string values are left untouched
|
|
56
|
+
* and reported by the endpoint schema instead.
|
|
57
|
+
*/
|
|
58
|
+
export declare function normalizeMediaPayload(payload: Record<string, unknown>, fields: readonly MediaField[], o?: NormalizeOptions): Promise<{
|
|
59
|
+
payload: Record<string, unknown>;
|
|
60
|
+
media: NormalizedMedia[];
|
|
61
|
+
}>;
|
|
62
|
+
export declare function detectImageMime(buffer: Buffer, path: string): string;
|
|
63
|
+
export declare function detectModelMime(buffer: Buffer, path: string): string;
|
|
24
64
|
//# sourceMappingURL=file-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,gCAAgC,CAAC;AAK5E,eAAO,MAAM,oBAAoB;IAC/B,kEAAkE;aAClE,YAAY;aACZ,kBAAkB,EAAE,KAAM;CAClB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,YAAY,CAAC;IAC1C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,6EAA6E;AAC7E,eAAO,MAAM,YAAY;IACvB,MAAM,YACJ,UAAU,EACV,eAAe,EACf,iBAAiB;IAEnB,IAAI,YACF,WAAW,EACX,oBAAoB,EACpB,oBAAoB;CAEvB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,YAAY;IACvB,MAAM,YAAG,UAAU;IACnB,IAAI;CACL,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/G;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/G;AAoCD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,CAAC,GAAE,gBAAqB,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC,CA4BzE;AAuJD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA0BpE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BpE"}
|
|
@@ -1,23 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Media inputs: turn what the user typed into what the API accepts.
|
|
3
3
|
*
|
|
4
|
-
* Accepted
|
|
5
|
-
* - http(s) URLs — preflighted with
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Accepted for every declared media field (see resource-registry mediaFields):
|
|
5
|
+
* - http(s) URLs — preflighted with an unauthenticated HEAD (GET fallback,
|
|
6
|
+
* aborted right after the headers) so unreachable sources fail before a
|
|
7
|
+
* billable POST. The API credential is never attached to a preflight.
|
|
8
|
+
* - data: URIs — validated (base64, sane MIME, size cap) and passed through.
|
|
9
|
+
* - Local file paths (absolute or relative to cwd) — must be regular files
|
|
10
|
+
* under the size cap and of an accepted format; read, MIME-sniffed and
|
|
11
|
+
* inlined as data URIs.
|
|
8
12
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
13
|
+
* Normalisation runs on the *final merged payload* (defaults < --data <
|
|
14
|
+
* flags), so a path inside `--data '{"texture_image_url":"./tex.png"}'` is
|
|
15
|
+
* handled exactly like the typed flag. Only fields the resource declares are
|
|
16
|
+
* touched — no string that merely looks like a path is ever read.
|
|
11
17
|
*/
|
|
12
18
|
import { readFileSync, statSync } from "node:fs";
|
|
13
19
|
import { extname, isAbsolute, resolve as resolvePath } from "node:path";
|
|
14
20
|
import { UsageError } from "./errors.js";
|
|
15
21
|
import { logger } from "./logger.js";
|
|
16
|
-
|
|
22
|
+
import { USER_AGENT } from "./user-agent.js";
|
|
23
|
+
export const DEFAULT_MEDIA_LIMITS = {
|
|
24
|
+
/** 50 MiB — an engineering default, not a Meshy product limit. */
|
|
25
|
+
maxFileBytes: 50 * 1024 * 1024,
|
|
26
|
+
preflightTimeoutMs: 10_000,
|
|
27
|
+
};
|
|
28
|
+
/** camelCase option names that hold image inputs (legacy flag-level API). */
|
|
17
29
|
export const IMAGE_FIELDS = {
|
|
18
30
|
scalar: [
|
|
19
31
|
"imageUrl", // image-to-3d
|
|
20
32
|
"imageStyleUrl", // retexture
|
|
33
|
+
"textureImageUrl", // text-to-3d refine / rigging
|
|
21
34
|
],
|
|
22
35
|
list: [
|
|
23
36
|
"imageUrls", // multi-image-to-3d
|
|
@@ -25,22 +38,22 @@ export const IMAGE_FIELDS = {
|
|
|
25
38
|
"multiviewImageUrls", // retexture
|
|
26
39
|
],
|
|
27
40
|
};
|
|
28
|
-
/** camelCase option names that hold 3D model inputs. */
|
|
41
|
+
/** camelCase option names that hold 3D model inputs (legacy flag-level API). */
|
|
29
42
|
export const MODEL_FIELDS = {
|
|
30
|
-
scalar: ["modelUrl"], // remesh, retexture, rigging
|
|
43
|
+
scalar: ["modelUrl"], // remesh, retexture, rigging, uv-unwrap …
|
|
31
44
|
list: [],
|
|
32
45
|
};
|
|
33
|
-
export async function resolveImageFields(opts) {
|
|
34
|
-
await resolveGroup(opts, IMAGE_FIELDS,
|
|
46
|
+
export async function resolveImageFields(opts, o = {}) {
|
|
47
|
+
await resolveGroup(opts, IMAGE_FIELDS, "image", o);
|
|
35
48
|
}
|
|
36
|
-
export async function resolveModelFields(opts) {
|
|
37
|
-
await resolveGroup(opts, MODEL_FIELDS,
|
|
49
|
+
export async function resolveModelFields(opts, o = {}) {
|
|
50
|
+
await resolveGroup(opts, MODEL_FIELDS, "model", o);
|
|
38
51
|
}
|
|
39
|
-
async function resolveGroup(opts, fields,
|
|
52
|
+
async function resolveGroup(opts, fields, kind, o) {
|
|
40
53
|
for (const key of fields.scalar) {
|
|
41
54
|
const v = opts[key];
|
|
42
55
|
if (typeof v === "string" && v) {
|
|
43
|
-
opts[key] = await resolveOne(v, `--${toFlag(key)}`,
|
|
56
|
+
opts[key] = (await resolveOne(v, `--${toFlag(key)}`, kind, undefined, o)).value;
|
|
44
57
|
}
|
|
45
58
|
}
|
|
46
59
|
for (const key of fields.list) {
|
|
@@ -49,7 +62,7 @@ async function resolveGroup(opts, fields, detect, kind) {
|
|
|
49
62
|
const resolved = [];
|
|
50
63
|
for (const entry of v) {
|
|
51
64
|
if (typeof entry === "string" && entry) {
|
|
52
|
-
resolved.push(await resolveOne(entry, `--${toFlag(key)}`,
|
|
65
|
+
resolved.push((await resolveOne(entry, `--${toFlag(key)}`, kind, undefined, o)).value);
|
|
53
66
|
}
|
|
54
67
|
}
|
|
55
68
|
opts[key] = resolved;
|
|
@@ -59,28 +72,118 @@ async function resolveGroup(opts, fields, detect, kind) {
|
|
|
59
72
|
function toFlag(camel) {
|
|
60
73
|
return camel.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
61
74
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
function flagForField(path) {
|
|
76
|
+
return `--${path.replace(/_/g, "-")}`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Normalise every declared media field of a final payload in place-free
|
|
80
|
+
* fashion (a new object is returned). Non-string values are left untouched
|
|
81
|
+
* and reported by the endpoint schema instead.
|
|
82
|
+
*/
|
|
83
|
+
export async function normalizeMediaPayload(payload, fields, o = {}) {
|
|
84
|
+
const out = { ...payload };
|
|
85
|
+
const media = [];
|
|
86
|
+
for (const field of fields) {
|
|
87
|
+
const value = out[field.path];
|
|
88
|
+
if (value === undefined || value === null)
|
|
89
|
+
continue;
|
|
90
|
+
const label = flagForField(field.path);
|
|
91
|
+
if (field.many) {
|
|
92
|
+
if (!Array.isArray(value))
|
|
93
|
+
continue;
|
|
94
|
+
const resolved = [];
|
|
95
|
+
for (let i = 0; i < value.length; i++) {
|
|
96
|
+
const entry = value[i];
|
|
97
|
+
if (typeof entry !== "string" || !entry) {
|
|
98
|
+
resolved.push(entry);
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const r = await resolveOne(entry, `${label}[${i}]`, field.kind, field.formats, o);
|
|
102
|
+
resolved.push(r.value);
|
|
103
|
+
media.push({ field: field.path, index: i, source: r.source, mime: r.mime, bytes: r.bytes });
|
|
104
|
+
}
|
|
105
|
+
out[field.path] = resolved;
|
|
106
|
+
}
|
|
107
|
+
else if (typeof value === "string" && value) {
|
|
108
|
+
const r = await resolveOne(value, label, field.kind, field.formats, o);
|
|
109
|
+
out[field.path] = r.value;
|
|
110
|
+
media.push({ field: field.path, index: null, source: r.source, mime: r.mime, bytes: r.bytes });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return { payload: out, media };
|
|
114
|
+
}
|
|
115
|
+
async function resolveOne(input, flagLabel, kind, formats, o) {
|
|
116
|
+
const limits = { ...DEFAULT_MEDIA_LIMITS, ...(o.limits ?? {}) };
|
|
117
|
+
if (/^data:/i.test(input)) {
|
|
118
|
+
return validateDataUri(input, flagLabel, kind, formats, limits);
|
|
65
119
|
}
|
|
66
120
|
if (/^https?:\/\//i.test(input)) {
|
|
67
|
-
await preflightUrl(input, flagLabel);
|
|
68
|
-
return input;
|
|
121
|
+
await preflightUrl(input, flagLabel, limits, o);
|
|
122
|
+
return { value: input, source: "url", mime: null, bytes: null };
|
|
123
|
+
}
|
|
124
|
+
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(input)) {
|
|
125
|
+
throw new UsageError(`${flagLabel}: only http(s) URLs, data: URIs and local file paths are accepted (got ${input.split(":")[0]}: URL)`);
|
|
126
|
+
}
|
|
127
|
+
return loadLocalFile(input, flagLabel, kind, formats, limits, o.cwd ?? process.cwd());
|
|
128
|
+
}
|
|
129
|
+
const DATA_URI_RE = /^data:([a-z0-9!#$&^_.+-]+\/[a-z0-9!#$&^_.+-]+)((?:;[a-z0-9-]+=[^;,]*)*)(;base64)?,(.*)$/is;
|
|
130
|
+
function validateDataUri(input, flagLabel, kind, formats, limits) {
|
|
131
|
+
const m = DATA_URI_RE.exec(input);
|
|
132
|
+
if (!m)
|
|
133
|
+
throw new UsageError(`${flagLabel}: malformed data: URI (expected data:<mime>;base64,<payload>)`);
|
|
134
|
+
const mime = m[1].toLowerCase();
|
|
135
|
+
const isBase64 = Boolean(m[3]);
|
|
136
|
+
const body = m[4] ?? "";
|
|
137
|
+
if (!isBase64)
|
|
138
|
+
throw new UsageError(`${flagLabel}: data: URI must be base64-encoded`);
|
|
139
|
+
if (!/^[A-Za-z0-9+/=\s]*$/.test(body))
|
|
140
|
+
throw new UsageError(`${flagLabel}: data: URI payload is not valid base64`);
|
|
141
|
+
const bytes = Math.floor((body.replace(/\s+/g, "").length * 3) / 4);
|
|
142
|
+
if (bytes > limits.maxFileBytes) {
|
|
143
|
+
throw new UsageError(`${flagLabel}: inline data is ${bytes} bytes, above the ${limits.maxFileBytes}-byte limit`);
|
|
69
144
|
}
|
|
70
|
-
|
|
145
|
+
if (kind === "image" && !mime.startsWith("image/")) {
|
|
146
|
+
throw new UsageError(`${flagLabel}: expected an image data: URI, got ${mime}`);
|
|
147
|
+
}
|
|
148
|
+
if (kind === "model" && !(mime.startsWith("model/") || mime === "application/octet-stream")) {
|
|
149
|
+
throw new UsageError(`${flagLabel}: expected a 3D-model data: URI (model/* or application/octet-stream), got ${mime}`);
|
|
150
|
+
}
|
|
151
|
+
if (formats && formats.length > 0) {
|
|
152
|
+
const ext = extForMime(mime);
|
|
153
|
+
if (!ext || !formats.includes(ext)) {
|
|
154
|
+
throw new UsageError(`${flagLabel}: this field accepts ${formats.join("/")} only (data: URI is ${mime})`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return { value: input, source: "data-uri", mime, bytes };
|
|
71
158
|
}
|
|
72
|
-
async function preflightUrl(url, flagLabel) {
|
|
159
|
+
async function preflightUrl(url, flagLabel, limits, o) {
|
|
160
|
+
let parsed;
|
|
161
|
+
try {
|
|
162
|
+
parsed = new URL(url);
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
throw new UsageError(`${flagLabel}: invalid URL ${url}`);
|
|
166
|
+
}
|
|
167
|
+
if (parsed.username || parsed.password)
|
|
168
|
+
throw new UsageError(`${flagLabel}: URLs with embedded credentials are not accepted`);
|
|
169
|
+
const fetchImpl = o.fetchImpl ?? globalThis.fetch;
|
|
170
|
+
const headers = { "User-Agent": USER_AGENT };
|
|
171
|
+
const timeout = AbortSignal.timeout(limits.preflightTimeoutMs);
|
|
172
|
+
const signal = o.signal ? AbortSignal.any([timeout, o.signal]) : timeout;
|
|
73
173
|
let resp;
|
|
74
174
|
try {
|
|
75
|
-
resp = await
|
|
175
|
+
resp = await fetchImpl(url, { method: "HEAD", redirect: "follow", headers, signal });
|
|
76
176
|
if (resp.status === 405 || resp.status === 501) {
|
|
77
177
|
const controller = new AbortController();
|
|
78
|
-
|
|
178
|
+
const getSignal = AbortSignal.any([controller.signal, signal]);
|
|
179
|
+
resp = await fetchImpl(url, { method: "GET", redirect: "follow", headers, signal: getSignal });
|
|
79
180
|
controller.abort();
|
|
80
181
|
}
|
|
81
182
|
}
|
|
82
183
|
catch (err) {
|
|
83
184
|
const msg = err instanceof Error ? err.message : String(err);
|
|
185
|
+
if (timeout.aborted)
|
|
186
|
+
throw new UsageError(`${flagLabel}: preflight of ${url} timed out after ${limits.preflightTimeoutMs}ms`);
|
|
84
187
|
throw new UsageError(`${flagLabel}: cannot reach ${url} (${msg})`);
|
|
85
188
|
}
|
|
86
189
|
if (!resp.ok) {
|
|
@@ -88,8 +191,8 @@ async function preflightUrl(url, flagLabel) {
|
|
|
88
191
|
}
|
|
89
192
|
logger.debug(`${flagLabel} preflight OK: ${url} (${resp.status})`);
|
|
90
193
|
}
|
|
91
|
-
function loadLocalFile(input, flagLabel,
|
|
92
|
-
const absPath = isAbsolute(input) ? input : resolvePath(
|
|
194
|
+
function loadLocalFile(input, flagLabel, kind, formats, limits, cwd) {
|
|
195
|
+
const absPath = isAbsolute(input) ? input : resolvePath(cwd, input);
|
|
93
196
|
let stat;
|
|
94
197
|
try {
|
|
95
198
|
stat = statSync(absPath);
|
|
@@ -100,15 +203,41 @@ function loadLocalFile(input, flagLabel, detect, kind) {
|
|
|
100
203
|
if (!stat.isFile()) {
|
|
101
204
|
throw new UsageError(`${flagLabel}: not a regular file: ${input}`);
|
|
102
205
|
}
|
|
206
|
+
if (stat.size > limits.maxFileBytes) {
|
|
207
|
+
throw new UsageError(`${flagLabel}: ${input} is ${stat.size} bytes, above the ${limits.maxFileBytes}-byte limit`);
|
|
208
|
+
}
|
|
103
209
|
const buffer = readFileSync(absPath);
|
|
104
|
-
const mime =
|
|
210
|
+
const mime = kind === "image" ? detectImageMime(buffer, absPath) : detectModelMime(buffer, absPath);
|
|
105
211
|
if (!mime) {
|
|
106
|
-
throw new UsageError(`${flagLabel}: could not detect ${kind} MIME type for ${absPath}`);
|
|
212
|
+
throw new UsageError(`${flagLabel}: could not detect ${kind === "image" ? "image" : "3d model"} MIME type for ${absPath}`);
|
|
213
|
+
}
|
|
214
|
+
if (formats && formats.length > 0) {
|
|
215
|
+
const ext = extForMime(mime) ?? extname(absPath).slice(1).toLowerCase();
|
|
216
|
+
if (!formats.includes(ext)) {
|
|
217
|
+
throw new UsageError(`${flagLabel}: this field accepts ${formats.join("/")} only (got ${ext || "unknown"})`);
|
|
218
|
+
}
|
|
107
219
|
}
|
|
108
220
|
logger.debug(`${flagLabel} inlined ${absPath} as ${mime} data URI (${buffer.length} bytes)`);
|
|
109
|
-
return `data:${mime};base64,${buffer.toString("base64")}
|
|
221
|
+
return { value: `data:${mime};base64,${buffer.toString("base64")}`, source: "local-file", mime, bytes: buffer.length };
|
|
222
|
+
}
|
|
223
|
+
function extForMime(mime) {
|
|
224
|
+
const map = {
|
|
225
|
+
"image/jpeg": "jpg",
|
|
226
|
+
"image/png": "png",
|
|
227
|
+
"image/webp": "webp",
|
|
228
|
+
"image/gif": "gif",
|
|
229
|
+
"image/bmp": "bmp",
|
|
230
|
+
"model/gltf-binary": "glb",
|
|
231
|
+
"model/gltf+json": "gltf",
|
|
232
|
+
"model/obj": "obj",
|
|
233
|
+
"model/stl": "stl",
|
|
234
|
+
"model/vnd.usdz+zip": "usdz",
|
|
235
|
+
"model/3mf": "3mf",
|
|
236
|
+
"application/octet-stream": "fbx",
|
|
237
|
+
};
|
|
238
|
+
return map[mime] ?? null;
|
|
110
239
|
}
|
|
111
|
-
function detectImageMime(buffer, path) {
|
|
240
|
+
export function detectImageMime(buffer, path) {
|
|
112
241
|
if (buffer.length >= 12) {
|
|
113
242
|
if (buffer[0] === 0xff && buffer[1] === 0xd8 && buffer[2] === 0xff)
|
|
114
243
|
return "image/jpeg";
|
|
@@ -136,7 +265,7 @@ function detectImageMime(buffer, path) {
|
|
|
136
265
|
};
|
|
137
266
|
return map[ext] ?? "";
|
|
138
267
|
}
|
|
139
|
-
function detectModelMime(buffer, path) {
|
|
268
|
+
export function detectModelMime(buffer, path) {
|
|
140
269
|
// GLB: magic "glTF" at offset 0
|
|
141
270
|
if (buffer.length >= 4 &&
|
|
142
271
|
buffer[0] === 0x67 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../src/internal/file-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
* regardless of position in argv (e.g. `meshy-cli balance --format pretty`
|
|
4
4
|
* as well as `meshy-cli --format pretty balance`).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Commander parses the root command's known options wherever they appear in
|
|
7
|
+
* argv (positional options are disabled), so a flag declared here is consumed
|
|
8
|
+
* by the root even when typed after the subcommand. The hidden mirrors on
|
|
9
|
+
* every descendant keep `optsWithGlobals()` uniform and make the flag visible
|
|
10
|
+
* to `<sub> --help` walkers.
|
|
10
11
|
*/
|
|
11
12
|
import { Command } from "commander";
|
|
12
13
|
/** Register the visible, default-carrying versions on the root command. */
|
|
13
14
|
export declare function registerRootGlobalOptions(root: Command): void;
|
|
14
15
|
/** Mirror the same flags onto every descendant, hidden from help. */
|
|
15
16
|
export declare function mirrorGlobalOptionsToDescendants(root: Command): void;
|
|
17
|
+
export declare function walkCommands(cmd: Command, visit: (c: Command) => void): void;
|
|
16
18
|
//# sourceMappingURL=global-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-options.d.ts","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"global-options.d.ts","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAqD5C,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAO7D;AAED,qEAAqE;AACrE,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CASpE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAE5E"}
|
|
@@ -3,19 +3,31 @@
|
|
|
3
3
|
* regardless of position in argv (e.g. `meshy-cli balance --format pretty`
|
|
4
4
|
* as well as `meshy-cli --format pretty balance`).
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Commander parses the root command's known options wherever they appear in
|
|
7
|
+
* argv (positional options are disabled), so a flag declared here is consumed
|
|
8
|
+
* by the root even when typed after the subcommand. The hidden mirrors on
|
|
9
|
+
* every descendant keep `optsWithGlobals()` uniform and make the flag visible
|
|
10
|
+
* to `<sub> --help` walkers.
|
|
10
11
|
*/
|
|
11
12
|
import { Option } from "commander";
|
|
12
13
|
const FACTORIES = [
|
|
13
14
|
() => new Option("--api-key <key>", "Meshy API key (overrides MESHY_API_KEY)"),
|
|
14
15
|
() => new Option("--base-url-v1 <url>", "override v1 base URL"),
|
|
15
16
|
() => new Option("--base-url-v2 <url>", "override v2 base URL"),
|
|
17
|
+
() => new Option("--base-url-creative-lab <url>", "override the Creative Lab base URL (default: <v1 origin>/openapi/creative-lab)"),
|
|
16
18
|
() => new Option("--format <fmt>", "output format").choices(["json", "pretty", "ndjson"]),
|
|
17
19
|
() => new Option("--json", "output as JSON (alias for --format json)"),
|
|
20
|
+
() => new Option("--output-schema <schema>", "stdout data model: legacy (0.2.0-compatible, default for existing commands) | v1 (stable envelope; default for new commands)").choices(["legacy", "v1"]),
|
|
18
21
|
() => new Option("-o, --output <path>", "download artifacts + write meta.json; switches stdout to a status report"),
|
|
22
|
+
() => new Option("--api-key-file <path>", "read MESHY_API_KEY from this dotenv-style file (only that key is read; parsed, never executed; no .env auto-discovery)"),
|
|
23
|
+
// Node.js itself scans the whole argv for `--env-file` — even after the
|
|
24
|
+
// script name — loads the entire file into process.env (NODE_OPTIONS
|
|
25
|
+
// included) and exits 9 when it is missing. The flag therefore cannot be
|
|
26
|
+
// offered safely; it is registered only so a habitual `--env-file` gets an
|
|
27
|
+
// explanation instead of a silent, Node-side environment load.
|
|
28
|
+
() => new Option("--env-file <path>", "(unsupported) use --api-key-file").hideHelp(),
|
|
29
|
+
() => new Option("--workspace <dir>", "restrict every file written by local tools and downloads to this directory"),
|
|
30
|
+
() => new Option("--no-update-check", "never query npm for a newer version in this process"),
|
|
19
31
|
() => new Option("-v, --verbose", "debug logging"),
|
|
20
32
|
() => new Option("--log-level <level>", "log level").choices([
|
|
21
33
|
"debug",
|
|
@@ -49,6 +61,9 @@ export function mirrorGlobalOptionsToDescendants(root) {
|
|
|
49
61
|
}
|
|
50
62
|
});
|
|
51
63
|
}
|
|
64
|
+
export function walkCommands(cmd, visit) {
|
|
65
|
+
walk(cmd, visit);
|
|
66
|
+
}
|
|
52
67
|
function walk(cmd, visit) {
|
|
53
68
|
visit(cmd);
|
|
54
69
|
for (const sub of cmd.commands)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-options.js","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"global-options.js","sourceRoot":"","sources":["../../src/internal/global-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Face-count gate — the verdict logic behind `meshy inspect faces`.
|
|
3
|
+
*
|
|
4
|
+
* The legacy Skill's check-faces script defaulted a missing face_count to 0 and
|
|
5
|
+
* printed a passing line for a model it never measured. Nothing here fabricates
|
|
6
|
+
* a number: only a finite, non-negative integer that the task actually carries
|
|
7
|
+
* is "known"; everything else is `unknown`, which the command turns into exit
|
|
8
|
+
* 13 rather than a pass (D-009). Strings are never parsed into numbers — a
|
|
9
|
+
* `"1234"` that the server never meant as a count must not become one here.
|
|
10
|
+
*
|
|
11
|
+
* The gate answers exactly one question — is face_count <= the caller's limit?
|
|
12
|
+
* It knows nothing about rigging eligibility (mesh shape, textures, humanoid
|
|
13
|
+
* proportions), so nothing in this module says "rig-ready". When it fails it
|
|
14
|
+
* can describe a remesh that would help; it never runs one.
|
|
15
|
+
*/
|
|
16
|
+
export type FaceVerdictKind = "pass" | "fail" | "unknown";
|
|
17
|
+
export interface FaceVerdict {
|
|
18
|
+
/** The measured value when known, null for `unknown` (never a substituted 0). */
|
|
19
|
+
face_count: number | null;
|
|
20
|
+
limit: number;
|
|
21
|
+
comparison: "lte";
|
|
22
|
+
verdict: FaceVerdictKind;
|
|
23
|
+
/** Why the verdict is `fail` or `unknown`; null for `pass`. */
|
|
24
|
+
reason: string | null;
|
|
25
|
+
}
|
|
26
|
+
export interface FaceCountSource {
|
|
27
|
+
/** The raw value exactly as the task carries it (undefined when absent). */
|
|
28
|
+
value: unknown;
|
|
29
|
+
/** Where the value came from; `none` when the task has no top-level face_count key. */
|
|
30
|
+
source: "face_count" | "none";
|
|
31
|
+
status: string | null;
|
|
32
|
+
}
|
|
33
|
+
export interface RemeshSuggestion {
|
|
34
|
+
description: string;
|
|
35
|
+
/** A command the caller may run; null when it cannot be built safely. */
|
|
36
|
+
command: string | null;
|
|
37
|
+
/** Always false: inspect never submits a billable task. */
|
|
38
|
+
executed: false;
|
|
39
|
+
}
|
|
40
|
+
/** The remesh endpoint's accepted target_polycount range (see cmd/remesh.ts). */
|
|
41
|
+
export declare const REMESH_POLYCOUNT_RANGE: {
|
|
42
|
+
readonly min: 100;
|
|
43
|
+
readonly max: 300000;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Judge a raw face_count against `limit`. Only a finite, non-negative integer is
|
|
47
|
+
* a known count; `<= limit` passes, anything larger fails, everything else is
|
|
48
|
+
* unknown with a reason that names what was wrong.
|
|
49
|
+
*/
|
|
50
|
+
export declare function judgeFaceCount(raw: unknown, limit: number): FaceVerdict;
|
|
51
|
+
/**
|
|
52
|
+
* Read the top-level `face_count` of a task object. Nothing is derived from
|
|
53
|
+
* other fields and nothing is defaulted: an absent key is reported as absent.
|
|
54
|
+
*/
|
|
55
|
+
export declare function faceCountFromTask(task: Record<string, unknown>): FaceCountSource;
|
|
56
|
+
/**
|
|
57
|
+
* Judge a whole task: the top-level face_count against `limit`. A task that
|
|
58
|
+
* has not finished and carries no count is unknown *because it is still
|
|
59
|
+
* running* — the reason says so instead of implying the field will never come.
|
|
60
|
+
*/
|
|
61
|
+
export declare function judgeTask(task: Record<string, unknown>, limit: number): FaceVerdict;
|
|
62
|
+
/**
|
|
63
|
+
* Describe — never execute — the remesh that would bring a model under `limit`.
|
|
64
|
+
* The target is clamped to the range the remesh endpoint accepts.
|
|
65
|
+
*/
|
|
66
|
+
export declare function remeshSuggestion(taskId: string | null, limit: number): RemeshSuggestion;
|
|
67
|
+
//# sourceMappingURL=inspect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/internal/inspect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,iFAAiF;IACjF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,KAAK,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;IACzB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,KAAK,EAAE,OAAO,CAAC;IACf,uFAAuF;IACvF,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,iFAAiF;AACjF,eAAO,MAAM,sBAAsB;aAAK,GAAG,EAAE,GAAG;aAAE,GAAG,EAAE,MAAO;CAAW,CAAC;AAiB1E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAoBvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAMhF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAOnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAiBvF"}
|