@giveitsmaller/contracts 0.73.0 → 0.76.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 (551) hide show
  1. package/README.md +2 -2
  2. package/accepted-options/accepted-options.json +1 -1
  3. package/accepted-options/image-output-routes.json +1 -1
  4. package/asyncapi/events.yaml +200 -62
  5. package/availability/availability.json +71 -39
  6. package/code-builder/code-builder-metadata.json +134 -39
  7. package/dist/asyncapi/ErrorCode.d.ts +1 -0
  8. package/dist/asyncapi/ErrorCode.js +1 -0
  9. package/dist/asyncapi/Failure.d.ts +2 -0
  10. package/dist/asyncapi/LongFormJobMessage.d.ts +1 -0
  11. package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
  12. package/dist/asyncapi/OperationMetrics.d.ts +2 -0
  13. package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
  14. package/dist/openapi/models/AccountLimitEntry.d.ts +2 -2
  15. package/dist/openapi/models/AccountLimitEntry.js +2 -2
  16. package/dist/openapi/models/AccountLimits.d.ts +2 -2
  17. package/dist/openapi/models/AccountLimits.js +2 -2
  18. package/dist/openapi/models/AccountLimitsLimits.d.ts +14 -2
  19. package/dist/openapi/models/AccountLimitsLimits.js +6 -2
  20. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +2 -2
  21. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +2 -2
  22. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  23. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  24. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  25. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  26. package/dist/openapi/models/AuthErrorResponse.d.ts +14 -5
  27. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  28. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  29. package/dist/openapi/models/AuthErrorType.js +2 -2
  30. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +2 -2
  31. package/dist/openapi/models/AuthRejectionEnvelope.js +2 -2
  32. package/dist/openapi/models/AuthenticatedIdentity.d.ts +2 -2
  33. package/dist/openapi/models/AuthenticatedIdentity.js +2 -2
  34. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  35. package/dist/openapi/models/AvailabilityValue.js +2 -2
  36. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +14 -5
  37. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  38. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  39. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  40. package/dist/openapi/models/BillingCheckoutRequest.d.ts +2 -2
  41. package/dist/openapi/models/BillingCheckoutRequest.js +2 -2
  42. package/dist/openapi/models/BillingCheckoutSession.d.ts +2 -2
  43. package/dist/openapi/models/BillingCheckoutSession.js +2 -2
  44. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +2 -2
  45. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +2 -2
  46. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  47. package/dist/openapi/models/CallbackEventType.js +2 -2
  48. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +2 -2
  49. package/dist/openapi/models/CancelAccountDeletion200Response.js +2 -2
  50. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +2 -2
  51. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +2 -2
  52. package/dist/openapi/models/CapabilityCondition.d.ts +2 -2
  53. package/dist/openapi/models/CapabilityCondition.js +2 -2
  54. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +2 -2
  55. package/dist/openapi/models/CapabilityConditionOneOf.js +2 -2
  56. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +2 -2
  57. package/dist/openapi/models/CapabilityConditionOneOf1.js +2 -2
  58. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +2 -2
  59. package/dist/openapi/models/CapabilityConditionOneOf2.js +2 -2
  60. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +2 -2
  61. package/dist/openapi/models/CapabilityConditionOneOf3.js +2 -2
  62. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +2 -2
  63. package/dist/openapi/models/CapabilityConditionOneOf4.js +2 -2
  64. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +2 -2
  65. package/dist/openapi/models/CapabilityConditionOneOf5.js +2 -2
  66. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +2 -2
  67. package/dist/openapi/models/CapabilityConditionOneOf6.js +2 -2
  68. package/dist/openapi/models/CapabilityConstraint.d.ts +2 -2
  69. package/dist/openapi/models/CapabilityConstraint.js +2 -2
  70. package/dist/openapi/models/CapabilityInputSpec.d.ts +2 -2
  71. package/dist/openapi/models/CapabilityInputSpec.js +2 -2
  72. package/dist/openapi/models/CapabilityProduces.d.ts +2 -2
  73. package/dist/openapi/models/CapabilityProduces.js +2 -2
  74. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +2 -2
  75. package/dist/openapi/models/CapabilityProducesOneOf.js +2 -2
  76. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +2 -2
  77. package/dist/openapi/models/CapabilityProducesOneOf1.js +2 -2
  78. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +2 -2
  79. package/dist/openapi/models/CapabilityProducesOneOf2.js +2 -2
  80. package/dist/openapi/models/ChangePasswordRequest.d.ts +2 -2
  81. package/dist/openapi/models/ChangePasswordRequest.js +2 -2
  82. package/dist/openapi/models/CheckoutSessionStatusResponse.d.ts +46 -0
  83. package/dist/openapi/models/CheckoutSessionStatusResponse.js +54 -0
  84. package/dist/openapi/models/CheckoutSessionStatusResponseData.d.ts +50 -0
  85. package/dist/openapi/models/CheckoutSessionStatusResponseData.js +55 -0
  86. package/dist/openapi/models/CodegenSource.d.ts +5 -4
  87. package/dist/openapi/models/CodegenSource.js +2 -2
  88. package/dist/openapi/models/CodegenSourceInput.d.ts +2 -2
  89. package/dist/openapi/models/CodegenSourceInput.js +2 -2
  90. package/dist/openapi/models/CodegenSourceJob.d.ts +2 -2
  91. package/dist/openapi/models/CodegenSourceJob.js +2 -2
  92. package/dist/openapi/models/CodegenSourceJobSource.d.ts +2 -2
  93. package/dist/openapi/models/CodegenSourceJobSource.js +2 -2
  94. package/dist/openapi/models/CodegenSourceOperation.d.ts +2 -2
  95. package/dist/openapi/models/CodegenSourceOperation.js +2 -2
  96. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +2 -2
  97. package/dist/openapi/models/CodegenUploadPlaceholder.js +2 -2
  98. package/dist/openapi/models/CompositionPlan.d.ts +2 -2
  99. package/dist/openapi/models/CompositionPlan.js +2 -2
  100. package/dist/openapi/models/CompositionPlanJob.d.ts +2 -2
  101. package/dist/openapi/models/CompositionPlanJob.js +2 -2
  102. package/dist/openapi/models/CompositionPlanOperation.d.ts +2 -2
  103. package/dist/openapi/models/CompositionPlanOperation.js +2 -2
  104. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +2 -2
  105. package/dist/openapi/models/ConfirmEmailChange200Response.js +2 -2
  106. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +2 -2
  107. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +2 -2
  108. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +2 -2
  109. package/dist/openapi/models/ConfirmEmailChangeRequest.js +2 -2
  110. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  111. package/dist/openapi/models/ConnectionSource.js +2 -2
  112. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  113. package/dist/openapi/models/ContactRequest.js +2 -2
  114. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  115. package/dist/openapi/models/ContactSubject.js +2 -2
  116. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  117. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  118. package/dist/openapi/models/CreateApiKey201Response.d.ts +2 -2
  119. package/dist/openapi/models/CreateApiKey201Response.js +2 -2
  120. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +2 -2
  121. package/dist/openapi/models/CreateApiKey201ResponseData.js +2 -2
  122. package/dist/openapi/models/CreateApiKeyRequest.d.ts +2 -2
  123. package/dist/openapi/models/CreateApiKeyRequest.js +2 -2
  124. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +2 -2
  125. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +2 -2
  126. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  127. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  128. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  129. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  130. package/dist/openapi/models/CreateWorkflow401Response.d.ts +14 -5
  131. package/dist/openapi/models/CreateWorkflow401Response.js +2 -2
  132. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  133. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  134. package/dist/openapi/models/CreditTransaction.d.ts +22 -12
  135. package/dist/openapi/models/CreditTransaction.js +2 -2
  136. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  137. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  138. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  139. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  140. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  141. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  142. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  143. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  144. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  145. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  146. package/dist/openapi/models/Delivery.d.ts +2 -2
  147. package/dist/openapi/models/Delivery.js +2 -2
  148. package/dist/openapi/models/DeliveryOutputRef.d.ts +2 -2
  149. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  150. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  151. package/dist/openapi/models/DeliveryPlan.js +2 -2
  152. package/dist/openapi/models/DeliveryPlanOutput.d.ts +2 -2
  153. package/dist/openapi/models/DeliveryPlanOutput.js +2 -2
  154. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  155. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  156. package/dist/openapi/models/DeliverySelection.d.ts +2 -2
  157. package/dist/openapi/models/DeliverySelection.js +2 -2
  158. package/dist/openapi/models/DownloadBundle.d.ts +2 -2
  159. package/dist/openapi/models/DownloadBundle.js +2 -2
  160. package/dist/openapi/models/DroppedOption.d.ts +2 -2
  161. package/dist/openapi/models/DroppedOption.js +2 -2
  162. package/dist/openapi/models/EmailNotify.d.ts +2 -2
  163. package/dist/openapi/models/EmailNotify.js +2 -2
  164. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +2 -2
  165. package/dist/openapi/models/EmptySuccessEnvelope.js +2 -2
  166. package/dist/openapi/models/EndpointProjection.d.ts +2 -2
  167. package/dist/openapi/models/EndpointProjection.js +2 -2
  168. package/dist/openapi/models/EndpointProjectionServersInner.d.ts +2 -2
  169. package/dist/openapi/models/EndpointProjectionServersInner.js +2 -2
  170. package/dist/openapi/models/ErrorEnvelope.d.ts +14 -5
  171. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  172. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  173. package/dist/openapi/models/EstimateQuality.js +2 -2
  174. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  175. package/dist/openapi/models/EstimateRange.js +2 -2
  176. package/dist/openapi/models/ExportAccountData200Response.d.ts +2 -2
  177. package/dist/openapi/models/ExportAccountData200Response.js +2 -2
  178. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +2 -2
  179. package/dist/openapi/models/ExportAccountData200ResponseData.js +2 -2
  180. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  181. package/dist/openapi/models/ExternalDestination.js +2 -2
  182. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  183. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  184. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  185. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  186. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  187. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  188. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  189. package/dist/openapi/models/ExternalImportToken.js +2 -2
  190. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  191. package/dist/openapi/models/ExternalSource.js +2 -2
  192. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +14 -5
  193. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  194. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +14 -5
  195. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  196. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  197. package/dist/openapi/models/FeatureViolation.js +2 -2
  198. package/dist/openapi/models/GetProfile200Response.d.ts +2 -2
  199. package/dist/openapi/models/GetProfile200Response.js +2 -2
  200. package/dist/openapi/models/GetProfile200ResponseData.d.ts +2 -2
  201. package/dist/openapi/models/GetProfile200ResponseData.js +2 -2
  202. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +2 -2
  203. package/dist/openapi/models/ImageEncodeCapabilities.js +2 -2
  204. package/dist/openapi/models/JobDefinition.d.ts +2 -2
  205. package/dist/openapi/models/JobDefinition.js +2 -2
  206. package/dist/openapi/models/JobDownload.d.ts +2 -2
  207. package/dist/openapi/models/JobDownload.js +2 -2
  208. package/dist/openapi/models/JobInputV2.d.ts +2 -2
  209. package/dist/openapi/models/JobInputV2.js +2 -2
  210. package/dist/openapi/models/JobMediaClass.d.ts +2 -2
  211. package/dist/openapi/models/JobMediaClass.js +2 -2
  212. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  213. package/dist/openapi/models/JobOutputSource.js +2 -2
  214. package/dist/openapi/models/JobResponse.d.ts +2 -2
  215. package/dist/openapi/models/JobResponse.js +2 -2
  216. package/dist/openapi/models/JobStatus.d.ts +2 -2
  217. package/dist/openapi/models/JobStatus.js +2 -2
  218. package/dist/openapi/models/JobType.d.ts +2 -2
  219. package/dist/openapi/models/JobType.js +2 -2
  220. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  221. package/dist/openapi/models/LivenessResponse.js +2 -2
  222. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  223. package/dist/openapi/models/LoginUser200Response.js +2 -2
  224. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  225. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  226. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  227. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  228. package/dist/openapi/models/LoginUser401Response.d.ts +14 -5
  229. package/dist/openapi/models/LoginUser401Response.js +2 -2
  230. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  231. package/dist/openapi/models/LoginUserRequest.js +2 -2
  232. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +14 -5
  233. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +2 -2
  234. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +2 -2
  235. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +2 -2
  236. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  237. package/dist/openapi/models/MetadataResponse.js +2 -2
  238. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  239. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  240. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  241. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  242. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  243. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  244. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  245. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  246. package/dist/openapi/models/MimeGroupSchema.d.ts +39 -3
  247. package/dist/openapi/models/MimeGroupSchema.js +12 -2
  248. package/dist/openapi/models/MultiInputSource.d.ts +2 -2
  249. package/dist/openapi/models/MultiInputSource.js +2 -2
  250. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  251. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  252. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  253. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  254. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  255. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  256. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  257. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  258. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  259. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  260. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  261. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  262. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  263. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  264. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  265. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  266. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  267. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  268. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  269. package/dist/openapi/models/MultipartPartListing.js +2 -2
  270. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  271. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  272. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  273. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  274. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  275. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  276. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  277. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  278. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  279. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  280. package/dist/openapi/models/NotifyConfig.d.ts +9 -5
  281. package/dist/openapi/models/NotifyConfig.js +2 -2
  282. package/dist/openapi/models/OperationCapability.d.ts +2 -2
  283. package/dist/openapi/models/OperationCapability.js +2 -2
  284. package/dist/openapi/models/OperationDefinition.d.ts +2 -2
  285. package/dist/openapi/models/OperationDefinition.js +2 -2
  286. package/dist/openapi/models/OperationDownload.d.ts +2 -2
  287. package/dist/openapi/models/OperationDownload.js +2 -2
  288. package/dist/openapi/models/OperationInputModel.d.ts +2 -2
  289. package/dist/openapi/models/OperationInputModel.js +2 -2
  290. package/dist/openapi/models/OperationMessageParamsValue.d.ts +25 -0
  291. package/dist/openapi/models/OperationMessageParamsValue.js +31 -0
  292. package/dist/openapi/models/OperationResponse.d.ts +36 -2
  293. package/dist/openapi/models/OperationResponse.js +8 -2
  294. package/dist/openapi/models/OperationResult.d.ts +2 -2
  295. package/dist/openapi/models/OperationResult.js +2 -2
  296. package/dist/openapi/models/OperationResultMetadata.d.ts +29 -3
  297. package/dist/openapi/models/OperationResultMetadata.js +6 -2
  298. package/dist/openapi/models/OperationResultMetrics.d.ts +2 -2
  299. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  300. package/dist/openapi/models/OperationSchemaDefinition.d.ts +5 -6
  301. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  302. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  303. package/dist/openapi/models/OperationStatus.js +2 -2
  304. package/dist/openapi/models/OperationType.d.ts +10 -4
  305. package/dist/openapi/models/OperationType.js +10 -4
  306. package/dist/openapi/models/OperationsSchemaResponse.d.ts +2 -2
  307. package/dist/openapi/models/OperationsSchemaResponse.js +2 -2
  308. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
  309. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
  310. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
  311. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
  312. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
  313. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
  314. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
  315. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
  316. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +2 -2
  317. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +2 -2
  318. package/dist/openapi/models/OptionSchema.d.ts +36 -2
  319. package/dist/openapi/models/OptionSchema.js +10 -2
  320. package/dist/openapi/models/OutputProperties.d.ts +2 -2
  321. package/dist/openapi/models/OutputProperties.js +2 -2
  322. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +2 -2
  323. package/dist/openapi/models/OutputPropertiesIsAnimated.js +2 -2
  324. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +2 -2
  325. package/dist/openapi/models/PerClassAvailabilityEntry.js +2 -2
  326. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  327. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  328. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  329. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  330. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  331. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  332. package/dist/openapi/models/ProbePendingResponse.d.ts +14 -5
  333. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  334. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  335. package/dist/openapi/models/ProcessingClass.js +2 -2
  336. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  337. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  338. package/dist/openapi/models/ProcessingClassConstraints.d.ts +2 -2
  339. package/dist/openapi/models/ProcessingClassConstraints.js +2 -2
  340. package/dist/openapi/models/ProcessingClassEntry.d.ts +2 -2
  341. package/dist/openapi/models/ProcessingClassEntry.js +2 -2
  342. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +14 -5
  343. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  344. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  345. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  346. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  347. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  348. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  349. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  350. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  351. package/dist/openapi/models/ProcessingPlan.js +2 -2
  352. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  353. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  354. package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
  355. package/dist/openapi/models/ReEncodeDecision.js +2 -2
  356. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  357. package/dist/openapi/models/ReadinessResponse.js +2 -2
  358. package/dist/openapi/models/RegisterUser422Response.d.ts +2 -2
  359. package/dist/openapi/models/RegisterUser422Response.js +2 -2
  360. package/dist/openapi/models/RegisterUserRequest.d.ts +2 -2
  361. package/dist/openapi/models/RegisterUserRequest.js +2 -2
  362. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +2 -2
  363. package/dist/openapi/models/RequestAccountDeletion200Response.js +2 -2
  364. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +2 -2
  365. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +2 -2
  366. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +2 -2
  367. package/dist/openapi/models/RequestAccountDeletionRequest.js +2 -2
  368. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +2 -2
  369. package/dist/openapi/models/ResendVerificationEmailRequest.js +2 -2
  370. package/dist/openapi/models/ResetPasswordRequest.d.ts +2 -2
  371. package/dist/openapi/models/ResetPasswordRequest.js +2 -2
  372. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  373. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  374. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  375. package/dist/openapi/models/RetryResponse.js +2 -2
  376. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  377. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  378. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  379. package/dist/openapi/models/SseCompletionBase.js +2 -2
  380. package/dist/openapi/models/SseConnectionLimitResponse.d.ts +14 -5
  381. package/dist/openapi/models/SseConnectionLimitResponse.js +2 -2
  382. package/dist/openapi/models/SseEventType.d.ts +2 -2
  383. package/dist/openapi/models/SseEventType.js +2 -2
  384. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  385. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  386. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  387. package/dist/openapi/models/SseJobFailedData.js +2 -2
  388. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  389. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  390. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  391. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  392. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  393. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  394. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  395. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  396. package/dist/openapi/models/SseOperationCompletedData.d.ts +2 -2
  397. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  398. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  399. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  400. package/dist/openapi/models/SseOperationFailedData.d.ts +33 -2
  401. package/dist/openapi/models/SseOperationFailedData.js +8 -2
  402. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  403. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  404. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  405. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  406. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  407. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  408. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  409. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  410. package/dist/openapi/models/TierRestrictionResponse.d.ts +14 -5
  411. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  412. package/dist/openapi/models/UpdateProfile200Response.d.ts +2 -2
  413. package/dist/openapi/models/UpdateProfile200Response.js +2 -2
  414. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +2 -2
  415. package/dist/openapi/models/UpdateProfile200ResponseData.js +2 -2
  416. package/dist/openapi/models/UpdateProfile422Response.d.ts +2 -2
  417. package/dist/openapi/models/UpdateProfile422Response.js +2 -2
  418. package/dist/openapi/models/UpdateProfileRequest.d.ts +2 -2
  419. package/dist/openapi/models/UpdateProfileRequest.js +2 -2
  420. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  421. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  422. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +14 -5
  423. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  424. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  425. package/dist/openapi/models/UploadFile403Response.js +2 -2
  426. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  427. package/dist/openapi/models/UploadFile422Response.js +2 -2
  428. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
  429. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  430. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +4 -6
  431. package/dist/openapi/models/UploadProbeProcessingClass.js +4 -6
  432. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  433. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  434. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  435. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  436. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  437. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  438. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  439. package/dist/openapi/models/UploadResponse.js +2 -2
  440. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +14 -5
  441. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  442. package/dist/openapi/models/UploadSource.d.ts +2 -2
  443. package/dist/openapi/models/UploadSource.js +2 -2
  444. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  445. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  446. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  447. package/dist/openapi/models/UploadThresholds.js +2 -2
  448. package/dist/openapi/models/UserTier.d.ts +2 -2
  449. package/dist/openapi/models/UserTier.js +2 -2
  450. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +19 -8
  451. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  452. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  453. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  454. package/dist/openapi/models/VerifyEmailRequest.d.ts +2 -2
  455. package/dist/openapi/models/VerifyEmailRequest.js +2 -2
  456. package/dist/openapi/models/WarningType.d.ts +2 -2
  457. package/dist/openapi/models/WarningType.js +2 -2
  458. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  459. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  460. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  461. package/dist/openapi/models/WebhookPayload.js +2 -2
  462. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +2 -2
  463. package/dist/openapi/models/WorkflowArchiveResponse.js +2 -2
  464. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +2 -2
  465. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +2 -2
  466. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +7 -6
  467. package/dist/openapi/models/WorkflowCancelBillingEffect.js +7 -6
  468. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  469. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  470. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  471. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  472. package/dist/openapi/models/WorkflowCreateRequest.d.ts +11 -14
  473. package/dist/openapi/models/WorkflowCreateRequest.js +2 -2
  474. package/dist/openapi/models/WorkflowCreateResponse.d.ts +2 -2
  475. package/dist/openapi/models/WorkflowCreateResponse.js +2 -2
  476. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  477. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  478. package/dist/openapi/models/WorkflowCreditSummary.d.ts +2 -2
  479. package/dist/openapi/models/WorkflowCreditSummary.js +2 -2
  480. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  481. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  482. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  483. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  484. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  485. package/dist/openapi/models/WorkflowEdge.js +2 -2
  486. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +14 -5
  487. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  488. package/dist/openapi/models/WorkflowListResponse.d.ts +2 -2
  489. package/dist/openapi/models/WorkflowListResponse.js +2 -2
  490. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +2 -2
  491. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +2 -2
  492. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  493. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  494. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  495. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  496. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  497. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  498. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  499. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  500. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +2 -2
  501. package/dist/openapi/models/WorkflowRestoreResponse.js +2 -2
  502. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +2 -2
  503. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +2 -2
  504. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  505. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  506. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  507. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  508. package/dist/openapi/models/WorkflowSource.d.ts +2 -2
  509. package/dist/openapi/models/WorkflowSource.js +2 -2
  510. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  511. package/dist/openapi/models/WorkflowStatus.js +2 -2
  512. package/dist/openapi/models/WorkflowStatusResponse.d.ts +5 -3
  513. package/dist/openapi/models/WorkflowStatusResponse.js +2 -2
  514. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  515. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  516. package/dist/openapi/models/WorkflowSummary.d.ts +2 -2
  517. package/dist/openapi/models/WorkflowSummary.js +2 -2
  518. package/dist/openapi/models/WorkflowSummaryJob.d.ts +2 -2
  519. package/dist/openapi/models/WorkflowSummaryJob.js +2 -2
  520. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  521. package/dist/openapi/models/WorkflowWarning.js +2 -2
  522. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  523. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  524. package/dist/openapi/models/index.d.ts +3 -0
  525. package/dist/openapi/models/index.js +3 -0
  526. package/dist/openapi/runtime.d.ts +2 -2
  527. package/dist/openapi/runtime.js +2 -2
  528. package/dist/operations/archive.metadata.js +1 -0
  529. package/dist/operations/audio_overlay.metadata.js +1 -0
  530. package/dist/operations/audio_to_video.metadata.js +1 -0
  531. package/dist/operations/audio_watermark.metadata.js +4 -9
  532. package/dist/operations/custom_luma.metadata.js +1 -0
  533. package/dist/operations/image_watermark.metadata.js +1 -0
  534. package/dist/operations/merge.metadata.js +1 -0
  535. package/dist/operations/metadata-types.d.ts +2 -0
  536. package/dist/operations/split.metadata.js +12 -3
  537. package/dist/operations/text_watermark.metadata.js +1 -0
  538. package/dist/operations/video_text_watermark.metadata.js +2 -0
  539. package/dist/operations/video_watermark.metadata.js +1 -0
  540. package/openapi/README.md +1 -1
  541. package/openapi/api.yaml +536 -145
  542. package/operation-capabilities/operation-capabilities.json +1 -1
  543. package/operations/schemas/audio_watermark.yaml +34 -33
  544. package/operations/schemas/compress.yaml +256 -163
  545. package/operations/schemas/convert.yaml +11 -0
  546. package/operations/schemas/merge.yaml +7 -1
  547. package/operations/schemas/split.yaml +133 -83
  548. package/operations/schemas/thumbnail.yaml +34 -26
  549. package/operations/schemas/video_text_watermark.yaml +57 -47
  550. package/operations/schemas/video_watermark.yaml +33 -28
  551. package/package.json +3 -3
@@ -191,15 +191,23 @@ operation:
191
191
  per_value_availability:
192
192
  auto: { availability: planned }
193
193
  smallest: { availability: planned }
194
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
195
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
196
+ # Output format. original = keep input format (default); webp = recompress to WebP.
197
+ # Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the convert operation.
198
+ # `auto` / `smallest` are PLANNED auto-format directives — the server encodes to several
199
+ # candidate formats and returns the best (`auto` = the most suitable; `smallest` = the
200
+ # absolute fewest bytes), reporting the chosen format via the result `mime_type`. They
201
+ # are selection strategies, not concrete targets, and stay `planned` until supported.
202
+ # See FORMAT.md.
194
203
  description: >-
195
204
  Output format. original = keep input format (default); webp = recompress to
196
205
  WebP. Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the
197
- convert operation. `auto` / `smallest` are PLANNED auto-format directives —
198
- the server encodes to several candidate formats and returns the best
199
- (`auto` = the most suitable; `smallest` = the absolute fewest bytes),
200
- reporting the chosen format via the result `mime_type`. They are selection
201
- strategies, not concrete targets, and stay `planned` until supported. See
202
- FORMAT.md.
206
+ convert operation. `auto` / `smallest` are PLANNED auto-format directives — the
207
+ server encodes to several candidate formats and returns the best (`auto` = the
208
+ most suitable; `smallest` = the absolute fewest bytes), reporting the chosen
209
+ format via the result `mime_type`. They are selection strategies, not concrete
210
+ targets, and stay `planned` until supported.
203
211
  lossless:
204
212
  type: boolean
205
213
  default: false
@@ -324,15 +332,23 @@ operation:
324
332
  per_value_availability:
325
333
  auto: { availability: planned }
326
334
  smallest: { availability: planned }
335
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
336
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
337
+ # Output format. original = keep input format (default); webp = recompress to WebP.
338
+ # Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the convert operation.
339
+ # `auto` / `smallest` are PLANNED auto-format directives — the server encodes to several
340
+ # candidate formats and returns the best (`auto` = the most suitable; `smallest` = the
341
+ # absolute fewest bytes), reporting the chosen format via the result `mime_type`. They
342
+ # are selection strategies, not concrete targets, and stay `planned` until supported.
343
+ # See FORMAT.md.
327
344
  description: >-
328
345
  Output format. original = keep input format (default); webp = recompress to
329
346
  WebP. Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the
330
- convert operation. `auto` / `smallest` are PLANNED auto-format directives —
331
- the server encodes to several candidate formats and returns the best
332
- (`auto` = the most suitable; `smallest` = the absolute fewest bytes),
333
- reporting the chosen format via the result `mime_type`. They are selection
334
- strategies, not concrete targets, and stay `planned` until supported. See
335
- FORMAT.md.
347
+ convert operation. `auto` / `smallest` are PLANNED auto-format directives — the
348
+ server encodes to several candidate formats and returns the best (`auto` = the
349
+ most suitable; `smallest` = the absolute fewest bytes), reporting the chosen
350
+ format via the result `mime_type`. They are selection strategies, not concrete
351
+ targets, and stay `planned` until supported.
336
352
  width:
337
353
  type: integer
338
354
  min: 1
@@ -395,10 +411,9 @@ operation:
395
411
  # image/heic is intentionally NOT a compress input: compress is decode-only
396
412
  # and there is no HEIC encoder, so the worker rejects a declared image/heic
397
413
  # (FormatMismatch). heic stays on convert+thumbnail.
398
- # WORKER LIMIT (not yet contract-expressible — F3 follow-up): the
399
- # compress-image worker caps avif INPUT at 20MB (compression_processor.rs),
400
- # below the general image size budget. Per-MIME input-size caps have no
401
- # contract vocab today; tracked for the image-size-cap mechanism (F3).
414
+ # WORKER LIMIT: the compress-image worker caps avif INPUT at 20 MiB
415
+ # (compression_processor.rs AVIF_MAX_MB), below the general image size
416
+ # budget. This group's `max_input_size_bytes` declares it.
402
417
  mimes:
403
418
  - image/avif
404
419
  max_output_pixels: 16000000
@@ -487,15 +502,23 @@ operation:
487
502
  per_value_availability:
488
503
  auto: { availability: planned }
489
504
  smallest: { availability: planned }
505
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
506
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
507
+ # Output format. original = keep input format (default); webp = recompress to WebP.
508
+ # Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the convert operation.
509
+ # `auto` / `smallest` are PLANNED auto-format directives — the server encodes to several
510
+ # candidate formats and returns the best (`auto` = the most suitable; `smallest` = the
511
+ # absolute fewest bytes), reporting the chosen format via the result `mime_type`. They
512
+ # are selection strategies, not concrete targets, and stay `planned` until supported.
513
+ # See FORMAT.md.
490
514
  description: >-
491
515
  Output format. original = keep input format (default); webp = recompress to
492
516
  WebP. Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the
493
- convert operation. `auto` / `smallest` are PLANNED auto-format directives —
494
- the server encodes to several candidate formats and returns the best
495
- (`auto` = the most suitable; `smallest` = the absolute fewest bytes),
496
- reporting the chosen format via the result `mime_type`. They are selection
497
- strategies, not concrete targets, and stay `planned` until supported. See
498
- FORMAT.md.
517
+ convert operation. `auto` / `smallest` are PLANNED auto-format directives — the
518
+ server encodes to several candidate formats and returns the best (`auto` = the
519
+ most suitable; `smallest` = the absolute fewest bytes), reporting the chosen
520
+ format via the result `mime_type`. They are selection strategies, not concrete
521
+ targets, and stay `planned` until supported.
499
522
  width:
500
523
  type: integer
501
524
  min: 1
@@ -643,15 +666,23 @@ operation:
643
666
  per_value_availability:
644
667
  auto: { availability: planned }
645
668
  smallest: { availability: planned }
669
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
670
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
671
+ # Output format. original = keep input format (default); webp = recompress to WebP.
672
+ # Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the convert operation.
673
+ # `auto` / `smallest` are PLANNED auto-format directives — the server encodes to several
674
+ # candidate formats and returns the best (`auto` = the most suitable; `smallest` = the
675
+ # absolute fewest bytes), reporting the chosen format via the result `mime_type`. They
676
+ # are selection strategies, not concrete targets, and stay `planned` until supported.
677
+ # See FORMAT.md.
646
678
  description: >-
647
679
  Output format. original = keep input format (default); webp = recompress to
648
680
  WebP. Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the
649
- convert operation. `auto` / `smallest` are PLANNED auto-format directives —
650
- the server encodes to several candidate formats and returns the best
651
- (`auto` = the most suitable; `smallest` = the absolute fewest bytes),
652
- reporting the chosen format via the result `mime_type`. They are selection
653
- strategies, not concrete targets, and stay `planned` until supported. See
654
- FORMAT.md.
681
+ convert operation. `auto` / `smallest` are PLANNED auto-format directives — the
682
+ server encodes to several candidate formats and returns the best (`auto` = the
683
+ most suitable; `smallest` = the absolute fewest bytes), reporting the chosen
684
+ format via the result `mime_type`. They are selection strategies, not concrete
685
+ targets, and stay `planned` until supported.
655
686
  lossless:
656
687
  type: boolean
657
688
  default: false
@@ -805,31 +836,32 @@ operation:
805
836
  per_value_availability:
806
837
  auto: { availability: planned }
807
838
  smallest: { availability: planned }
839
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
840
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
841
+ # Output format. `original` = keep input format — SVG -> SVG optimisation via SVGO.
842
+ # **STABLE and working** (restored 2026-07-21, G9O6yrQD; worker-proven on staging job
843
+ # 019f6aa3-d275-7b10-a5cf-58acc705c7e2 at 24.5% reduction, Form-A attested in lambdas
844
+ # #325). It is also the schema `default`, so a bare `compress` on an SVG takes this
845
+ # route. Optimisation is **visually preserving, NOT lossless** — SVGO's `preset-default`
846
+ # includes `convertPathData`, which rounds path coordinates within a tolerance. NOTE for
847
+ # anyone re-reading history here: this value was `planned` from 2026-07-17 to 2026-07-21
848
+ # on a false premise, and because the API materializes an omitted default before the
849
+ # availability gate (api 4a7a2628), that tag 422'd EVERY website SVG compress at create
850
+ # — the workbench does not send `output_format`, so the defaulted path is the only path
851
+ # a customer has. A `planned` DEFAULT is therefore never a partial restriction; it is a
852
+ # total one. Weigh that before tagging any future default `planned`. `webp` = recompress
853
+ # to WebP: **STABLE and working today** — this facade route canonicalizes to the
854
+ # `convert` operation (`convert.image_svg` carries its own quality), which is why this
855
+ # group is NOT gated at group level. Concrete format changes are handled by the convert
856
+ # operation. `auto` / `smallest` are PLANNED auto-format directives (the server picks
857
+ # the best/smallest candidate format, reported via the result `mime_type`) — selection
858
+ # strategies, not concrete targets, planned until supported. See FORMAT.md.
808
859
  description: >-
809
- Output format. `original` = keep input format — SVG -> SVG optimisation
810
- via SVGO. **STABLE and working** (restored 2026-07-21, G9O6yrQD;
811
- worker-proven on staging job 019f6aa3-d275-7b10-a5cf-58acc705c7e2 at
812
- 24.5% reduction, Form-A attested in lambdas #325). It is also the schema
813
- `default`, so a bare `compress` on an SVG takes this route.
814
- Optimisation is **visually preserving, NOT lossless** — SVGO's
815
- `preset-default` includes `convertPathData`, which rounds path
816
- coordinates within a tolerance.
817
- NOTE for anyone re-reading history here: this value was `planned` from
818
- 2026-07-17 to 2026-07-21 on a false premise, and because the API
819
- materializes an omitted default before the availability gate (api
820
- 4a7a2628), that tag 422'd EVERY website SVG compress at create — the
821
- workbench does not send `output_format`, so the defaulted path is the
822
- only path a customer has. A `planned` DEFAULT is therefore never a
823
- partial restriction; it is a total one. Weigh that before tagging any
824
- future default `planned`.
825
- `webp` = recompress to WebP: **STABLE and working today** — this facade
826
- route canonicalizes to the `convert` operation (`convert.image_svg` carries
827
- its own quality), which is why this group is NOT gated at group level.
828
- Concrete format changes are handled by the convert operation. `auto` /
829
- `smallest` are PLANNED auto-format directives (the server picks the
830
- best/smallest candidate format, reported via the result `mime_type`) —
831
- selection strategies, not concrete targets, planned until supported. See
832
- FORMAT.md.
860
+ Output format. `original` (the default) keeps SVG and optimises it; the
861
+ result looks the same but is not byte-for-byte lossless — path coordinates
862
+ are rounded within a small tolerance. `webp` converts the image to WebP.
863
+ `auto` and `smallest` (let the server pick the best or smallest format)
864
+ are planned and not yet available.
833
865
 
834
866
  # gif/tiff: raster Resize is engine-proven (both are in thumbnail-images), but
835
867
  # the optimiser `lossless` knob is WebP-only — not advertised here.
@@ -873,15 +905,23 @@ operation:
873
905
  per_value_availability:
874
906
  auto: { availability: planned }
875
907
  smallest: { availability: planned }
908
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
909
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
910
+ # Output format. original = keep input format (default); webp = recompress to WebP.
911
+ # Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the convert operation.
912
+ # `auto` / `smallest` are PLANNED auto-format directives — the server encodes to several
913
+ # candidate formats and returns the best (`auto` = the most suitable; `smallest` = the
914
+ # absolute fewest bytes), reporting the chosen format via the result `mime_type`. They
915
+ # are selection strategies, not concrete targets, and stay `planned` until supported.
916
+ # See FORMAT.md.
876
917
  description: >-
877
918
  Output format. original = keep input format (default); webp = recompress to
878
919
  WebP. Concrete format changes (jpeg/png/avif/gif/tiff) are handled by the
879
- convert operation. `auto` / `smallest` are PLANNED auto-format directives —
880
- the server encodes to several candidate formats and returns the best
881
- (`auto` = the most suitable; `smallest` = the absolute fewest bytes),
882
- reporting the chosen format via the result `mime_type`. They are selection
883
- strategies, not concrete targets, and stay `planned` until supported. See
884
- FORMAT.md.
920
+ convert operation. `auto` / `smallest` are PLANNED auto-format directives — the
921
+ server encodes to several candidate formats and returns the best (`auto` = the
922
+ most suitable; `smallest` = the absolute fewest bytes), reporting the chosen
923
+ format via the result `mime_type`. They are selection strategies, not concrete
924
+ targets, and stay `planned` until supported.
885
925
  width:
886
926
  type: integer
887
927
  min: 1
@@ -961,10 +1001,14 @@ operation:
961
1001
  # convert.audio worker live) so the per_value_availability block is
962
1002
  # removed => untagged = stable (ADR-0001 §1.4). Values mirror
963
1003
  # convert.audio.output_format.
1004
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
1005
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
1006
+ # Output audio format. original = keep input format (default, same-format compression).
1007
+ # Non-`original` values re-target the container/codec via the API "compress+format"
1008
+ # facade (one canonicalized convert pass); see FORMAT.md.
964
1009
  description: >-
965
1010
  Output audio format. original = keep input format (default, same-format
966
- compression). Non-`original` values re-target the container/codec via the
967
- API "compress+format" facade (one canonicalized convert pass); see FORMAT.md.
1011
+ compression). Other values change the format as part of the same job.
968
1012
  bitrate:
969
1013
  type: enum
970
1014
  value_type: integer
@@ -1084,30 +1128,45 @@ operation:
1084
1128
  mp4: { availability: planned }
1085
1129
  webm: { availability: planned }
1086
1130
  ogg: { availability: planned }
1131
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
1132
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
1133
+ # Output container. original = keep the input container (default, same-format
1134
+ # compression). Non-`original` values re-target the container via the API
1135
+ # "compress+format" facade (one canonicalized convert-with-size-cap pass); see
1136
+ # FORMAT.md. When set, the RESOLVED target container determines the valid
1137
+ # codec/audio_codec/faststart sets — an absent/default codec resolves to a
1138
+ # container-valid one (e.g. webm -> vp9) and is never rejected; only a caller-EXPLICIT
1139
+ # incompatible value is rejected.
1087
1140
  description: >-
1088
- Output container. original = keep the input container (default,
1089
- same-format compression). Non-`original` values re-target the
1090
- container via the API "compress+format" facade (one canonicalized
1091
- convert-with-size-cap pass); see FORMAT.md. When set, the RESOLVED
1092
- target container determines the valid codec/audio_codec/faststart
1093
- sets — an absent/default codec resolves to a container-valid one
1094
- (e.g. webm -> vp9) and is never rejected; only a caller-EXPLICIT
1095
- incompatible value is rejected.
1141
+ Output container. original = keep the input container (default, same-format
1142
+ compression). Other values change the container as part of the same job, keeping
1143
+ the size cap. When set, the RESOLVED target container determines the valid
1144
+ codec/audio_codec/faststart sets — an absent/default codec resolves to a
1145
+ container-valid one (e.g. webm -> vp9) and is never rejected; only a
1146
+ caller-EXPLICIT incompatible value is rejected.
1096
1147
  codec:
1097
1148
  type: enum
1098
1149
  values: [h264, h265, vp9, av1]
1099
1150
  default: h264
1100
- description: >
1101
- Video codec. h264 = widest compatibility, h265/av1 = better
1102
- compression but slower. The default (h264) is the MP4/MOV standard
1103
- and is CONTAINER-CONDITIONAL against the RESOLVED output container
1104
- (the explicit `output_format` if set, else the input container): for
1105
- a container that cannot carry it (e.g. WebM, which carries VP8/VP9/
1106
- AV1) the server resolves a container-valid codec (WebM -> vp9). A
1107
- DEFAULT value is never rejected — including an explicit
1108
- `output_format: webm` left at the default `h264` (resolves to vp9,
1109
- not rejected); only a caller-EXPLICIT incompatible codec is rejected.
1110
- See FORMAT.md "Container-conditional defaults".
1151
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
1152
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
1153
+ # Video codec. h264 = widest compatibility, h265/av1 = better compression but slower.
1154
+ # The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL against the
1155
+ # RESOLVED output container (the explicit `output_format` if set, else the input
1156
+ # container): for a container that cannot carry it (e.g. WebM, which carries VP8/VP9/
1157
+ # AV1) the server resolves a container-valid codec (WebM -> vp9). A DEFAULT value is
1158
+ # never rejected — including an explicit `output_format: webm` left at the default
1159
+ # `h264` (resolves to vp9, not rejected); only a caller-EXPLICIT incompatible codec is
1160
+ # rejected. See FORMAT.md "Container-conditional defaults".
1161
+ description: >-
1162
+ Video codec. h264 = widest compatibility, h265/av1 = better compression but
1163
+ slower. The default (h264) is the MP4/MOV standard and is CONTAINER-CONDITIONAL
1164
+ against the RESOLVED output container (the explicit `output_format` if set, else
1165
+ the input container): for a container that cannot carry it (e.g. WebM, which
1166
+ carries VP8/VP9/AV1) the server resolves a container-valid codec (WebM -> vp9).
1167
+ A DEFAULT value is never rejected — including an explicit `output_format: webm`
1168
+ left at the default `h264` (resolves to vp9, not rejected); only a
1169
+ caller-EXPLICIT incompatible codec is rejected.
1111
1170
  encoding_mode:
1112
1171
  type: enum
1113
1172
  values: [crf, target_size]
@@ -1121,38 +1180,48 @@ operation:
1121
1180
  # per-value-availability tag: option availability is binary and cannot be
1122
1181
  # output-container-scoped (same cross-axis limitation as
1123
1182
  # compress.audio.bitrate's lossy-output rule). crf is universal. ADR-0023 D8.
1124
- description: |
1125
- `crf` = constant quality. `target_size` = constrained output file size
1126
- (two-pass). `target_size` is LIVE for mp4/MOV output; for webm/ogg output
1127
- and long-form the server returns `feature_not_available` (use `crf` there)
1128
- until two-pass for this container ships.
1129
-
1130
- 🔴 **`crf` DOES NOT MEAN UNCONSTRAINED FILE SIZE. THIS DESCRIPTION USED TO
1131
- SAY "variable file size" AND THAT WAS FALSE BY OMISSION.** For **mp4/MOV
1132
- output**, the worker additionally derives a **source-relative peak-bitrate
1133
- ceiling of roughly 60% of the source video bitrate** (`-maxrate`/`-bufsize`),
1134
- and **it binds regardless of an explicit `crf`** — constrained-CRF. The `crf`
1135
- value is still honoured as the **quality ceiling**; the cap adds a peak
1136
- ceiling on top of it.
1137
-
1138
- ⚠️ **Scope, because "we cap every video" would be a second false sentence:**
1139
- the cap is **mp4/MOV only** — WebM/VP9 discards it and skips the probe
1140
- entirely — and it is **best-effort**, so an unprobeable source gets no cap.
1141
-
1142
- ⭐ **Why it exists, which is also why the old wording surprised in the wrong
1143
- direction:** plain CRF alone **INFLATES already-efficient sources** — an
1144
- efficient HEVC re-encoded to H.264 at CRF 23/25/30 grows. The compress
1145
- contract is *reduce file size*, so the cap is what makes shrinking reliable.
1146
- A caller who deliberately pins a low `crf` on an efficient source therefore
1147
- gets a constrained-CRF transcode rather than a byte-for-byte original: a
1148
- deliberate, accepted shift.
1149
-
1150
- 🔴 **THIS DESCRIPTION IS BOUND TO THE WORKER, NOT DATED AGAINST IT.**
1151
- `tests/test_bitrate_cap_disclosure_matches_the_worker.py` reads
1152
- `compression_lambdas` at `origin/main` and fails if the cap stops
1153
- being source-relative, stops being mp4/MOV-only, or stops deriving
1154
- from a source probe. **An as-of date would make a superseded
1155
- sentence look deliberate**; a gate makes it go red instead.
1183
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
1184
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
1185
+ # `crf` = constant quality. `target_size` = constrained output file size
1186
+ # (two-pass). `target_size` is LIVE for mp4/MOV output; for webm/ogg output
1187
+ # and long-form the server returns `feature_not_available` (use `crf` there)
1188
+ # until two-pass for this container ships.
1189
+ #
1190
+ # 🔴 **`crf` DOES NOT MEAN UNCONSTRAINED FILE SIZE. THIS DESCRIPTION USED TO
1191
+ # SAY "variable file size" AND THAT WAS FALSE BY OMISSION.** For **mp4/MOV
1192
+ # output**, the worker additionally derives a **source-relative peak-bitrate
1193
+ # ceiling of roughly 60% of the source video bitrate** (`-maxrate`/`-bufsize`),
1194
+ # and **it binds regardless of an explicit `crf`** — constrained-CRF. The `crf`
1195
+ # value is still honoured as the **quality ceiling**; the cap adds a peak
1196
+ # ceiling on top of it.
1197
+ #
1198
+ # ⚠️ **Scope, because "we cap every video" would be a second false sentence:**
1199
+ # the cap is **mp4/MOV only** — WebM/VP9 discards it and skips the probe
1200
+ # entirely — and it is **best-effort**, so an unprobeable source gets no cap.
1201
+ #
1202
+ # ⭐ **Why it exists, which is also why the old wording surprised in the wrong
1203
+ # direction:** plain CRF alone **INFLATES already-efficient sources** — an
1204
+ # efficient HEVC re-encoded to H.264 at CRF 23/25/30 grows. The compress
1205
+ # contract is *reduce file size*, so the cap is what makes shrinking reliable.
1206
+ # A caller who deliberately pins a low `crf` on an efficient source therefore
1207
+ # gets a constrained-CRF transcode rather than a byte-for-byte original: a
1208
+ # deliberate, accepted shift.
1209
+ #
1210
+ # 🔴 **THIS DESCRIPTION IS BOUND TO THE WORKER, NOT DATED AGAINST IT.**
1211
+ # `tests/test_bitrate_cap_disclosure_matches_the_worker.py` reads
1212
+ # `compression_lambdas` at `origin/main` and fails if the cap stops
1213
+ # being source-relative, stops being mp4/MOV-only, or stops deriving
1214
+ # from a source probe. **An as-of date would make a superseded
1215
+ # sentence look deliberate**; a gate makes it go red instead.
1216
+ description: >-
1217
+ `crf` = constant quality. `target_size` = aim for a specific output file
1218
+ size (two-pass); available for mp4/MOV output only — for webm/ogg output
1219
+ and long-form video it is refused with `feature_not_available` (use
1220
+ `crf`). With `crf` on mp4/MOV output the file size is still bounded: a
1221
+ source-relative peak-bitrate ceiling (about 60% of the source video
1222
+ bitrate) keeps already-efficient sources from growing. That ceiling is
1223
+ mp4/MOV only and best-effort — it is skipped when the source bitrate
1224
+ cannot be read.
1156
1225
  crf:
1157
1226
  type: integer
1158
1227
  min: 0
@@ -1176,37 +1245,44 @@ operation:
1176
1245
  type: enum
1177
1246
  values: [ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow]
1178
1247
  default: medium
1179
- description: |
1180
- x264/x265 encoder effort. **A SIZE LEVER, CONDITIONALLY** — it moves
1181
- output size **only while the mp4/MOV peak-bitrate cap is NOT binding.**
1182
-
1183
- **Measured by `compression_lambdas`, medium vs slow, all else held:**
1184
-
1185
- crf 30, cap inert 1,220,156 vs 1,144,043 bytes 6.2% apart
1186
- crf 18, cap binding 2,514,788 vs 2,516,986 bytes 0.09% apart
1187
-
1188
- 🔴 **THE MECHANISM IS MECHANICAL, NOT EMPIRICAL, AND EXPLAINS BOTH ROWS.**
1189
- In pure CRF the encoder targets constant QUALITY, so a slower preset spends
1190
- its extra effort producing a **smaller file at the same quality**. Once
1191
- `-maxrate` binds the encode is rate-limited, so the extra effort can only go
1192
- into **picture at a fixed size** — an axis a size measurement cannot see.
1193
-
1194
- ⚠️ **This description previously said `preset` was effort-only and that `crf`
1195
- was the size lever. That was wrong**, and it was wrong because a 0.09% figure
1196
- measured on a **cap-binding** clip was generalised into a property of `preset`.
1197
- **A measurement is not a property until you know what held it.**
1198
-
1199
- ⇒ **Callers optimising for size:** `crf` is the primary lever; `preset` adds
1200
- real reduction **only when the cap is not already constraining the encode** —
1201
- which is exactly the high-`crf`, small-output end. See `encoding_mode` for what
1202
- the cap is and when it applies.
1203
-
1204
- ⚠️ **What the extra effort buys once the cap DOES bind is mechanically
1205
- implied and empirically UNCONFIRMED.** The mechanism says it must go
1206
- into picture; `compression_lambdas` could not see a difference on 2x
1207
- crops, but that was **one frame of one 5-second clip**, and preset
1208
- differences concentrate in high-motion frames that were not
1209
- deliberately sampled. **Recorded as unestablished, not asserted.**
1248
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
1249
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
1250
+ # x264/x265 encoder effort. **A SIZE LEVER, CONDITIONALLY** — it moves
1251
+ # output size **only while the mp4/MOV peak-bitrate cap is NOT binding.**
1252
+ #
1253
+ # **Measured by `compression_lambdas`, medium vs slow, all else held:**
1254
+ #
1255
+ # crf 30, cap inert 1,220,156 vs 1,144,043 bytes 6.2% apart
1256
+ # crf 18, cap binding 2,514,788 vs 2,516,986 bytes 0.09% apart
1257
+ #
1258
+ # 🔴 **THE MECHANISM IS MECHANICAL, NOT EMPIRICAL, AND EXPLAINS BOTH ROWS.**
1259
+ # In pure CRF the encoder targets constant QUALITY, so a slower preset spends
1260
+ # its extra effort producing a **smaller file at the same quality**. Once
1261
+ # `-maxrate` binds the encode is rate-limited, so the extra effort can only go
1262
+ # into **picture at a fixed size** — an axis a size measurement cannot see.
1263
+ #
1264
+ # ⚠️ **This description previously said `preset` was effort-only and that `crf`
1265
+ # was the size lever. That was wrong**, and it was wrong because a 0.09% figure
1266
+ # measured on a **cap-binding** clip was generalised into a property of `preset`.
1267
+ # **A measurement is not a property until you know what held it.**
1268
+ #
1269
+ # ⇒ **Callers optimising for size:** `crf` is the primary lever; `preset` adds
1270
+ # real reduction **only when the cap is not already constraining the encode** —
1271
+ # which is exactly the high-`crf`, small-output end. See `encoding_mode` for what
1272
+ # the cap is and when it applies.
1273
+ #
1274
+ # ⚠️ **What the extra effort buys once the cap DOES bind is mechanically
1275
+ # implied and empirically UNCONFIRMED.** The mechanism says it must go
1276
+ # into picture; `compression_lambdas` could not see a difference on 2x
1277
+ # crops, but that was **one frame of one 5-second clip**, and preset
1278
+ # differences concentrate in high-motion frames that were not
1279
+ # deliberately sampled. **Recorded as unestablished, not asserted.**
1280
+ description: >-
1281
+ Encoder effort for mp4/MOV output (x264/x265); other output formats
1282
+ ignore it. Slower presets take longer and can produce a smaller file at
1283
+ the same quality — but only while the peak-bitrate ceiling described
1284
+ under `encoding_mode` is not already limiting the output. For size,
1285
+ `crf` is the main lever.
1210
1286
  width:
1211
1287
  type: integer
1212
1288
  min: 2
@@ -1231,31 +1307,48 @@ operation:
1231
1307
  faststart:
1232
1308
  type: boolean
1233
1309
  default: true
1234
- description: >
1235
- Move the MP4/MOV moov atom to the front so the file starts playing
1236
- before it is fully downloaded (progressive web playback). MP4/MOV only.
1237
- CONTAINER-CONDITIONAL against the RESOLVED output container (the explicit
1238
- `output_format` if set, else the input): the default (true) is silently
1239
- inapplicable for a container with no moov atom (e.g. WebM) — that is NOT a
1240
- rejection. Only a caller-EXPLICIT faststart:true on such a container is
1241
- rejected. See FORMAT.md "Container-conditional defaults".
1310
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
1311
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
1312
+ # Move the MP4/MOV moov atom to the front so the file starts playing before it is fully
1313
+ # downloaded (progressive web playback). MP4/MOV only. CONTAINER-CONDITIONAL against the
1314
+ # RESOLVED output container (the explicit `output_format` if set, else the input): the
1315
+ # default (true) is silently inapplicable for a container with no moov atom (e.g. WebM)
1316
+ # — that is NOT a rejection. Only a caller-EXPLICIT faststart:true on such a container
1317
+ # is rejected. See FORMAT.md "Container-conditional defaults".
1318
+ description: >-
1319
+ Move the MP4/MOV moov atom to the front so the file starts playing before it is
1320
+ fully downloaded (progressive web playback). MP4/MOV only. CONTAINER-CONDITIONAL
1321
+ against the RESOLVED output container (the explicit `output_format` if set, else
1322
+ the input): the default (true) is silently inapplicable for a container with no
1323
+ moov atom (e.g. WebM) — that is NOT a rejection. Only a caller-EXPLICIT
1324
+ faststart:true on such a container is rejected.
1242
1325
  audio_codec:
1243
1326
  type: enum
1244
1327
  values: [aac, opus, vorbis, copy]
1245
1328
  default: copy
1246
- description: >
1247
- Audio codec. copy = passthrough (keep the source stream as-is;
1248
- re-encode only on explicit request) — aac/opus/vorbis re-encode.
1249
- Default is `copy`: on the same-container path (`output_format`
1250
- original/absent) the source stream is already container-compatible,
1251
- so copy is safe. When `output_format` RE-TARGETS the container, an
1252
- absent/default audio_codec resolves to a container-valid codec via the
1253
- facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream
1254
- — a DEFAULT is never rejected (the exact per-container resolution,
1255
- incl. ogg vorbis-vs-opus, is an output_format stable-flip
1256
- prerequisite). A caller-EXPLICIT codec the resolved container cannot
1257
- carry (e.g. aac on a webm target) is rejected. See FORMAT.md
1258
- "Container-conditional defaults".
1329
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
1330
+ # 2026-09-23 — user copy must not point at FORMAT.md). Preserved verbatim:
1331
+ # Audio codec. copy = passthrough (keep the source stream as-is; re-encode only on
1332
+ # explicit request) — aac/opus/vorbis re-encode. Default is `copy`: on the
1333
+ # same-container path (`output_format` original/absent) the source stream is already
1334
+ # container-compatible, so copy is safe. When `output_format` RE-TARGETS the container,
1335
+ # an absent/default audio_codec resolves to a container-valid codec via the facade (e.g.
1336
+ # webm -> opus), NOT a blind copy of an incompatible stream — a DEFAULT is never
1337
+ # rejected (the exact per-container resolution, incl. ogg vorbis-vs-opus, is an
1338
+ # output_format stable-flip prerequisite). A caller-EXPLICIT codec the resolved
1339
+ # container cannot carry (e.g. aac on a webm target) is rejected. See FORMAT.md
1340
+ # "Container-conditional defaults".
1341
+ description: >-
1342
+ Audio codec. copy = passthrough (keep the source stream as-is; re-encode only on
1343
+ explicit request) — aac/opus/vorbis re-encode. Default is `copy`: on the
1344
+ same-container path (`output_format` original/absent) the source stream is
1345
+ already container-compatible, so copy is safe. When `output_format` RE-TARGETS
1346
+ the container, an absent/default audio_codec resolves to a container-valid codec
1347
+ via the facade (e.g. webm -> opus), NOT a blind copy of an incompatible stream —
1348
+ a DEFAULT is never rejected (the exact per-container resolution, incl. ogg
1349
+ vorbis-vs-opus, is an output_format stable-flip prerequisite). A caller-EXPLICIT
1350
+ codec the resolved container cannot carry (e.g. aac on a webm target) is
1351
+ rejected.
1259
1352
  audio_bitrate:
1260
1353
  type: enum
1261
1354
  value_type: integer
@@ -352,6 +352,17 @@ operation:
352
352
  NOT applicable to a `gif` output (frame extraction has no CRF). An explicit
353
353
  `crf` on a `gif` output is rejected as `invalid_options` at workflow-create
354
354
  (the API enforces this `depends_on`); FE/SDK prune it pre-submit.
355
+ Left at 23 (the default) when converting an MP4 to MOV and the
356
+ streams can be carried over as they are, the video is copied without
357
+ re-encoding, so its quality is unchanged. Choose any other value to
358
+ force a re-encode.
359
+ # AUTHOR NOTES (rFBKrheN, 2026-09-24): a value EQUAL to the default is
360
+ # read as defaulted — the contract's own proxy (FORMAT.md per-class drop
361
+ # rule; api PerClassOptionAvailabilityResolver::wasChosenByTheCaller),
362
+ # because the SDKs and the frontend materialise every default. lambdas
363
+ # #439 implements the stream-copy (MP4 -> MOV only: MOV is not a
364
+ # convert.video INPUT). A caller who truly wants a re-encode
365
+ # at exactly 23 cannot express it; accepted, since the copy is lossless.
355
366
  trim_start:
356
367
  type: float
357
368
  min: 0
@@ -41,7 +41,13 @@ operation:
41
41
  max: 5000
42
42
  default: 500
43
43
  depends_on: { output_type: gif }
44
- description: "Milliseconds between frames"
44
+ # GIF stores frame delays in centiseconds (DkucstQG, lambdas MSG
45
+ # 482596c7): 15 ms alternates 20/10 per frame on prod ffmpeg 7.1.1 today;
46
+ # lambdas KbmfS94r rounds uniformly to the nearest 10 ms. Deliberately NOT
47
+ # `multipleOf: 10` — that would 422 values accepted today.
48
+ description: >-
49
+ Milliseconds between frames. GIF timing has a 10 ms resolution, so use
50
+ a multiple of 10 — other values cannot be shown exactly.
45
51
  loop_count:
46
52
  type: integer
47
53
  min: 0