@worldlabsai/client 0.3.0 → 0.5.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 (42) hide show
  1. package/README.md +18 -8
  2. package/dist/core/assets.d.ts +4 -0
  3. package/dist/core/assets.d.ts.map +1 -1
  4. package/dist/core/index.d.ts +1 -0
  5. package/dist/core/index.d.ts.map +1 -1
  6. package/dist/core/index.js +1 -0
  7. package/dist/core/index.js.map +1 -1
  8. package/dist/core/network-error.d.ts +6 -0
  9. package/dist/core/network-error.d.ts.map +1 -0
  10. package/dist/core/network-error.js +8 -0
  11. package/dist/core/network-error.js.map +1 -0
  12. package/dist/core/operations.d.ts +3 -0
  13. package/dist/core/operations.d.ts.map +1 -1
  14. package/dist/core/operations.js +5 -0
  15. package/dist/core/operations.js.map +1 -1
  16. package/dist/core/tasks.d.ts +6 -6
  17. package/dist/core/tasks.d.ts.map +1 -1
  18. package/dist/core/tasks.js +5 -5
  19. package/dist/core/tasks.js.map +1 -1
  20. package/dist/core/transport.d.ts +1 -1
  21. package/dist/core/transport.d.ts.map +1 -1
  22. package/dist/core/transport.js +44 -21
  23. package/dist/core/transport.js.map +1 -1
  24. package/dist/generated/developer-api.gen.d.ts +328 -78
  25. package/dist/generated/developer-api.gen.d.ts.map +1 -1
  26. package/dist/generated/tasks.gen.d.ts +30 -6
  27. package/dist/generated/tasks.gen.d.ts.map +1 -1
  28. package/dist/generated/tasks.gen.js +12 -0
  29. package/dist/generated/tasks.gen.js.map +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/core/index.ts +1 -0
  36. package/src/core/network-error.ts +8 -0
  37. package/src/core/operations.ts +6 -0
  38. package/src/core/tasks.ts +7 -7
  39. package/src/core/transport.ts +61 -24
  40. package/src/generated/developer-api.gen.ts +328 -78
  41. package/src/generated/tasks.gen.ts +16 -0
  42. package/src/index.ts +1 -0
@@ -106,6 +106,23 @@ export interface paths {
106
106
  patch?: never;
107
107
  trace?: never;
108
108
  };
109
+ "/api/v2/tasks:posedImages2Splats": {
110
+ parameters: {
111
+ query?: never;
112
+ header?: never;
113
+ path?: never;
114
+ cookie?: never;
115
+ };
116
+ get?: never;
117
+ put?: never;
118
+ /** Submit the posedImages2Splats task */
119
+ post: operations["submit_posedImages2Splats_api_v2_tasks_posedImages2Splats_post"];
120
+ delete?: never;
121
+ options?: never;
122
+ head?: never;
123
+ patch?: never;
124
+ trace?: never;
125
+ };
109
126
  "/api/v2/tasks:splats2Mesh": {
110
127
  parameters: {
111
128
  query?: never;
@@ -430,6 +447,11 @@ export interface components {
430
447
  * @description Already percent-encoded path for the asset. Append it unchanged to ``baseUrl`` before ``?`` and ``signedQuery``. This path does not grant access by itself. Null until the asset is ``READY`` or when unavailable; use ``assets/{asset}:createReadUrl`` as a fallback.
431
448
  */
432
449
  contentPath?: string | null;
450
+ /**
451
+ * Url
452
+ * @description Unsigned content URL for the asset, ``baseUrl + contentPath``. It does not grant access by itself: the web app's read-prefix cookie authorizes it, and an API client appends ``?`` and a read prefix's ``signedQuery`` or uses ``assets/{asset}:createReadUrl`` instead. Null whenever ``contentPath`` is.
453
+ */
454
+ url?: string | null;
433
455
  };
434
456
  /**
435
457
  * AssetCreate
@@ -486,7 +508,7 @@ export interface components {
486
508
  operation: string;
487
509
  /**
488
510
  * Task
489
- * @description The task that produced them, e.g. ``image2DraftSplats``.
511
+ * @description The task that produced them, e.g. ``atlasGenerate``.
490
512
  */
491
513
  task?: string | null;
492
514
  /** Assets */
@@ -602,20 +624,37 @@ export interface components {
602
624
  * @enum {string}
603
625
  */
604
626
  AssetState: "CREATED" | "UPLOADING" | "READY" | "DELETED";
627
+ /**
628
+ * AtlasChiselContextFrameAsset
629
+ * @description A context frame: its camera plus a depth, an image, or both.
630
+ */
631
+ AtlasChiselContextFrameAsset: {
632
+ /** @description Source image as a URL or inline asset, or null (depth-only). */
633
+ imageAsset?: components["schemas"]["TaskAsset"] | null;
634
+ /** @description Optional alpha mask as a URL or inline asset: an 8-bit grayscale PNG on the image grid whose pixel value / 255 is the alpha in [0, 1] (1 = kept, 0 = excluded). Null when the frame carries no mask. */
635
+ maskAsset?: components["schemas"]["TaskAsset"] | null;
636
+ /** @description Camera-to-world pose and intrinsics. */
637
+ camera: components["schemas"]["PinholeCamera"];
638
+ /**
639
+ * Depth
640
+ * @description Depth buffer aligned to the camera, with an optional mask; null for an image-only frame.
641
+ */
642
+ depth?: components["schemas"]["MaskedLogDepthBufferAsset"] | components["schemas"]["MaskedLinearDepthBufferAsset"] | null;
643
+ };
605
644
  /**
606
645
  * AtlasChiselModelParameters
607
- * @description Model-specific parameters forwarded to the atlasChisel servable.
646
+ * @description Sampling controls for atlasChisel.
608
647
  */
609
648
  AtlasChiselModelParameters: {
610
649
  /**
611
650
  * Seed
612
- * @description RNG seed forwarded to the servable when set.
651
+ * @description Random seed for image generation.
613
652
  * @default 42
614
653
  */
615
654
  seed?: number | null;
616
655
  /**
617
656
  * Numsteps
618
- * @description Diffusion step count. Unset uses the served model's own sampler.
657
+ * @description Number of denoising steps. Omit to use the model's default.
619
658
  */
620
659
  numSteps?: number | null;
621
660
  };
@@ -636,9 +675,16 @@ export interface components {
636
675
  purgeContentOnOperationCompletion?: boolean | null;
637
676
  /**
638
677
  * Contextframes
639
- * @description Posed depth frames, one per target camera and posed at it, in target order; each camera is 1280x720. Depth only: frames carry no imageAsset, maskAsset, or depth confidenceAsset. Leave empty to generate from the prompt alone.
678
+ * @description Posed frames, one per target camera and posed at it, in target order; each camera is 1280x720. Each frame carries a depth, an imageAsset (the view's known pixels), or both, and may carry a maskAsset (8-bit grayscale, white where the frame's image and depth are known). Send each of depth, imageAsset and maskAsset on every frame or on none: the model keeps the image where the mask is set and generates the rest, takes frames without masks as fully known, conditions on the depth alone for frames without an image, and for frames without depth keeps the image inside the mask and generates the geometry (the frames atlasMasked takes). A depth.maskAsset (8-bit grayscale on the depth grid, white where the depth is known), on every frame or on none, masks the depth apart from the image: the maskAsset then marks only the image and needs an imageAsset beside it. Both masks read as known above half intensity. Frames carry no depth confidenceAsset. Leave empty to generate from the prompt alone.
640
679
  */
641
- contextFrames?: components["schemas"]["PosedDepthAsset"][];
680
+ contextFrames?: components["schemas"]["AtlasChiselContextFrameAsset"][];
681
+ /**
682
+ * Sourceframes
683
+ * @description Posed RGB photographs of the scene, each an image and its camera in the targets' coordinate convention and scale. The generated views use them as visual references for materials, colors, and lighting. Any cameras and any resolution; each image is scaled to cover the output dimensions, then center-cropped onto 1280x720. Frames carry no maskAsset or depth. Request sizes must satisfy 3 * contextFrames.length + sourceFrames.length + targetCameras.length <= 128.
684
+ */
685
+ sourceFrames?: components["schemas"]["PosedRGBAsset"][];
686
+ /** @description Optional style-reference image that guides appearance; it supplies no camera or geometry. Not applied yet: the current model does not support style references, so frames generate without it. */
687
+ styleReferenceImageAsset?: components["schemas"]["TaskAsset"] | null;
642
688
  /**
643
689
  * Targetcameras
644
690
  * @description Pinhole cameras at 1280x720 for the views to generate, in output order, returned in `frames`. At most 32.
@@ -651,25 +697,25 @@ export interface components {
651
697
  prompt: string;
652
698
  /**
653
699
  * Enhanceprompt
654
- * @description Rewrite the prompt into the structured scene caption the model trained on before inference. Set false to send the prompt as is.
700
+ * @description Expand the prompt into a detailed scene description before generation. Set false to use your wording unchanged.
655
701
  * @default true
656
702
  */
657
703
  enhancePrompt?: boolean;
658
704
  /**
659
705
  * Voxelsize
660
- * @description Voxel side length in the normalized scene gauge (90th-percentile disparity is approximately 1). The recommended range is 0 to 0.4. Omit or set to 0 to keep the original depth conditioning.
706
+ * @description Side length of the cubes used to simplify depth geometry. Uses normalized scene units, not input distance units: the scene is rescaled so the 90th percentile of inverse depth is approximately 1. The recommended range is 0 to 0.4. Omit or set to 0 to keep the original geometry.
661
707
  */
662
708
  voxelSize?: number | null;
663
709
  /**
664
710
  * Voxelgridorientation
665
- * @description Frame the voxelization grid axes align to. 'world' (the default) axis-aligns voxels with the request's world coordinates, so world-axis-aligned faces (blockout walls) quantize flat; 'gauge' keeps the legacy grid aligned to the normalized scene gauge (the recentered mean camera pose). Ignored unless voxelSize is set.
711
+ * @description Grid orientation for simplifying depth geometry. 'world' (the default) aligns the grid with the request's world axes so walls aligned with those axes stay flat. 'gauge' aligns the grid with the average camera pose after recentering the scene. Ignored unless voxelSize is set.
666
712
  */
667
713
  voxelGridOrientation?: ("world" | "gauge") | null;
668
714
  /** @description Model-specific parameters for atlasChisel. */
669
715
  modelParameters?: components["schemas"]["AtlasChiselModelParameters"];
670
716
  /**
671
717
  * Returndepth
672
- * @description Return the generated frames as posed RGBD: they are reconstructed together so the depth lands in the request's own camera frame and scale, and every entry in `frames` then carries a `depth` buffer. The contextFrames' own depth is not reconstructed or returned. Needs at least two target cameras. Limitation: the depth scale is recovered from the target cameras' centres, so targets that share one centre (a pure-rotation rig) come back with a 0.0 or NaN scale and a success status.
718
+ * @description Return the generated frames as posed RGBD: they are reconstructed together so the depth lands in the request's own camera frame and scale, and every entry in `frames` then carries a `depth` buffer. The contextFrames' own depth is not reconstructed or returned. A source photograph joins the reconstruction as an anchor, and gets no depth back, only when its image is at the generated resolution and its camera's principal point is centered. Needs at least two target cameras. Limitation: the depth scale is recovered from the camera centers that joined, so targets that share one center (a pure-rotation rig) and no anchor come back with a 0.0 or NaN scale and a success status.
673
719
  * @default false
674
720
  */
675
721
  returnDepth?: boolean;
@@ -691,7 +737,7 @@ export interface components {
691
737
  promptUsed?: string | null;
692
738
  /**
693
739
  * Requestid
694
- * @description Meridian request id from servable runtime metadata.
740
+ * @description Generation request ID for troubleshooting.
695
741
  */
696
742
  requestId?: string | null;
697
743
  };
@@ -719,13 +765,11 @@ export interface components {
719
765
  } | null;
720
766
  /**
721
767
  * Done
722
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
768
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
723
769
  */
724
770
  done: boolean;
725
771
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
726
772
  error?: components["schemas"]["OperationError"] | null;
727
- /** @description ``AtlasChiselResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
728
- response?: components["schemas"]["AtlasChiselResponse"] | null;
729
773
  /**
730
774
  * Expiresatsecs
731
775
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -736,6 +780,8 @@ export interface components {
736
780
  * @description Unix seconds when the operation was accepted.
737
781
  */
738
782
  createdAtSecs?: number | null;
783
+ /** @description ``AtlasChiselResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
784
+ response?: components["schemas"]["AtlasChiselResponse"] | null;
739
785
  /**
740
786
  * Name
741
787
  * @description Full resource name for the operation.
@@ -748,18 +794,18 @@ export interface components {
748
794
  };
749
795
  /**
750
796
  * AtlasGenerateModelParameters
751
- * @description Model-specific parameters forwarded to the atlasGenerate servable.
797
+ * @description Sampling controls for atlasGenerate.
752
798
  */
753
799
  AtlasGenerateModelParameters: {
754
800
  /**
755
801
  * Seed
756
- * @description RNG seed forwarded to the servable when set.
802
+ * @description Random seed for image generation.
757
803
  * @default 42
758
804
  */
759
805
  seed?: number | null;
760
806
  /**
761
807
  * Numsteps
762
- * @description Diffusion step-count override.
808
+ * @description Number of denoising steps. Omit to use the model's default.
763
809
  */
764
810
  numSteps?: number | null;
765
811
  };
@@ -778,9 +824,15 @@ export interface components {
778
824
  * @description Purge this operation's outputs and the transient uploads it consumed one hour after it finishes. Omitted, the account's setting applies; true raises it for this operation; false is refused when the account already purges. Uploads in the library are never purged by an operation.
779
825
  */
780
826
  purgeContentOnOperationCompletion?: boolean | null;
827
+ /**
828
+ * Base64Outputs
829
+ * @description When a ?wait=true submission is answered inline, return each output file as base64 in that response rather than by assetId and url. This skips storing the files before the answer and the caller's download after it. Any other submission, and every later read of the operation, names the outputs by assetId and url.
830
+ * @default false
831
+ */
832
+ base64Outputs?: boolean;
781
833
  /**
782
834
  * Contextframes
783
- * @description Posed RGBD context views: each an image, its depth buffer, and its camera, all required. On the reference-context warp route the depth conditions the generation geometrically, so the generated views stay consistent with the provided scene; the hero base checkpoint conditions on the posed images only and does not consume the depth.
835
+ * @description Posed RGBD context views: each an image, its depth buffer, and its camera, all required. All context cameras must declare the same width and height. Context depth is required, but does not guide generation in every request. Requests with 32 or more targets generate from the context images and cameras without using their depth. Smaller requests can do the same when their combined context and target counts exceed the depth-guided model's capacity.
784
836
  */
785
837
  contextFrames: components["schemas"]["PosedRGBDAsset"][];
786
838
  /**
@@ -795,13 +847,13 @@ export interface components {
795
847
  prompt?: string | null;
796
848
  /**
797
849
  * Enhanceprompt
798
- * @description Enhance the prompt with the ViewGen preset before inference. With no prompt, the enhancer captions the context images.
850
+ * @description Expand the prompt into a scene description before generation. With no prompt, describe the context images. Set false to use your wording unchanged.
799
851
  * @default true
800
852
  */
801
853
  enhancePrompt?: boolean;
802
854
  /**
803
855
  * Returndepth
804
- * @description Return the generated frames as posed RGBD: they are reconstructed together with the context frames so the depth lands in the request's own camera frame and scale, and every entry in `frames` then carries a `depth` buffer. A context frame joins that reconstruction only when its image is at the generated resolution and its camera's principal point is centered. The scale is recovered from the camera centres that joined, so a request whose joined cameras all share one centre (a pure-rotation rig) is rejected.
856
+ * @description Return the generated frames as posed RGBD: they are reconstructed together with the context frames so the depth lands in the request's own camera frame and scale, and every entry in `frames` then carries a `depth` buffer. The scale is recovered from camera centres, so a request whose cameras all share one centre (a pure-rotation rig) is rejected. When generation uses only images and cameras (see contextFrames), or with more than 19 context frames, a context frame helps reconstruct depth only when its image has the same dimensions as the generated images and its camera's principal point is centered.
805
857
  * @default false
806
858
  */
807
859
  returnDepth?: boolean;
@@ -825,7 +877,7 @@ export interface components {
825
877
  promptUsed?: string | null;
826
878
  /**
827
879
  * Requestid
828
- * @description Meridian request id from servable runtime metadata.
880
+ * @description Generation request ID for troubleshooting.
829
881
  */
830
882
  requestId?: string | null;
831
883
  };
@@ -853,13 +905,11 @@ export interface components {
853
905
  } | null;
854
906
  /**
855
907
  * Done
856
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
908
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
857
909
  */
858
910
  done: boolean;
859
911
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
860
912
  error?: components["schemas"]["OperationError"] | null;
861
- /** @description ``AtlasGenerateResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
862
- response?: components["schemas"]["AtlasGenerateResponse"] | null;
863
913
  /**
864
914
  * Expiresatsecs
865
915
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -870,6 +920,8 @@ export interface components {
870
920
  * @description Unix seconds when the operation was accepted.
871
921
  */
872
922
  createdAtSecs?: number | null;
923
+ /** @description ``AtlasGenerateResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
924
+ response?: components["schemas"]["AtlasGenerateResponse"] | null;
873
925
  /**
874
926
  * Name
875
927
  * @description Full resource name for the operation.
@@ -882,12 +934,12 @@ export interface components {
882
934
  };
883
935
  /**
884
936
  * AtlasMaskedModelParameters
885
- * @description Model-specific parameters forwarded to the atlasMasked servable.
937
+ * @description Sampling controls for atlasMasked.
886
938
  */
887
939
  AtlasMaskedModelParameters: {
888
940
  /**
889
941
  * Seed
890
- * @description RNG seed forwarded to the servable when set.
942
+ * @description Random seed for image generation.
891
943
  * @default 42
892
944
  */
893
945
  seed?: number | null;
@@ -920,7 +972,7 @@ export interface components {
920
972
  contextFrames: components["schemas"]["PosedRGBAAsset"][];
921
973
  /**
922
974
  * Targetcameras
923
- * @description Pinhole cameras for the views to generate, one per context frame in the same order. Warning: the partial checkpoints condition target i on contextFrames[i]'s masked view and were trained with one context view per target, rendered from the target's own viewpoint. A count that differs from contextFrames, or a target off its frame's camera, is accepted but runs outside the training distribution and may generate degraded views.
975
+ * @description Pinhole cameras for the views to generate, one per context frame in the same order. For best results, targetCameras[i] should match the camera in contextFrames[i]. Different counts or cameras that do not match their context views are accepted, but may produce lower-quality results.
924
976
  */
925
977
  targetCameras: components["schemas"]["PinholeCamera"][];
926
978
  /**
@@ -960,7 +1012,7 @@ export interface components {
960
1012
  promptUsed?: string | null;
961
1013
  /**
962
1014
  * Requestid
963
- * @description Meridian request id from servable runtime metadata.
1015
+ * @description Generation request ID for troubleshooting.
964
1016
  */
965
1017
  requestId?: string | null;
966
1018
  };
@@ -988,13 +1040,11 @@ export interface components {
988
1040
  } | null;
989
1041
  /**
990
1042
  * Done
991
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
1043
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
992
1044
  */
993
1045
  done: boolean;
994
1046
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
995
1047
  error?: components["schemas"]["OperationError"] | null;
996
- /** @description ``AtlasMaskedResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
997
- response?: components["schemas"]["AtlasMaskedResponse"] | null;
998
1048
  /**
999
1049
  * Expiresatsecs
1000
1050
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -1005,6 +1055,8 @@ export interface components {
1005
1055
  * @description Unix seconds when the operation was accepted.
1006
1056
  */
1007
1057
  createdAtSecs?: number | null;
1058
+ /** @description ``AtlasMaskedResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
1059
+ response?: components["schemas"]["AtlasMaskedResponse"] | null;
1008
1060
  /**
1009
1061
  * Name
1010
1062
  * @description Full resource name for the operation.
@@ -1080,9 +1132,14 @@ export interface components {
1080
1132
  frames: components["schemas"]["FrameRGBAsset"][];
1081
1133
  /**
1082
1134
  * Promptused
1083
- * @description Final prompt supplied to inference, if any.
1135
+ * @description Final prompt for the first output image, if any. See promptsUsed for all images.
1084
1136
  */
1085
1137
  promptUsed?: string | null;
1138
+ /**
1139
+ * Promptsused
1140
+ * @description Final prompts in the same order as frames. Empty for older results.
1141
+ */
1142
+ promptsUsed?: string[];
1086
1143
  /**
1087
1144
  * Aspectratio
1088
1145
  * @description Resolved width-to-height ratio used for generation.
@@ -1113,13 +1170,11 @@ export interface components {
1113
1170
  } | null;
1114
1171
  /**
1115
1172
  * Done
1116
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
1173
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
1117
1174
  */
1118
1175
  done: boolean;
1119
1176
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
1120
1177
  error?: components["schemas"]["OperationError"] | null;
1121
- /** @description ``AtlasTextToImageResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
1122
- response?: components["schemas"]["AtlasTextToImageResponse"] | null;
1123
1178
  /**
1124
1179
  * Expiresatsecs
1125
1180
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -1130,6 +1185,8 @@ export interface components {
1130
1185
  * @description Unix seconds when the operation was accepted.
1131
1186
  */
1132
1187
  createdAtSecs?: number | null;
1188
+ /** @description ``AtlasTextToImageResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
1189
+ response?: components["schemas"]["AtlasTextToImageResponse"] | null;
1133
1190
  /**
1134
1191
  * Name
1135
1192
  * @description Full resource name for the operation.
@@ -1355,6 +1412,11 @@ export interface components {
1355
1412
  * @description Already percent-encoded path for the asset. Append it unchanged to ``baseUrl`` before ``?`` and ``signedQuery``. This path does not grant access by itself. Null until the asset is ``READY`` or when unavailable; use ``assets/{asset}:createReadUrl`` as a fallback.
1356
1413
  */
1357
1414
  contentPath?: string | null;
1415
+ /**
1416
+ * Url
1417
+ * @description Unsigned content URL for the asset, ``baseUrl + contentPath``. It does not grant access by itself: the web app's read-prefix cookie authorizes it, and an API client appends ``?`` and a read prefix's ``signedQuery`` or uses ``assets/{asset}:createReadUrl`` instead. Null whenever ``contentPath`` is.
1418
+ */
1419
+ url?: string | null;
1358
1420
  /**
1359
1421
  * Uploads
1360
1422
  * @description One grant per declared part; empty for URL or inline ingestion.
@@ -1542,6 +1604,12 @@ export interface components {
1542
1604
  * @description Purge this operation's outputs and the transient uploads it consumed one hour after it finishes. Omitted, the account's setting applies; true raises it for this operation; false is refused when the account already purges. Uploads in the library are never purged by an operation.
1543
1605
  */
1544
1606
  purgeContentOnOperationCompletion?: boolean | null;
1607
+ /**
1608
+ * Base64Outputs
1609
+ * @description When a ?wait=true submission is answered inline, return each output file as base64 in that response rather than by assetId and url. This skips storing the files before the answer and the caller's download after it. Any other submission, and every later read of the operation, names the outputs by assetId and url.
1610
+ * @default false
1611
+ */
1612
+ base64Outputs?: boolean;
1545
1613
  /**
1546
1614
  * Frames
1547
1615
  * @description Ordered image inputs (min 1). A frame that carries a camera, a depth buffer or a mask is rejected rather than quietly ignored: none of them reaches the reconstruction.
@@ -1612,13 +1680,11 @@ export interface components {
1612
1680
  } | null;
1613
1681
  /**
1614
1682
  * Done
1615
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
1683
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
1616
1684
  */
1617
1685
  done: boolean;
1618
1686
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
1619
1687
  error?: components["schemas"]["OperationError"] | null;
1620
- /** @description ``Images2PosedRGBDResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
1621
- response?: components["schemas"]["Images2PosedRGBDResponse"] | null;
1622
1688
  /**
1623
1689
  * Expiresatsecs
1624
1690
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -1629,6 +1695,8 @@ export interface components {
1629
1695
  * @description Unix seconds when the operation was accepted.
1630
1696
  */
1631
1697
  createdAtSecs?: number | null;
1698
+ /** @description ``Images2PosedRGBDResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
1699
+ response?: components["schemas"]["Images2PosedRGBDResponse"] | null;
1632
1700
  /**
1633
1701
  * Name
1634
1702
  * @description Full resource name for the operation.
@@ -1678,7 +1746,7 @@ export interface components {
1678
1746
  };
1679
1747
  /**
1680
1748
  * ListedOperation
1681
- * @description An Operation as the Marble API lists it: with its callback's progress.
1749
+ * @description An operation summary with callback progress; GET it for the result.
1682
1750
  */
1683
1751
  ListedOperation: {
1684
1752
  /**
@@ -1700,18 +1768,11 @@ export interface components {
1700
1768
  } | null;
1701
1769
  /**
1702
1770
  * Done
1703
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
1771
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
1704
1772
  */
1705
1773
  done: boolean;
1706
1774
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
1707
1775
  error?: components["schemas"]["OperationError"] | null;
1708
- /**
1709
- * Response
1710
- * @description Task-specific result when ``done`` is true and the task succeeded; null while running and after failure.
1711
- */
1712
- response?: {
1713
- [key: string]: unknown;
1714
- } | null;
1715
1776
  /**
1716
1777
  * Expiresatsecs
1717
1778
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -1770,9 +1831,43 @@ export interface components {
1770
1831
  */
1771
1832
  zMax: number;
1772
1833
  };
1834
+ /**
1835
+ * MaskedLinearDepthBufferAsset
1836
+ * @description Linear-depth EXR plus an optional mask.
1837
+ */
1838
+ MaskedLinearDepthBufferAsset: {
1839
+ /** @description Optional 8-bit grayscale PNG on the depth grid whose pixel value / 255 is the per-pixel depth confidence in [0, 1], as a URL or inline asset. */
1840
+ confidenceAsset?: components["schemas"]["TaskAsset"] | null;
1841
+ /** @description Optional 8-bit grayscale PNG on the depth grid, as a URL or inline asset: white where the buffer's depth is known, black where it has none. Null when every pixel's depth is known. */
1842
+ maskAsset?: components["schemas"]["TaskAsset"] | null;
1843
+ /** @description EXR of linear depth in world units, as a URL or inline asset. */
1844
+ depthAsset: components["schemas"]["TaskAsset"];
1845
+ };
1846
+ /**
1847
+ * MaskedLogDepthBufferAsset
1848
+ * @description Inverted log-depth PNG plus its decode range and an optional mask.
1849
+ */
1850
+ MaskedLogDepthBufferAsset: {
1851
+ /** @description Optional 8-bit grayscale PNG on the depth grid whose pixel value / 255 is the per-pixel depth confidence in [0, 1], as a URL or inline asset. */
1852
+ confidenceAsset?: components["schemas"]["TaskAsset"] | null;
1853
+ /** @description Optional 8-bit grayscale PNG on the depth grid, as a URL or inline asset: white where the buffer's depth is known, black where it has none. Null when every pixel's depth is known. */
1854
+ maskAsset?: components["schemas"]["TaskAsset"] | null;
1855
+ /** @description Inverted log-depth grayscale PNG, as a URL or inline asset. */
1856
+ logDepthAsset: components["schemas"]["TaskAsset"];
1857
+ /**
1858
+ * Zmin
1859
+ * @description Linear depth in world units encoded as white (1.0).
1860
+ */
1861
+ zMin: number;
1862
+ /**
1863
+ * Zmax
1864
+ * @description Linear depth in world units encoded as black (>0).
1865
+ */
1866
+ zMax: number;
1867
+ };
1773
1868
  /**
1774
1869
  * Operation
1775
- * @description The common envelope used to track an asynchronous task.
1870
+ * @description An operation with its result, available through singular reads.
1776
1871
  */
1777
1872
  Operation: {
1778
1873
  /**
@@ -1794,18 +1889,11 @@ export interface components {
1794
1889
  } | null;
1795
1890
  /**
1796
1891
  * Done
1797
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
1892
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
1798
1893
  */
1799
1894
  done: boolean;
1800
1895
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
1801
1896
  error?: components["schemas"]["OperationError"] | null;
1802
- /**
1803
- * Response
1804
- * @description Task-specific result when ``done`` is true and the task succeeded; null while running and after failure.
1805
- */
1806
- response?: {
1807
- [key: string]: unknown;
1808
- } | null;
1809
1897
  /**
1810
1898
  * Expiresatsecs
1811
1899
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -1816,6 +1904,13 @@ export interface components {
1816
1904
  * @description Unix seconds when the operation was accepted.
1817
1905
  */
1818
1906
  createdAtSecs?: number | null;
1907
+ /**
1908
+ * Response
1909
+ * @description Task-specific result when ``done`` is true and the task succeeded; null while running and after failure.
1910
+ */
1911
+ response?: {
1912
+ [key: string]: unknown;
1913
+ } | null;
1819
1914
  /**
1820
1915
  * Name
1821
1916
  * @description Full resource name for the operation.
@@ -1922,21 +2017,123 @@ export interface components {
1922
2017
  height: number;
1923
2018
  };
1924
2019
  /**
1925
- * PosedDepthAsset
1926
- * @description A posed depth-only frame: a depth buffer with its camera.
2020
+ * PosedImages2SplatsRequest
2021
+ * @description Body of ``POST /api/v2/tasks:posedImages2Splats``.
1927
2022
  */
1928
- PosedDepthAsset: {
1929
- /** @description Source image as a URL or inline asset, or null (depth-only). */
1930
- imageAsset?: components["schemas"]["TaskAsset"] | null;
1931
- /** @description Optional alpha mask as a URL or inline asset: an 8-bit grayscale PNG on the image grid whose pixel value / 255 is the alpha in [0, 1] (1 = kept, 0 = excluded). Null when the frame carries no mask. */
1932
- maskAsset?: components["schemas"]["TaskAsset"] | null;
1933
- /** @description Camera-to-world pose and intrinsics. */
1934
- camera: components["schemas"]["PinholeCamera"];
2023
+ PosedImages2SplatsRequest: {
1935
2024
  /**
1936
- * Depth
1937
- * @description Depth buffer aligned to the camera.
2025
+ * Webhookurl
2026
+ * @description Where Marble POSTs one signed task.succeeded or task.failed event when this operation finishes; retried for 24 hours. Verify the signature with the public keys at /.well-known/webhooks/jwks.json. Cannot be combined with ?wait=true. https on port 443 only, no IP literals. Developer API only.
1938
2027
  */
1939
- depth: components["schemas"]["LogDepthBufferAsset"] | components["schemas"]["LinearDepthBufferAsset"];
2028
+ webhookUrl?: string | null;
2029
+ /**
2030
+ * Purgecontentonoperationcompletion
2031
+ * @description Purge this operation's outputs and the transient uploads it consumed one hour after it finishes. Omitted, the account's setting applies; true raises it for this operation; false is refused when the account already purges. Uploads in the library are never purged by an operation.
2032
+ */
2033
+ purgeContentOnOperationCompletion?: boolean | null;
2034
+ /**
2035
+ * Prompt
2036
+ * @description Optional scene description. Enhancement combines it with the input images; when omitted, enhancement captions the images.
2037
+ */
2038
+ prompt?: string | null;
2039
+ /**
2040
+ * Enhanceprompt
2041
+ * @description Enhance the prompt using the context images before generation. Set false with a prepared prompt to skip enhancement and reduce latency.
2042
+ * @default true
2043
+ */
2044
+ enhancePrompt?: boolean;
2045
+ /**
2046
+ * Refine
2047
+ * @description Run the refiner after drafting: the free-running loop that places cameras, render-difixes them and trains SSO on the draft until its recipe's step count or wall budget, publishing its level under refinedSplats. Off ends the run at the draft pass, fit at 2,000,000 splats by default or at the one targetSplatCounts entry, and published under draftSplat alone. It runs in a fraction of the time and is billed as a draft.
2048
+ * @default true
2049
+ */
2050
+ refine?: boolean;
2051
+ /**
2052
+ * Targetsplatcounts
2053
+ * @description Splat counts to publish. With refine=false, an explicit list must contain exactly one count, the draft's, returned under draftSplat; omitted, the draft is fit at 2,000,000 splats. With refinement the loop's recipe sets the one level it publishes under refinedSplats, and this list is accepted and ignored.
2054
+ */
2055
+ targetSplatCounts?: number[] | null;
2056
+ /**
2057
+ * Debug
2058
+ * @description Flag for custom debug behavior. Currently has no effect on the pipeline.
2059
+ * @default false
2060
+ */
2061
+ debug?: boolean;
2062
+ /**
2063
+ * Posedframes
2064
+ * @description Ordered posed RGBD frames (at least 2): each image an account asset, inline bytes, or a public URL, with its camera and its depth buffer (a linear-depth EXR under depth.depthAsset, as images2PosedRGBD returns). All frames must share one image size.
2065
+ */
2066
+ posedFrames: components["schemas"]["PosedRGBDAsset"][];
2067
+ };
2068
+ /**
2069
+ * PosedImages2SplatsResponse
2070
+ * @description Public response projected into the completed Operation.
2071
+ *
2072
+ * Each splat is a bare TaskAsset, the shape the task requests take
2073
+ * (splats2Mesh's splatAsset), so a response feeds the next task without
2074
+ * translation.
2075
+ */
2076
+ PosedImages2SplatsResponse: {
2077
+ /**
2078
+ * Refinedsplats
2079
+ * @description Refined splats (SPZ) keyed by splat count.
2080
+ */
2081
+ refinedSplats?: {
2082
+ [key: string]: components["schemas"]["TaskAsset"];
2083
+ };
2084
+ /** @description The splat (SPZ) the run ends on when refine=false: the draft pass's, fit at the requested count (2,000,000 by default). Null when the refiner ran; its levels are under refinedSplats. */
2085
+ draftSplat?: components["schemas"]["TaskAsset"] | null;
2086
+ };
2087
+ /**
2088
+ * PosedImages2SplatsResponseOperation
2089
+ * @description Long-running operation whose successful terminal ``response`` has type ``PosedImages2SplatsResponse``. This is the common Operation envelope with a task-specific response type, not a separate operation resource.
2090
+ */
2091
+ PosedImages2SplatsResponseOperation: {
2092
+ /**
2093
+ * Id
2094
+ * @description Short operation id used in ``/operations/{operation}`` paths.
2095
+ */
2096
+ id: string;
2097
+ /**
2098
+ * Ownerid
2099
+ * @description Account that owns the operation.
2100
+ */
2101
+ ownerId: string;
2102
+ /**
2103
+ * Metadata
2104
+ * @description Task information and optional progress details. Use ``metadata.task`` to interpret a generic operation response, and use ``done`` to determine completion.
2105
+ */
2106
+ metadata?: {
2107
+ [key: string]: unknown;
2108
+ } | null;
2109
+ /**
2110
+ * Done
2111
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
2112
+ */
2113
+ done: boolean;
2114
+ /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
2115
+ error?: components["schemas"]["OperationError"] | null;
2116
+ /**
2117
+ * Expiresatsecs
2118
+ * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
2119
+ */
2120
+ expiresAtSecs?: number | null;
2121
+ /**
2122
+ * Createdatsecs
2123
+ * @description Unix seconds when the operation was accepted.
2124
+ */
2125
+ createdAtSecs?: number | null;
2126
+ /** @description ``PosedImages2SplatsResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
2127
+ response?: components["schemas"]["PosedImages2SplatsResponse"] | null;
2128
+ /**
2129
+ * Name
2130
+ * @description Full resource name for the operation.
2131
+ *
2132
+ * For project operations:
2133
+ * ``accounts/{account}/projects/{project}/operations/{operation}``.
2134
+ * Operation paths accept the short ``id``.
2135
+ */
2136
+ readonly name: string;
1940
2137
  };
1941
2138
  /**
1942
2139
  * PosedRGBAAsset
@@ -2015,7 +2212,7 @@ export interface components {
2015
2212
  session?: string | null;
2016
2213
  /**
2017
2214
  * Task
2018
- * @description The task that produced it, e.g. ``image2DraftSplats``.
2215
+ * @description The task that produced it, e.g. ``atlasGenerate``.
2019
2216
  */
2020
2217
  task?: string | null;
2021
2218
  /**
@@ -2043,8 +2240,8 @@ export interface components {
2043
2240
  renderHw?: number;
2044
2241
  /**
2045
2242
  * Renderhwsecondary
2046
- * @description Height and width of the secondary views, in pixels. The anchor strategies sample extra cameras around each anchor and render them here, covering what the main views miss. `exterior_sphere` and a supplied camera list render no secondary views and ignore this.
2047
- * @default 640
2243
+ * @description Height and width of the secondary views, in pixels. The anchor strategies place extra cameras from the anchors and render them here, covering what the main views miss. `exterior_sphere` and a supplied camera list render no secondary views and ignore this.
2244
+ * @default 256
2048
2245
  */
2049
2246
  renderHwSecondary?: number;
2050
2247
  /**
@@ -2054,6 +2251,13 @@ export interface components {
2054
2251
  * @enum {string}
2055
2252
  */
2056
2253
  normalSource?: "depth" | "render";
2254
+ /**
2255
+ * Depthsource
2256
+ * @description Depth of the main views. `render` uses the splats' rendered depth; `stereo` measures it by stereo matching each view against a second render from a camera shifted sideways, which is sharper where the splats are fuzzy and slower to compute. Pixels stereo cannot match keep the rendered depth.
2257
+ * @default render
2258
+ * @enum {string}
2259
+ */
2260
+ depthSource?: "render" | "stereo";
2057
2261
  /**
2058
2262
  * Resolution
2059
2263
  * @description Resolution of the grid the implicit surface is built on, across the region's longest side. Powers of two only. This sets the finest detail the mesh can carry.
@@ -2195,13 +2399,11 @@ export interface components {
2195
2399
  } | null;
2196
2400
  /**
2197
2401
  * Done
2198
- * @description Whether the operation is terminal. When false, both ``response`` and ``error`` are null.
2402
+ * @description Whether the operation is terminal. When true, a non-null ``error`` indicates failure; otherwise the operation succeeded.
2199
2403
  */
2200
2404
  done: boolean;
2201
2405
  /** @description Failure details when ``done`` is true and the task failed; null while running and after success. */
2202
2406
  error?: components["schemas"]["OperationError"] | null;
2203
- /** @description ``Splats2MeshResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
2204
- response?: components["schemas"]["Splats2MeshResponse"] | null;
2205
2407
  /**
2206
2408
  * Expiresatsecs
2207
2409
  * @description Task execution deadline as Unix seconds, when one is exposed. This is not an asset URL expiration.
@@ -2212,6 +2414,8 @@ export interface components {
2212
2414
  * @description Unix seconds when the operation was accepted.
2213
2415
  */
2214
2416
  createdAtSecs?: number | null;
2417
+ /** @description ``Splats2MeshResponse`` result when ``done`` is true and the task succeeded; null while running and after failure. */
2418
+ response?: components["schemas"]["Splats2MeshResponse"] | null;
2215
2419
  /**
2216
2420
  * Name
2217
2421
  * @description Full resource name for the operation.
@@ -2229,7 +2433,9 @@ export interface components {
2229
2433
  * A task response names each output by id and url together: the url expires,
2230
2434
  * the id does not. The pair is accepted as input as well, so a response can
2231
2435
  * be handed straight back to the next task; the id names the media and the
2232
- * url is ignored. Inline base64 is an input form only, and stands alone.
2436
+ * url is ignored. Inline base64 stands alone. A response returns it only
2437
+ * when a task is answered at submission; the stored operation names the
2438
+ * same output by id and url.
2233
2439
  */
2234
2440
  TaskAsset: {
2235
2441
  /**
@@ -2239,7 +2445,7 @@ export interface components {
2239
2445
  assetId?: string | null;
2240
2446
  /**
2241
2447
  * Base64
2242
- * @description Base64-encoded media bytes, with or without a data URL prefix. Decoded size must be less than 10 MiB. Input only: a task response never carries inline bytes.
2448
+ * @description Base64-encoded media bytes, with or without a data URL prefix. Decoded size must be less than 10 MiB. A task response carries inline bytes only when it is returned from the submission; the stored operation names the same output by `assetId` and `url`.
2243
2449
  */
2244
2450
  base64?: string | null;
2245
2451
  /**
@@ -2430,6 +2636,7 @@ export type AssetPart = components['schemas']['AssetPart'];
2430
2636
  export type AssetPartDeclaration = components['schemas']['AssetPartDeclaration'];
2431
2637
  export type AssetProducer = components['schemas']['AssetProducer'];
2432
2638
  export type AssetState = components['schemas']['AssetState'];
2639
+ export type AtlasChiselContextFrameAsset = components['schemas']['AtlasChiselContextFrameAsset'];
2433
2640
  export type AtlasChiselModelParameters = components['schemas']['AtlasChiselModelParameters'];
2434
2641
  export type AtlasChiselRequest = components['schemas']['AtlasChiselRequest'];
2435
2642
  export type AtlasChiselResponse = components['schemas']['AtlasChiselResponse'];
@@ -2471,13 +2678,17 @@ export type ListAssetsResponse = components['schemas']['ListAssetsResponse'];
2471
2678
  export type ListedOperation = components['schemas']['ListedOperation'];
2472
2679
  export type ListedOperationsResponse = components['schemas']['ListedOperationsResponse'];
2473
2680
  export type LogDepthBufferAsset = components['schemas']['LogDepthBufferAsset'];
2681
+ export type MaskedLinearDepthBufferAsset = components['schemas']['MaskedLinearDepthBufferAsset'];
2682
+ export type MaskedLogDepthBufferAsset = components['schemas']['MaskedLogDepthBufferAsset'];
2474
2683
  export type Operation = components['schemas']['Operation'];
2475
2684
  export type OperationError = components['schemas']['OperationError'];
2476
2685
  export type OperationStatus = components['schemas']['OperationStatus'];
2477
2686
  export type OperationTrace = components['schemas']['OperationTrace'];
2478
2687
  export type PinholeCamera = components['schemas']['PinholeCamera'];
2479
2688
  export type PinholeCameraIntrinsics = components['schemas']['PinholeCameraIntrinsics'];
2480
- export type PosedDepthAsset = components['schemas']['PosedDepthAsset'];
2689
+ export type PosedImages2SplatsRequest = components['schemas']['PosedImages2SplatsRequest'];
2690
+ export type PosedImages2SplatsResponse = components['schemas']['PosedImages2SplatsResponse'];
2691
+ export type PosedImages2SplatsResponseOperation = components['schemas']['PosedImages2SplatsResponseOperation'];
2481
2692
  export type PosedRGBAAsset = components['schemas']['PosedRGBAAsset'];
2482
2693
  export type PosedRGBAsset = components['schemas']['PosedRGBAsset'];
2483
2694
  export type PosedRGBDAsset = components['schemas']['PosedRGBDAsset'];
@@ -2714,6 +2925,45 @@ export interface operations {
2714
2925
  };
2715
2926
  };
2716
2927
  };
2928
+ submit_posedImages2Splats_api_v2_tasks_posedImages2Splats_post: {
2929
+ parameters: {
2930
+ query?: {
2931
+ /** @description Block for the operation to finish before returning, up to the server wait cap. Returns the Operation either way — done with a response if it finished in time, otherwise still running. */
2932
+ wait?: boolean;
2933
+ };
2934
+ header?: {
2935
+ /** @description Optional idempotency key. */
2936
+ "Idempotency-Key"?: string | null;
2937
+ };
2938
+ path?: never;
2939
+ cookie?: never;
2940
+ };
2941
+ requestBody: {
2942
+ content: {
2943
+ "application/json": components["schemas"]["PosedImages2SplatsRequest"];
2944
+ };
2945
+ };
2946
+ responses: {
2947
+ /** @description Successful Response */
2948
+ 201: {
2949
+ headers: {
2950
+ [name: string]: unknown;
2951
+ };
2952
+ content: {
2953
+ "application/json": components["schemas"]["PosedImages2SplatsResponseOperation"];
2954
+ };
2955
+ };
2956
+ /** @description Validation Error */
2957
+ 422: {
2958
+ headers: {
2959
+ [name: string]: unknown;
2960
+ };
2961
+ content: {
2962
+ "application/json": components["schemas"]["HTTPValidationError"];
2963
+ };
2964
+ };
2965
+ };
2966
+ };
2717
2967
  submit_splats2Mesh_api_v2_tasks_splats2Mesh_post: {
2718
2968
  parameters: {
2719
2969
  query?: {
@@ -2974,7 +3224,7 @@ export interface operations {
2974
3224
  mimeType?: string | null;
2975
3225
  /** @description Only assets this Operation produced. */
2976
3226
  operation?: string | null;
2977
- /** @description Only assets this task produced, e.g. `image2DraftSplats`. */
3227
+ /** @description Only assets this task produced, e.g. `atlasGenerate`. */
2978
3228
  task?: string | null;
2979
3229
  /** @description Only assets made this way, e.g. `UPLOAD` for the customer's own bytes. Assets recorded before the producer was stored match no value. */
2980
3230
  producer?: components["schemas"]["AssetProducer"] | null;