@transloadit/zod 6.0.0 → 7.1.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 (196) hide show
  1. package/dist/v3/builtinTemplates.d.ts +40 -0
  2. package/dist/v3/builtinTemplates.d.ts.map +1 -1
  3. package/dist/v3/builtinTemplates.js +29 -0
  4. package/dist/v3/englishInteger.d.ts +3 -0
  5. package/dist/v3/englishInteger.d.ts.map +1 -0
  6. package/dist/v3/englishInteger.js +12 -0
  7. package/dist/v3/lib/zodInputSemantics.d.ts +3 -1
  8. package/dist/v3/lib/zodInputSemantics.d.ts.map +1 -1
  9. package/dist/v3/lib/zodInputSemantics.js +17 -0
  10. package/dist/v3/responseErrors/DocumentConvertRobot.d.ts +17 -0
  11. package/dist/v3/responseErrors/DocumentConvertRobot.d.ts.map +1 -0
  12. package/dist/v3/responseErrors/DocumentConvertRobot.js +16 -0
  13. package/dist/v3/robots/_image-describe-output.d.ts +55 -0
  14. package/dist/v3/robots/_image-describe-output.d.ts.map +1 -0
  15. package/dist/v3/robots/_image-describe-output.js +15 -0
  16. package/dist/v3/robots/_image-facedetect-output.d.ts +30 -0
  17. package/dist/v3/robots/_image-facedetect-output.d.ts.map +1 -0
  18. package/dist/v3/robots/_image-facedetect-output.js +14 -0
  19. package/dist/v3/robots/_index.d.ts +582 -48
  20. package/dist/v3/robots/_index.d.ts.map +1 -1
  21. package/dist/v3/robots/_index.js +84 -80
  22. package/dist/v3/robots/_instructions-primitives.d.ts +82 -0
  23. package/dist/v3/robots/_instructions-primitives.d.ts.map +1 -1
  24. package/dist/v3/robots/_instructions-primitives.js +46 -2
  25. package/dist/v3/robots/_ocr-output.d.ts +75 -0
  26. package/dist/v3/robots/_ocr-output.d.ts.map +1 -0
  27. package/dist/v3/robots/_ocr-output.js +14 -0
  28. package/dist/v3/robots/ai-chat.d.ts +12 -12
  29. package/dist/v3/robots/audio-encode.d.ts.map +1 -1
  30. package/dist/v3/robots/audio-encode.js +8 -1
  31. package/dist/v3/robots/audio-split.d.ts.map +1 -1
  32. package/dist/v3/robots/audio-split.js +2 -0
  33. package/dist/v3/robots/digitalocean-store.d.ts +4 -4
  34. package/dist/v3/robots/digitalocean-store.js +1 -1
  35. package/dist/v3/robots/document-convert.d.ts +8 -6
  36. package/dist/v3/robots/document-convert.d.ts.map +1 -1
  37. package/dist/v3/robots/document-convert.js +24 -5
  38. package/dist/v3/robots/document-extract.d.ts +28 -16
  39. package/dist/v3/robots/document-extract.d.ts.map +1 -1
  40. package/dist/v3/robots/document-extract.js +51 -1
  41. package/dist/v3/robots/document-ocr.d.ts +8 -8
  42. package/dist/v3/robots/google-store.d.ts +32 -8
  43. package/dist/v3/robots/google-store.d.ts.map +1 -1
  44. package/dist/v3/robots/google-store.js +10 -2
  45. package/dist/v3/robots/html-convert.d.ts.map +1 -1
  46. package/dist/v3/robots/html-convert.js +1 -0
  47. package/dist/v3/robots/image-bgremove.d.ts +16 -16
  48. package/dist/v3/robots/image-describe.d.ts +17 -17
  49. package/dist/v3/robots/image-describe.d.ts.map +1 -1
  50. package/dist/v3/robots/image-describe.js +2 -1
  51. package/dist/v3/robots/image-facedetect.d.ts +9 -35
  52. package/dist/v3/robots/image-facedetect.d.ts.map +1 -1
  53. package/dist/v3/robots/image-facedetect.js +1 -11
  54. package/dist/v3/robots/image-generate.d.ts +20 -20
  55. package/dist/v3/robots/image-generate.js +1 -1
  56. package/dist/v3/robots/image-ocr.d.ts +8 -8
  57. package/dist/v3/robots/image-upscale.d.ts +17 -12
  58. package/dist/v3/robots/image-upscale.d.ts.map +1 -1
  59. package/dist/v3/robots/image-upscale.js +14 -2
  60. package/dist/v3/robots/mega-store.d.ts +4 -4
  61. package/dist/v3/robots/mega-store.js +1 -1
  62. package/dist/v3/robots/s3-store.d.ts +8 -8
  63. package/dist/v3/robots/s3-store.d.ts.map +1 -1
  64. package/dist/v3/robots/s3-store.js +14 -2
  65. package/dist/v3/robots/speech-transcribe.d.ts +26 -12
  66. package/dist/v3/robots/speech-transcribe.d.ts.map +1 -1
  67. package/dist/v3/robots/speech-transcribe.js +42 -2
  68. package/dist/v3/robots/text-speak.d.ts +8 -8
  69. package/dist/v3/robots/text-translate.d.ts +8 -8
  70. package/dist/v3/robots/video-adaptive.d.ts +16 -19
  71. package/dist/v3/robots/video-adaptive.d.ts.map +1 -1
  72. package/dist/v3/robots/video-adaptive.js +37 -3
  73. package/dist/v3/robots/video-concat.d.ts.map +1 -1
  74. package/dist/v3/robots/video-concat.js +7 -3
  75. package/dist/v3/robots/video-encode.d.ts.map +1 -1
  76. package/dist/v3/robots/video-encode.js +6 -0
  77. package/dist/v3/robots/video-generate.d.ts +20 -20
  78. package/dist/v3/robots/video-generate.js +1 -1
  79. package/dist/v3/robots/video-merge.d.ts.map +1 -1
  80. package/dist/v3/robots/video-merge.js +15 -1
  81. package/dist/v3/robots/video-split.d.ts +11 -0
  82. package/dist/v3/robots/video-split.d.ts.map +1 -1
  83. package/dist/v3/robots/video-split.js +4 -1
  84. package/dist/v3/robots/video-subtitle.d.ts +71 -28
  85. package/dist/v3/robots/video-subtitle.d.ts.map +1 -1
  86. package/dist/v3/robots/video-subtitle.js +63 -49
  87. package/dist/v3/robots/video-thumbs.d.ts +36 -36
  88. package/dist/v3/robots/video-thumbs.d.ts.map +1 -1
  89. package/dist/v3/robots/video-thumbs.js +8 -3
  90. package/dist/v3/robots/vimeo-import.d.ts.map +1 -1
  91. package/dist/v3/robots/vimeo-import.js +1 -1
  92. package/dist/v3/robots/youtube-store.d.ts +37 -20
  93. package/dist/v3/robots/youtube-store.d.ts.map +1 -1
  94. package/dist/v3/robots/youtube-store.js +17 -29
  95. package/dist/v3/template.d.ts.map +1 -1
  96. package/dist/v3/template.js +5 -2
  97. package/dist/v3/youtubeCategories.d.ts +20 -0
  98. package/dist/v3/youtubeCategories.d.ts.map +1 -0
  99. package/dist/v3/youtubeCategories.js +20 -0
  100. package/dist/v4/assemblyStatus.d.ts +2 -2
  101. package/dist/v4/builtinTemplates.d.ts +22 -0
  102. package/dist/v4/builtinTemplates.d.ts.map +1 -1
  103. package/dist/v4/builtinTemplates.js +29 -0
  104. package/dist/v4/englishInteger.d.ts +3 -0
  105. package/dist/v4/englishInteger.d.ts.map +1 -0
  106. package/dist/v4/englishInteger.js +12 -0
  107. package/dist/v4/lib/zodInputSemantics.d.ts +3 -1
  108. package/dist/v4/lib/zodInputSemantics.d.ts.map +1 -1
  109. package/dist/v4/lib/zodInputSemantics.js +6 -0
  110. package/dist/v4/responseErrors/DocumentConvertRobot.d.ts +17 -0
  111. package/dist/v4/responseErrors/DocumentConvertRobot.d.ts.map +1 -0
  112. package/dist/v4/responseErrors/DocumentConvertRobot.js +16 -0
  113. package/dist/v4/robots/_image-describe-output.d.ts +23 -0
  114. package/dist/v4/robots/_image-describe-output.d.ts.map +1 -0
  115. package/dist/v4/robots/_image-describe-output.js +15 -0
  116. package/dist/v4/robots/_image-facedetect-output.d.ts +14 -0
  117. package/dist/v4/robots/_image-facedetect-output.d.ts.map +1 -0
  118. package/dist/v4/robots/_image-facedetect-output.js +15 -0
  119. package/dist/v4/robots/_index.d.ts +582 -48
  120. package/dist/v4/robots/_index.d.ts.map +1 -1
  121. package/dist/v4/robots/_index.js +84 -80
  122. package/dist/v4/robots/_instructions-primitives.d.ts +16 -0
  123. package/dist/v4/robots/_instructions-primitives.d.ts.map +1 -1
  124. package/dist/v4/robots/_instructions-primitives.js +50 -2
  125. package/dist/v4/robots/_ocr-output.d.ts +29 -0
  126. package/dist/v4/robots/_ocr-output.d.ts.map +1 -0
  127. package/dist/v4/robots/_ocr-output.js +14 -0
  128. package/dist/v4/robots/audio-encode.d.ts.map +1 -1
  129. package/dist/v4/robots/audio-encode.js +8 -1
  130. package/dist/v4/robots/audio-split.d.ts.map +1 -1
  131. package/dist/v4/robots/audio-split.js +2 -0
  132. package/dist/v4/robots/digitalocean-store.d.ts +8 -8
  133. package/dist/v4/robots/digitalocean-store.js +1 -1
  134. package/dist/v4/robots/document-convert.d.ts +22 -8
  135. package/dist/v4/robots/document-convert.d.ts.map +1 -1
  136. package/dist/v4/robots/document-convert.js +24 -5
  137. package/dist/v4/robots/document-extract.d.ts +12 -0
  138. package/dist/v4/robots/document-extract.d.ts.map +1 -1
  139. package/dist/v4/robots/document-extract.js +51 -1
  140. package/dist/v4/robots/google-store.d.ts +16 -4
  141. package/dist/v4/robots/google-store.d.ts.map +1 -1
  142. package/dist/v4/robots/google-store.js +10 -2
  143. package/dist/v4/robots/html-convert.d.ts.map +1 -1
  144. package/dist/v4/robots/html-convert.js +1 -0
  145. package/dist/v4/robots/image-describe.d.ts +1 -5
  146. package/dist/v4/robots/image-describe.d.ts.map +1 -1
  147. package/dist/v4/robots/image-describe.js +2 -1
  148. package/dist/v4/robots/image-facedetect.d.ts +1 -11
  149. package/dist/v4/robots/image-facedetect.d.ts.map +1 -1
  150. package/dist/v4/robots/image-facedetect.js +1 -12
  151. package/dist/v4/robots/image-generate.d.ts +0 -4
  152. package/dist/v4/robots/image-generate.d.ts.map +1 -1
  153. package/dist/v4/robots/image-generate.js +1 -1
  154. package/dist/v4/robots/image-upscale.d.ts +5 -0
  155. package/dist/v4/robots/image-upscale.d.ts.map +1 -1
  156. package/dist/v4/robots/image-upscale.js +14 -2
  157. package/dist/v4/robots/mega-store.d.ts +8 -8
  158. package/dist/v4/robots/mega-store.js +1 -1
  159. package/dist/v4/robots/s3-store.d.ts +20 -0
  160. package/dist/v4/robots/s3-store.d.ts.map +1 -1
  161. package/dist/v4/robots/s3-store.js +14 -2
  162. package/dist/v4/robots/speech-transcribe.d.ts +6 -0
  163. package/dist/v4/robots/speech-transcribe.d.ts.map +1 -1
  164. package/dist/v4/robots/speech-transcribe.js +42 -2
  165. package/dist/v4/robots/video-adaptive.d.ts +16 -16
  166. package/dist/v4/robots/video-adaptive.d.ts.map +1 -1
  167. package/dist/v4/robots/video-adaptive.js +38 -5
  168. package/dist/v4/robots/video-concat.d.ts.map +1 -1
  169. package/dist/v4/robots/video-concat.js +7 -3
  170. package/dist/v4/robots/video-encode.d.ts.map +1 -1
  171. package/dist/v4/robots/video-encode.js +6 -0
  172. package/dist/v4/robots/video-generate.d.ts +0 -4
  173. package/dist/v4/robots/video-generate.d.ts.map +1 -1
  174. package/dist/v4/robots/video-generate.js +1 -1
  175. package/dist/v4/robots/video-merge.d.ts.map +1 -1
  176. package/dist/v4/robots/video-merge.js +15 -1
  177. package/dist/v4/robots/video-split.d.ts +5 -0
  178. package/dist/v4/robots/video-split.d.ts.map +1 -1
  179. package/dist/v4/robots/video-split.js +4 -1
  180. package/dist/v4/robots/video-subtitle.d.ts +43 -16
  181. package/dist/v4/robots/video-subtitle.d.ts.map +1 -1
  182. package/dist/v4/robots/video-subtitle.js +65 -55
  183. package/dist/v4/robots/video-thumbs.d.ts +12 -12
  184. package/dist/v4/robots/video-thumbs.d.ts.map +1 -1
  185. package/dist/v4/robots/video-thumbs.js +10 -5
  186. package/dist/v4/robots/vimeo-import.d.ts.map +1 -1
  187. package/dist/v4/robots/vimeo-import.js +1 -1
  188. package/dist/v4/robots/youtube-store.d.ts +25 -76
  189. package/dist/v4/robots/youtube-store.d.ts.map +1 -1
  190. package/dist/v4/robots/youtube-store.js +18 -29
  191. package/dist/v4/template.d.ts.map +1 -1
  192. package/dist/v4/template.js +5 -2
  193. package/dist/v4/youtubeCategories.d.ts +20 -0
  194. package/dist/v4/youtubeCategories.d.ts.map +1 -0
  195. package/dist/v4/youtubeCategories.js +20 -0
  196. package/package.json +2 -2
@@ -1,4 +1,3 @@
1
- import { optionalWithV3Semantics } from "../lib/sdkZodOptional.js";
2
1
  import { z } from 'zod/v4';
3
2
  import { awsGcpAiProviderSchema, createProcessingExample, defineRobot, robotArtificialIntelligenceMeta, robotBase, robotParameterDocs, robotUse, } from "./_instructions-primitives.js";
4
3
  export const imageFacedetectFaceSelectionModes = [
@@ -8,17 +7,7 @@ export const imageFacedetectFaceSelectionModes = [
8
7
  'max-size',
9
8
  ];
10
9
  export const imageFacedetectFaceSelectionModeSchema = z.enum(imageFacedetectFaceSelectionModes);
11
- export const imageFacedetectFaceCoordinatesSchema = z
12
- .object({
13
- confidence: optionalWithV3Semantics(z.number()),
14
- height: z.number(),
15
- width: z.number(),
16
- x1: z.number(),
17
- x2: optionalWithV3Semantics(z.number()),
18
- y1: z.number(),
19
- y2: optionalWithV3Semantics(z.number()),
20
- })
21
- .catchall(z.unknown());
10
+ export { imageFacedetectFaceCoordinatesSchema, } from "./_image-facedetect-output.js";
22
11
  export const meta = {
23
12
  ...robotArtificialIntelligenceMeta,
24
13
  example_code: createProcessingExample('faces_detected', '/image/facedetect', {
@@ -38,7 +38,6 @@ export declare const robotImageGenerateInstructionsSchema: z.ZodObject<{
38
38
  model: z.ZodOptional<z.ZodString>;
39
39
  prompt: z.ZodString;
40
40
  format: z.ZodOptional<z.ZodEnum<{
41
- gif: "gif";
42
41
  jpeg: "jpeg";
43
42
  jpg: "jpg";
44
43
  png: "png";
@@ -88,7 +87,6 @@ export declare const robotImageGenerateInstructionsWithHiddenFieldsSchema: z.Zod
88
87
  model: z.ZodOptional<z.ZodString>;
89
88
  prompt: z.ZodString;
90
89
  format: z.ZodOptional<z.ZodEnum<{
91
- gif: "gif";
92
90
  jpeg: "jpeg";
93
91
  jpg: "jpg";
94
92
  png: "png";
@@ -143,7 +141,6 @@ export declare const interpolatableRobotImageGenerateInstructionsSchema: z.ZodOb
143
141
  model: z.ZodOptional<z.ZodString>;
144
142
  prompt: z.ZodString;
145
143
  format: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<{
146
- gif: "gif";
147
144
  jpeg: "jpeg";
148
145
  jpg: "jpg";
149
146
  png: "png";
@@ -195,7 +192,6 @@ export declare const interpolatableRobotImageGenerateInstructionsWithHiddenField
195
192
  model: z.ZodOptional<z.ZodString>;
196
193
  prompt: z.ZodString;
197
194
  format: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<{
198
- gif: "gif";
199
195
  jpeg: "jpeg";
200
196
  jpg: "jpg";
201
197
  png: "png";
@@ -1 +1 @@
1
- {"version":3,"file":"image-generate.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpF,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAsB1B,eAAO,MAAM,IAAI,EAAE,cA6BlB,CAAA;AASD,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqEtC,CAAA;AAEX,eAAO,MAAM,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAK7D,CAAA;AAEJ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AACjG,MAAM,MAAM,8CAA8C,GAAG,CAAC,CAAC,KAAK,CAClE,OAAO,oDAAoD,CAC5D,CAAA;AAED,eAAO,MAAM,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9D,CAAA;AACD,MAAM,MAAM,4CAA4C,GACtD,iDAAiD,CAAA;AAEnD,MAAM,MAAM,iDAAiD,GAAG,CAAC,CAAC,KAAK,CACrE,OAAO,kDAAkD,CAC1D,CAAA;AAED,eAAO,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9E,CAAA;AACD,MAAM,MAAM,4DAA4D,GAAG,CAAC,CAAC,KAAK,CAChF,OAAO,kEAAkE,CAC1E,CAAA;AACD,MAAM,MAAM,iEAAiE,GAAG,CAAC,CAAC,KAAK,CACrF,OAAO,kEAAkE,CAC1E,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,eAAe,CAC3C,OAAO,kDAAkD,EACzD,OAAO,kEAAkE,CAM1E,CAAA"}
1
+ {"version":3,"file":"image-generate.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpF,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAsB1B,eAAO,MAAM,IAAI,EAAE,cA6BlB,CAAA;AASD,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqEtC,CAAA;AAEX,eAAO,MAAM,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAK7D,CAAA;AAEJ,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AACjG,MAAM,MAAM,8CAA8C,GAAG,CAAC,CAAC,KAAK,CAClE,OAAO,oDAAoD,CAC5D,CAAA;AAED,eAAO,MAAM,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9D,CAAA;AACD,MAAM,MAAM,4CAA4C,GACtD,iDAAiD,CAAA;AAEnD,MAAM,MAAM,iDAAiD,GAAG,CAAC,CAAC,KAAK,CACrE,OAAO,kDAAkD,CAC1D,CAAA;AAED,eAAO,MAAM,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE9E,CAAA;AACD,MAAM,MAAM,4DAA4D,GAAG,CAAC,CAAC,KAAK,CAChF,OAAO,kEAAkE,CAC1E,CAAA;AACD,MAAM,MAAM,iEAAiE,GAAG,CAAC,CAAC,KAAK,CACrF,OAAO,kEAAkE,CAC1E,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,eAAe,CAC3C,OAAO,kDAAkD,EACzD,OAAO,kEAAkE,CAM1E,CAAA"}
@@ -72,7 +72,7 @@ Best practice:
72
72
  .string()
73
73
  .describe('Prompt describing the desired image. For inpainting, describe what should appear in the masked/transparent region and that the rest should stay unchanged.'),
74
74
  format: optionalWithV3Semantics(z
75
- .enum(['jpeg', 'jpg', 'png', 'gif', 'webp', 'svg']))
75
+ .enum(['jpeg', 'jpg', 'png', 'webp', 'svg']))
76
76
  .describe('Output format. Defaults depend on model: png for Google and OpenAI models, svg for recraft-v3, jpeg for others. Google models currently return PNG only.'),
77
77
  // Provider-specific limits are checked by the Robot so other models retain their seed range.
78
78
  seed: optionalWithV3Semantics(z
@@ -1,6 +1,11 @@
1
1
  import type { RobotDefinitionWithHiddenFields, RobotMetaInput, RobotSchemaVariantTypes } from './_instructions-primitives.ts';
2
2
  import { z } from 'zod/v4';
3
3
  export declare const meta: RobotMetaInput;
4
+ /**
5
+ * Maximum input area accepted by the pinned Real-ESRGAN Replicate predictor.
6
+ * @see https://github.com/replicate/cog-real-esrgan/blob/6cbd5e6ce8bd0fa90db54af899a8a9a85eb3db41/predict.py#L19
7
+ */
8
+ export declare const realEsrganMaxInputPixels: number;
4
9
  export declare const robotImageUpscaleInstructionsSchema: z.ZodObject<{
5
10
  interpolate: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
6
11
  true: "true";
@@ -1 +1 @@
1
- {"version":3,"file":"image-upscale.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-upscale.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAY1B,eAAO,MAAM,IAAI,EAAE,cAelB,CAAA;AAQD,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgBrC,CAAA;AAEX,QAAA,MAAM,YAAY;;CAEjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,mCAAmC,CAAC,KAAK,EAChD,OAAO,YAAY,CACmE,CAAA;AAExF,eAAO,MACa,mDAAmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACrD,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACjC,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAChF,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,6BAA6B,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAClE,MAAM,MAAM,6CAA6C,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACxF,MAAM,MAAM,2CAA2C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC7F,MAAM,MAAM,gDAAgD,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAClG,MAAM,MAAM,2DAA2D,GACrE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,gEAAgE,GAC1E,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
1
+ {"version":3,"file":"image-upscale.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/image-upscale.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAa1B,eAAO,MAAM,IAAI,EAAE,cAqBlB,CAAA;AAQD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAc,CAAA;AAEnD,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkBrC,CAAA;AAEX,QAAA,MAAM,YAAY;;CAEjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,mCAAmC,CAAC,KAAK,EAChD,OAAO,YAAY,CACmE,CAAA;AAExF,eAAO,MACa,mDAAmD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACrD,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACjC,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAChF,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,6BAA6B,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAClE,MAAM,MAAM,6CAA6C,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACxF,MAAM,MAAM,2CAA2C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC7F,MAAM,MAAM,gDAAgD,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAClG,MAAM,MAAM,2DAA2D,GACrE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,gEAAgE,GAC1E,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { optionalWithV3Semantics } from "../lib/sdkZodOptional.js";
2
2
  import { z } from 'zod/v4';
3
+ import { formatEnglishInteger } from "../englishInteger.js";
3
4
  import { imageUpscaleDefaultModelIdentifier, imageUpscaleModelIdentifiers } from "./_ai-models.js";
4
5
  import { autoProviderDescription, createProcessingExample, defineRobotWithHiddenFields, robotArtificialIntelligenceMeta, robotBase, robotUse, } from "./_instructions-primitives.js";
5
6
  export const meta = {
@@ -15,7 +16,13 @@ export const meta = {
15
16
  purpose_words: 'Upscale images',
16
17
  title: 'Upscale images',
17
18
  name: 'ImageUpscaleRobot',
19
+ // Preserve the runtime fallback; positive provider costs replace it during usage accounting.
18
20
  minimumChargeUsd: 0.06,
21
+ providerCostPricing: {
22
+ provider: 'replicate',
23
+ model: imageUpscaleDefaultModelIdentifier,
24
+ models: [...imageUpscaleModelIdentifiers],
25
+ },
19
26
  stage: 'beta',
20
27
  };
21
28
  const upscaleModelSchema = z
@@ -23,15 +30,20 @@ const upscaleModelSchema = z
23
30
  .default(imageUpscaleDefaultModelIdentifier);
24
31
  const upscaleScaleSchema = z.union([z.literal(2), z.literal(4)]).default(2);
25
32
  const upscaleFaceEnhanceSchema = z.boolean().default(false);
33
+ /**
34
+ * Maximum input area accepted by the pinned Real-ESRGAN Replicate predictor.
35
+ * @see https://github.com/replicate/cog-real-esrgan/blob/6cbd5e6ce8bd0fa90db54af899a8a9a85eb3db41/predict.py#L19
36
+ */
37
+ export const realEsrganMaxInputPixels = 1448 * 1448;
26
38
  export const robotImageUpscaleInstructionsSchema = robotBase
27
39
  .merge(robotUse)
28
40
  .extend({
29
41
  robot: z.literal('/image/upscale'),
30
42
  // Outer optional preserves parsed input; normalization applies the published inner defaults.
31
43
  model: optionalWithV3Semantics(upscaleModelSchema)
32
- .describe(`The AI model to use for image upscaling. Defaults to ${upscaleModelSchema.parse(undefined)}.`),
44
+ .describe(`The AI model to use for image upscaling. Defaults to ${upscaleModelSchema.parse(undefined)}. Real-ESRGAN inputs exceeding ${formatEnglishInteger(realEsrganMaxInputPixels)} pixels are resized proportionally before upscaling.`),
33
45
  scale: optionalWithV3Semantics(upscaleScaleSchema)
34
- .describe(`Upscale factor. Defaults to ${upscaleScaleSchema.parse(undefined)}.`),
46
+ .describe(`Upscale factor, applied after any input resizing. Defaults to ${upscaleScaleSchema.parse(undefined)}. GFPGAN results are resized after restoration to match this factor.`),
35
47
  face_enhance: optionalWithV3Semantics(upscaleFaceEnhanceSchema)
36
48
  .describe(`Enable face enhancement for better face restoration. Defaults to ${upscaleFaceEnhanceSchema.parse(undefined)}.`),
37
49
  })
@@ -42,10 +42,10 @@ export declare const robotMegaStoreInstructionsSchema: z.ZodObject<{
42
42
  secret: z.ZodOptional<z.ZodString>;
43
43
  robot: z.ZodLiteral<"/mega/store">;
44
44
  path: z.ZodDefault<z.ZodString>;
45
- acl: z.ZodDefault<z.ZodEnum<{
45
+ acl: z.ZodDefault<z.ZodDefault<z.ZodEnum<{
46
46
  private: "private";
47
47
  "public-read": "public-read";
48
- }>>;
48
+ }>>>;
49
49
  headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
50
50
  sign_urls_for: z.ZodOptional<z.ZodNumber>;
51
51
  }, z.core.$strict>;
@@ -90,10 +90,10 @@ export declare const robotMegaStoreInstructionsWithHiddenFieldsSchema: z.ZodObje
90
90
  secret: z.ZodOptional<z.ZodString>;
91
91
  robot: z.ZodLiteral<"/mega/store">;
92
92
  path: z.ZodDefault<z.ZodString>;
93
- acl: z.ZodDefault<z.ZodEnum<{
93
+ acl: z.ZodDefault<z.ZodDefault<z.ZodEnum<{
94
94
  private: "private";
95
95
  "public-read": "public-read";
96
- }>>;
96
+ }>>>;
97
97
  headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
98
98
  sign_urls_for: z.ZodOptional<z.ZodNumber>;
99
99
  result: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"debug">, z.ZodDefault<z.ZodBoolean>]>>;
@@ -138,10 +138,10 @@ export declare const robotMegaStoreInstructionsWithHiddenFieldsSchema: z.ZodObje
138
138
  secret: z.ZodOptional<z.ZodString>;
139
139
  robot: z.ZodLiteral<"/mega/store">;
140
140
  path: z.ZodPrefault<z.ZodString>;
141
- acl: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
141
+ acl: z.ZodPrefault<z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
142
142
  private: "private";
143
143
  "public-read": "public-read";
144
- }>]>>;
144
+ }>]>>>;
145
145
  headers: z.ZodPrefault<z.ZodRecord<z.ZodString, z.ZodString>>;
146
146
  sign_urls_for: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
147
147
  }, z.core.$strict>, interpolatableRobotMegaStoreInstructionsWithHiddenFieldsSchema: z.ZodObject<{
@@ -184,10 +184,10 @@ export declare const robotMegaStoreInstructionsWithHiddenFieldsSchema: z.ZodObje
184
184
  secret: z.ZodOptional<z.ZodString>;
185
185
  robot: z.ZodLiteral<"/mega/store">;
186
186
  path: z.ZodPrefault<z.ZodString>;
187
- acl: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
187
+ acl: z.ZodPrefault<z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
188
188
  private: "private";
189
189
  "public-read": "public-read";
190
- }>]>>;
190
+ }>]>>>;
191
191
  headers: z.ZodPrefault<z.ZodRecord<z.ZodString, z.ZodString>>;
192
192
  sign_urls_for: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
193
193
  result: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodUnion<[z.ZodString, z.ZodLiteral<"debug">]>, z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>]>>;
@@ -19,7 +19,7 @@ export const robotMegaStoreInstructionsSchema = robotBase
19
19
  The URL to the result file will be returned in the <dfn>Assembly Status JSON</dfn>.
20
20
  `),
21
21
  path: storeFilePath,
22
- acl: storageAcl,
22
+ acl: storageAcl.default('private'),
23
23
  headers: z.record(z.string(), z.string())
24
24
  .default({ 'Content-Type': '${file.mime}' })
25
25
  .describe(`
@@ -45,8 +45,13 @@ export declare const robotS3StoreInstructionsSchema: z.ZodObject<{
45
45
  acl: z.ZodDefault<z.ZodEnum<{
46
46
  private: "private";
47
47
  "public-read": "public-read";
48
+ "authenticated-read": "authenticated-read";
49
+ "bucket-owner-full-control": "bucket-owner-full-control";
50
+ "aws-exec-read": "aws-exec-read";
48
51
  "bucket-default": "bucket-default";
52
+ "bucket-owner-read": "bucket-owner-read";
49
53
  public: "public";
54
+ "public-read-write": "public-read-write";
50
55
  }>>;
51
56
  check_integrity: z.ZodDefault<z.ZodBoolean>;
52
57
  headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -103,8 +108,13 @@ export declare const robotS3StoreInstructionsWithHiddenFieldsSchema: z.ZodObject
103
108
  acl: z.ZodDefault<z.ZodEnum<{
104
109
  private: "private";
105
110
  "public-read": "public-read";
111
+ "authenticated-read": "authenticated-read";
112
+ "bucket-owner-full-control": "bucket-owner-full-control";
113
+ "aws-exec-read": "aws-exec-read";
106
114
  "bucket-default": "bucket-default";
115
+ "bucket-owner-read": "bucket-owner-read";
107
116
  public: "public";
117
+ "public-read-write": "public-read-write";
108
118
  }>>;
109
119
  check_integrity: z.ZodDefault<z.ZodBoolean>;
110
120
  headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -159,8 +169,13 @@ export declare const robotS3StoreInstructionsWithHiddenFieldsSchema: z.ZodObject
159
169
  acl: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
160
170
  private: "private";
161
171
  "public-read": "public-read";
172
+ "authenticated-read": "authenticated-read";
173
+ "bucket-owner-full-control": "bucket-owner-full-control";
174
+ "aws-exec-read": "aws-exec-read";
162
175
  "bucket-default": "bucket-default";
176
+ "bucket-owner-read": "bucket-owner-read";
163
177
  public: "public";
178
+ "public-read-write": "public-read-write";
164
179
  }>]>>;
165
180
  check_integrity: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
166
181
  headers: z.ZodPrefault<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -212,8 +227,13 @@ export declare const robotS3StoreInstructionsWithHiddenFieldsSchema: z.ZodObject
212
227
  acl: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
213
228
  private: "private";
214
229
  "public-read": "public-read";
230
+ "authenticated-read": "authenticated-read";
231
+ "bucket-owner-full-control": "bucket-owner-full-control";
232
+ "aws-exec-read": "aws-exec-read";
215
233
  "bucket-default": "bucket-default";
234
+ "bucket-owner-read": "bucket-owner-read";
216
235
  public: "public";
236
+ "public-read-write": "public-read-write";
217
237
  }>]>>;
218
238
  check_integrity: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
219
239
  headers: z.ZodPrefault<z.ZodRecord<z.ZodString, z.ZodString>>;
@@ -1 +1 @@
1
- {"version":3,"file":"s3-store.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/s3-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAgB1B,eAAO,MAAM,IAAI,EAAE,cAYlB,CAAA;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4GhC,CAAA;AAEX,QAAA,MAAM,YAAY;;CAMjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,8BAA8B,CAAC,KAAK,EAC3C,OAAO,YAAY,CAC8D,CAAA;AAEnF,eAAO,MACa,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAChD,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAC5B,4DAA4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAC3E,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAC7D,MAAM,MAAM,6BAA6B,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;AACjE,MAAM,MAAM,wCAAwC,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACnF,MAAM,MAAM,sCAAsC,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACxF,MAAM,MAAM,2CAA2C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC7F,MAAM,MAAM,sDAAsD,GAChE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,2DAA2D,GACrE,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
1
+ {"version":3,"file":"s3-store.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/s3-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AA4B1B,eAAO,MAAM,IAAI,EAAE,cAYlB,CAAA;AAED,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4GhC,CAAA;AAEX,QAAA,MAAM,YAAY;;CAMjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,8BAA8B,CAAC,KAAK,EAC3C,OAAO,YAAY,CAC8D,CAAA;AAEnF,eAAO,MACa,8CAA8C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAChD,4CAA4C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAC5B,4DAA4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAC3E,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAC7D,MAAM,MAAM,6BAA6B,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;AACjE,MAAM,MAAM,wCAAwC,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACnF,MAAM,MAAM,sCAAsC,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACxF,MAAM,MAAM,2CAA2C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC7F,MAAM,MAAM,sDAAsD,GAChE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,2DAA2D,GACrE,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
@@ -2,7 +2,19 @@ import { optionalWithV3Semantics } from "../lib/sdkZodOptional.js";
2
2
  import { z } from 'zod/v4';
3
3
  import { createStorageStoreExample, defineRobotWithHiddenFields, robotBase, robotStoreMeta, robotUse, s3Base, storeFilePath, } from "./_instructions-primitives.js";
4
4
  const s3StoreAclSchema = z
5
- .enum(['bucket-default', 'private', 'public', 'public-read'])
5
+ // AWS object canned ACLs, plus the existing omission sentinel and legacy `public` value.
6
+ // `log-delivery-write` is bucket-only: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl
7
+ .enum([
8
+ 'authenticated-read',
9
+ 'aws-exec-read',
10
+ 'bucket-default',
11
+ 'bucket-owner-full-control',
12
+ 'bucket-owner-read',
13
+ 'private',
14
+ 'public',
15
+ 'public-read',
16
+ 'public-read-write',
17
+ ])
6
18
  .default('public-read');
7
19
  export const meta = {
8
20
  ...robotStoreMeta,
@@ -78,7 +90,7 @@ Short-lived AWS credentials are a matching set of \`key\`, \`secret\` and \`sess
78
90
  The URL prefix used for the returned URL, such as \`"http://my.cdn.com/some/path/"\`.
79
91
  `),
80
92
  acl: s3StoreAclSchema.describe(`
81
- The ACL used for this file. The default remains \`"${s3StoreAclSchema.parse(undefined)}"\`, which can conflict with S3 Block Public Access and disabled ACLs. For modern private buckets, explicitly set \`"bucket-default"\` to omit the generated ACL header, and do not supply ACL/grant headers in \`headers\`. \`"private"\` still sends an ACL.
93
+ The ACL used for this file. Supports AWS’s [canned ACLs for objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl). Other S3-compatible providers may support different ACLs. The default remains \`"${s3StoreAclSchema.parse(undefined)}"\`, which can conflict with S3 Block Public Access and disabled ACLs. For modern private buckets, explicitly set \`"bucket-default"\` to omit the generated ACL header, and do not supply ACL/grant headers in \`headers\`. \`"private"\` still sends an ACL.
82
94
  `),
83
95
  check_integrity: z
84
96
  .boolean()
@@ -1,5 +1,7 @@
1
1
  import type { RobotDefinitionWithHiddenFields, RobotMetaInput, RobotSchemaVariantTypes } from './_instructions-primitives.ts';
2
2
  import { z } from 'zod/v4';
3
+ /** Shared vocabulary limits keep inline hints within GCP and Whisper prompt budgets. */
4
+ export declare const speechTranscribeVocabularySchema: z.ZodArray<z.ZodString>;
3
5
  export declare const meta: RobotMetaInput;
4
6
  export declare const robotSpeechTranscribeInstructionsSchema: z.ZodObject<{
5
7
  interpolate: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
@@ -41,6 +43,7 @@ export declare const robotSpeechTranscribeInstructionsSchema: z.ZodObject<{
41
43
  replicate: "replicate";
42
44
  auto: "auto";
43
45
  }>>;
46
+ vocabulary: z.ZodOptional<z.ZodArray<z.ZodString>>;
44
47
  granularity: z.ZodDefault<z.ZodEnum<{
45
48
  full: "full";
46
49
  list: "list";
@@ -103,6 +106,7 @@ export declare const robotSpeechTranscribeInstructionsWithHiddenFieldsSchema: z.
103
106
  fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
104
107
  }, z.core.$strict>]>>;
105
108
  robot: z.ZodLiteral<"/speech/transcribe">;
109
+ vocabulary: z.ZodOptional<z.ZodArray<z.ZodString>>;
106
110
  granularity: z.ZodDefault<z.ZodEnum<{
107
111
  full: "full";
108
112
  list: "list";
@@ -169,6 +173,7 @@ export declare const robotSpeechTranscribeInstructionsWithHiddenFieldsSchema: z.
169
173
  replicate: "replicate";
170
174
  auto: "auto";
171
175
  }>]>>;
176
+ vocabulary: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString>]>>;
172
177
  granularity: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
173
178
  full: "full";
174
179
  list: "list";
@@ -217,6 +222,7 @@ export declare const robotSpeechTranscribeInstructionsWithHiddenFieldsSchema: z.
217
222
  fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
218
223
  }, z.core.$strict>]>>;
219
224
  robot: z.ZodLiteral<"/speech/transcribe">;
225
+ vocabulary: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString>]>>;
220
226
  granularity: z.ZodPrefault<z.ZodUnion<[z.ZodString, z.ZodEnum<{
221
227
  full: "full";
222
228
  list: "list";
@@ -1 +1 @@
1
- {"version":3,"file":"speech-transcribe.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/speech-transcribe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAiB1B,eAAO,MAAM,IAAI,EAAE,cA2BlB,CAAA;AAED,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqGzC,CAAA;AAEX,QAAA,MAAM,YAAY;;;;;;;;;;;CAGjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,uCAAuC,CAAC,KAAK,EACpD,OAAO,YAAY,CACuE,CAAA;AAE5F,eAAO,MACa,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACzD,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAEnE,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBACtD,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,iCAAiC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AACtE,MAAM,MAAM,iDAAiD,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AAC5F,MAAM,MAAM,+CAA+C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACjG,MAAM,MAAM,oDAAoD,GAC9D,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACrC,MAAM,MAAM,+DAA+D,GACzE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,oEAAoE,GAC9E,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
1
+ {"version":3,"file":"speech-transcribe.d.ts","sourceRoot":"","sources":["../../../src/v4/robots/speech-transcribe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAkB1B,wFAAwF;AACxF,eAAO,MAAM,gCAAgC,yBAoB5C,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,cA2BlB,CAAA;AAED,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0HzC,CAAA;AAEX,QAAA,MAAM,YAAY;;;;;;;;;;;CAGjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,uCAAuC,CAAC,KAAK,EACpD,OAAO,YAAY,CACuE,CAAA;AAE5F,eAAO,MACa,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBACzD,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAEnE,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBACtD,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,iCAAiC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AACtE,MAAM,MAAM,iDAAiD,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AAC5F,MAAM,MAAM,+CAA+C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACjG,MAAM,MAAM,oDAAoD,GAC9D,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACrC,MAAM,MAAM,+DAA+D,GACzE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,oEAAoE,GAC9E,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
@@ -1,10 +1,29 @@
1
1
  import { optionalWithV3Semantics } from "../lib/sdkZodOptional.js";
2
2
  import { z } from 'zod/v4';
3
+ import { zodWithConservativeJsonInputSchema } from "../lib/zodInputSemantics.js";
3
4
  import { autoProviderDescription, createProcessingExample, defineRobotWithHiddenFields, granularitySchema, robotArtificialIntelligenceMeta, robotBase, robotUse, } from "./_instructions-primitives.js";
4
5
  const speechTranscribeProviderSchema = z.enum(['auto', 'aws', 'gcp', 'replicate']).default('auto');
5
6
  const speechTranscribeProviderWithHiddenFieldsSchema = z
6
7
  .enum(['auto', 'aws', 'gcp', 'replicate', 'transloadit'])
7
8
  .default('auto');
9
+ /** Shared vocabulary limits keep inline hints within GCP and Whisper prompt budgets. */
10
+ export const speechTranscribeVocabularySchema = zodWithConservativeJsonInputSchema(z
11
+ .array(z
12
+ .string()
13
+ .trim()
14
+ .min(1)
15
+ .max(100)
16
+ .regex(/^[^\p{Cc}]+$/u))
17
+ .max(50)
18
+ .refine((terms) => new Set(terms.map((term) => term.toLowerCase())).size === terms.length, {
19
+ message: 'Vocabulary terms must be unique, ignoring case.',
20
+ })
21
+ // Byte-level tokenization uses at most one token per byte. Reserve room for sentence styling.
22
+ .refine((terms) => new TextEncoder().encode(terms.join(', ')).byteLength <= 200, {
23
+ message: 'Vocabulary terms joined with comma-space must not exceed 200 UTF-8 bytes.',
24
+ }),
25
+ // Trimming, Unicode case uniqueness and a joined UTF-8 budget have no portable JSON Schema form.
26
+ z.array(z.string().min(1)).max(50));
8
27
  export const meta = {
9
28
  ...robotArtificialIntelligenceMeta,
10
29
  example_code: createProcessingExample('transcribed', '/speech/transcribe', {
@@ -59,7 +78,8 @@ recurring speakers:
59
78
  \`\`\`
60
79
 
61
80
  Speaker labels are currently supported by the \`aws\` and \`gcp\` providers. If you enable
62
- \`speaker_labels\` without setting \`provider\`, Transloadit uses \`aws\` for that <dfn>Step</dfn>. Labels
81
+ \`speaker_labels\` without setting \`provider\`, Transloadit uses \`aws\` for that <dfn>Step</dfn>, or
82
+ \`gcp\` when \`vocabulary\` is also supplied. Labels
63
83
  are normalized as \`speaker_1\`, \`speaker_2\`, and so on:
64
84
 
65
85
  \`\`\`json
@@ -82,7 +102,27 @@ ${autoProviderDescription}
82
102
 
83
103
  Set this to \`"aws"\`, \`"gcp"\`, or \`"replicate"\` to force a specific provider.
84
104
  When set to \`"auto"\`, Transloadit uses \`"replicate"\` by default and uses \`"aws"\` when
85
- \`speaker_labels\` is enabled.
105
+ \`speaker_labels\` is enabled. If both \`speaker_labels\` and a nonempty \`vocabulary\` are set,
106
+ \`"auto"\` uses \`"gcp"\`.
107
+ `),
108
+ vocabulary: optionalWithV3Semantics(speechTranscribeVocabularySchema).describe(`
109
+ Words or phrases to favor during speech recognition, using the spelling you want in the output.
110
+ For example, \`["Transloadit", "Uppy", "tus"]\` helps the provider recognize brand and product names.
111
+
112
+ Supply up to 50 distinct terms, each between 1 and 100 characters after trimming surrounding
113
+ whitespace. Terms must not contain control characters or case-insensitive duplicates. The terms
114
+ joined with \`", "\` must fit within 200 UTF-8 bytes, keeping all terms within Whisper’s prompt
115
+ budget. Omitting this parameter or supplying an empty array leaves recognition unchanged.
116
+
117
+ Supported by \`"replicate"\` and \`"gcp"\`. Replicate uses a prompt-capable WhisperX large-v3 model
118
+ with aligned word timestamps when vocabulary is supplied. GCP uses inline boosted phrase hints.
119
+ Explicit \`"aws"\` requests with vocabulary return a validation error because AWS requires a
120
+ pre-created Custom Vocabulary. Use \`"auto"\`, \`"replicate"\`, or \`"gcp"\` instead.
121
+
122
+ Hints improve recognition but do not guarantee that a term is recognized. Afterwards, complete
123
+ case-insensitive matches use your supplied spelling in every output format, including JSON words
124
+ and speaker segments, without changing timestamps. Similar-sounding words are never replaced:
125
+ \`"transloadit"\` becomes \`"Transloadit"\`, but \`"Transloaded"\` stays unchanged.
86
126
  `),
87
127
  granularity: granularitySchema.describe(`
88
128
  Both \`"full"\` and \`"list"\` currently return the same complete transcription response. \`"list"\` remains accepted for backward compatibility.