@deepraxis/sdk 0.1.1-dev.e5614a0 → 0.1.1-dev.e5db771

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.
@@ -7935,7 +7935,7 @@ export declare const operations: readonly [{
7935
7935
  readonly resource: "cut.projects.analysis";
7936
7936
  readonly method: "create";
7937
7937
  readonly summary: "Analyze project media";
7938
- readonly description: "Request silence, filler-word or scene analysis for selected bound assets before editing. Omit media to select project sources; ranges returned in segments use source seconds. A pending result is not completion: use retry_after_sec before checking again, and inspect failed or unsupported asset results before deciding which edits are possible.";
7938
+ readonly description: "Request silence, filler-word or scene analysis for selected bound assets before editing. Omit media to select project sources; ranges returned in segments use source seconds. A pending result is not completion: use retry_after_sec before checking again, and inspect failed or unsupported asset results before deciding which edits are possible. Silence measures transcript-based speech pauses, not music or loudness. A completed transcript without words returns ready with empty segments and reason no_speech; no completed transcript returns unsupported with reason no_transcript. A failed transcription remains failed.";
7939
7939
  readonly http: "POST";
7940
7940
  readonly path: "/cut/v1/projects/{project_id}/analysis";
7941
7941
  readonly streaming: "no";
@@ -8074,6 +8074,16 @@ export declare const operations: readonly [{
8074
8074
  readonly body: {
8075
8075
  readonly required: true;
8076
8076
  readonly fields: readonly [{
8077
+ readonly name: "folder";
8078
+ readonly type: "string";
8079
+ readonly required: false;
8080
+ readonly description: "Optional destination path within the bound media library; omitted uses its default folder.";
8081
+ }, {
8082
+ readonly name: "name";
8083
+ readonly type: "string";
8084
+ readonly required: false;
8085
+ readonly description: "Nonempty display name, frozen with the export. Path separators and control characters become hyphens; limited to 200 characters. Omitted uses project name and timestamp.";
8086
+ }, {
8077
8087
  readonly name: "output";
8078
8088
  readonly type: "object";
8079
8089
  readonly required: false;
@@ -8094,7 +8104,7 @@ export declare const operations: readonly [{
8094
8104
  readonly resource: "cut.projects.frames";
8095
8105
  readonly method: "list";
8096
8106
  readonly summary: "Render preview frames";
8097
- readonly description: "Review the visual result at one or more project times without creating an export. Pass comma-separated seconds in at, such as 12,15.5; scale changes preview size and revision selects a committed project revision. Fetch the returned image URLs before expires_at; render again when they expire.";
8107
+ readonly description: "Review the visual result at one or more project times without creating an export. Pass comma-separated seconds in at, such as 12,15.5; scale changes preview size and revision selects a committed project revision. Request at most eight times. Each returned url is an inline PNG data URL (data:image/png;base64,...), not a hosted HTTP image link. The default scale is 0.25; use 0.5 for subtitle layout inspection (1080×1920 renders at 540×960). The maximum is 0.5; values above it return INVALID_PARAMS. Actual width and height are returned per frame. PNGs above 2 MiB or responses above 4 MiB return RESPONSE_TOO_LARGE without silently lowering resolution. The response always includes warnings; FRAME_UNAVAILABLE means a source preview could not be obtained and an offline tile was drawn. Its message identifies a timeout, delivery capacity limit, or unavailable source and contains no source URL. Decode each image's base64 payload to save it. Codemode returns at most four images per call, so request at most four times when reviewing there.";
8098
8108
  readonly http: "GET";
8099
8109
  readonly path: "/cut/v1/projects/{project_id}/frames";
8100
8110
  readonly streaming: "no";
@@ -8113,7 +8123,7 @@ export declare const operations: readonly [{
8113
8123
  readonly name: "scale";
8114
8124
  readonly type: "number";
8115
8125
  readonly required: false;
8116
- readonly description: "Positive image size multiplier; 0.5 renders at half the project dimensions.";
8126
+ readonly description: "Image size multiplier, default 0.25, greater than zero and at most 0.5. Larger values return INVALID_PARAMS; pixel-area limits may reduce actual dimensions, reported as width and height.";
8117
8127
  }, {
8118
8128
  readonly name: "revision";
8119
8129
  readonly type: "integer";
@@ -8268,7 +8278,7 @@ export declare const operations: readonly [{
8268
8278
  readonly resource: "cut.projects";
8269
8279
  readonly method: "execute";
8270
8280
  readonly summary: "Execute editing script";
8271
- readonly description: "Edit the current timeline atomically using synchronous JavaScript source. Read state or timeline first, then pass its revision as expected_revision to detect concurrent changes. Use AddTrack, Insert, Update, Delete, Split, Trim, Move, RippleDeleteRange, UpdateTrack, DeleteTrack, SetSettings, AddCaptionsFromTranscript and SetMarker for writes; GetTimeline, GetItem, FindItems, GetMedia, GetTranscript and GetAnalysis read editing context; Print emits text and Preview requests frame previews. All script times are seconds; script object fields use camelCase, for example `media: {libraryId, assetId}`. Unlike Shotstack, execute applies script edits to a persistent project in one transaction. Provide script or a saved edit_id with literal edits, never both; failures roll back writes. A revision conflict while preparing the response may follow a committed edit: retrieve state before retrying. Minimal script after creating a project:\n\n```js\nconst t = AddTrack(\"video\");\nInsert(t, {type: \"color\", color: \"#123456\", start: 0, length: 3});\nPrint(t);\n```";
8281
+ readonly description: "Edit the current timeline atomically using synchronous JavaScript source. Read state or timeline first, then pass its revision as expected_revision to detect concurrent changes. Unlike Shotstack, execute applies script edits to a persistent project in one transaction. Provide script or a saved edit_id with literal edits, never both; failures roll back writes. A revision conflict while preparing the response may follow a committed edit: retrieve state before retrying. Minimal script after creating a project: `const t = AddTrack(\"video\"); Insert(t, {type: \"color\", color: \"#123456\", start: 0, length: 3}); Print(t);`\n\n### Script function reference\n\nFunctions are synchronous globals; do not import them. `project` is the current project ID. TrackId and ClipId are strings returned by AddTrack and Insert or read from GetTimeline. JoinId is the string returned by Join or read from GetTimeline().joins. Reads see earlier writes in the same script.\n\n```ts\nGetTimeline(o?: { from?: number; to?: number; tracks?: TrackId[] }): TimelineView;\nGetItem(id: ClipId): ItemView;\nFindItems<T>(visit: (item: ItemView, ctx: { track: TrackView; index: number }) => T | undefined): T[];\nGetMedia(ref: MediaRef): MediaInfo;\nGetTranscript(ref: MediaRef, o?: { from?: number; to?: number }): Word[];\nGetAnalysis(ref: MediaRef, kind: AnalysisKind): Segment[];\nListTransitions(): TransitionInfo[];\nListAnimations(): { id: string; version: number; phase: \"in\" | \"out\" | \"loop\"; target: \"any\" | \"text\"; name: string; description: string; defaultDuration: number; params: { name: string; type: string; values?: string[]; default?: string | number; min?: number; max?: number; description: string }[] }[];\nListFonts(): { family: string; weights: number[]; scripts: (\"latin\"|\"cjk\")[]; source: \"bundled\"|\"catalog\" }[];\nInsert(track: TrackId, item: ItemInit, o?: { ripple?: boolean }): ClipId;\nUpdate(id: ClipId, patch: ItemPatchView): void;\nSetSpeed(id: ClipId, rate: number, o: { keep: \"source\" | \"duration\"; ripple?: boolean }): { length: number; sourceOut: number };\nDelete(id: ClipId, o?: { ripple?: boolean }): void;\nJoin(left: ClipId, right: ClipId, o: { length?: number; effect: TransitionInput }): JoinId;\nUpdateJoin(id: JoinId, patch: { length?: number; effect?: TransitionInput }): void;\nDeleteJoin(id: JoinId): void;\nSplit(id: ClipId, at: number): ClipId;\nTrim(id: ClipId, edge: \"in\" | \"out\", delta: number, o?: { ripple?: boolean }): void;\nMove(id: ClipId, start: number, track?: TrackId): void;\nRippleDeleteRange(from: number, to: number, tracks?: TrackId[]): void;\nAddTrack(kind: \"video\" | \"audio\" | \"caption\", init?: { name?: string }, index?: number): TrackId;\nUpdateTrack(id: TrackId, patch: TrackPatch): void;\nDeleteTrack(id: TrackId): void;\nSetSettings(patch: Partial<ProjectSettingsView>): void;\nAddCaptionsFromTranscript(track: TrackId, source: ClipId, o?: { style?: Partial<CaptionStyle>; maxChars?: number }): ClipId[];\nSetMarker(at: number, label: string): string;\nPrint(...values: unknown[]): void;\nPreview(at: number[]): void;\n```\n\n| Functions | Behavior and arguments |\n| --- | --- |\n| GetTimeline, GetItem | Read compact item views: id, track, type, start, end, length, optional media, playback, sourceIn/sourceOut, text and offline reason. GetTimeline returns duration, tracks (id, kind, name, index, locked, items), and joins (id, track, left, right, length in seconds, normalized effect). from/to and tracks narrow the items and joins; joins are selected by their overlap window. |\n| ListTransitions | Discover the shared validation catalog: each entry contains kind (effect ID), name, description and params. Each parameter has name, type (enum/number/integer), default, description, enum values or numeric min/max. Use the returned kind and parameter names inside effect. |\n| ListAnimations | Discover animation presets. Each entry has id, version, phase (`in`, `out`, `loop`), target (`any`, `text`), name, description, defaultDuration (seconds), and params (name, type, values/default/min/max/description as applicable). A slot use is `{preset, duration?, ...params}`; duration is seconds. |\n| FindItems | Visit items with their track and index; return undefined to omit an item, any other value to collect it. |\n| GetMedia | Read metadata for `{libraryId, assetId}` in a bound library: kind, dimensions, fps, hasAudio and durationUs when available. durationUs is microseconds. |\n| GetTranscript, GetAnalysis | Read available transcript words or silence/filler/scenes segments. Transcript filter from/to is seconds; returned word and segment from/to values are source microseconds (divide by 1,000,000 for editing). Words contain text and optional speaker/filler; segments may include label/confidence. Request analysis first if unavailable. |\n| Insert, Update, Delete | Insert returns the new clip ID; Update changes supplied fields; Delete removes the clip. Optional ripple on Insert/Delete closes or opens space on the track. |\n| SetSpeed | Change video/audio rate in 0.25–4; keep is required. source preserves consumed source and changes length, duration preserves output length. Returns actual length and sourceOut in seconds. Optional ripple explicitly shifts same-track followers when keeping source; otherwise overlaps are rejected. |\n| Join, UpdateJoin, DeleteJoin | Join creates an overlap between two butt-adjacent visual clips on the same track and returns its ID. length defaults to 0.5 seconds; effect is required. The right clip and all same-track followers move left by length, shortening that track and potentially the project. UpdateJoin moves those followers by the difference in length; omitted fields are preserved. DeleteJoin moves them right to restore the butt cut. Other tracks stay in place. |\n| Split, Trim, Move | Split at a timeline position and return the new right-hand clip ID. Trim changes the in or out edge by delta seconds. Move sets the timeline start and optionally a new track. |\n| RippleDeleteRange | Delete a timeline interval and close its gap on the specified tracks, or all unlocked tracks when omitted. |\n| AddTrack, UpdateTrack, DeleteTrack | Add video/audio/caption tracks; index selects layer order (0 is top). TrackPatch supports name, locked, hidden, muted, gainDb and style as appropriate to track kind. |\n| SetSettings | Supply any of width/height (pixels), fps (frames per second), background (color). |\n| AddCaptionsFromTranscript | Create captions from an audio/video clip's kept words. Optional maxChars is 1–1000, default 16; style updates the caption track. Returns caption IDs. |\n| SetMarker | Add a label at a timeline time and return its ID. |\n| Print, Preview | Print appends text to prints. Preview requests up to eight times total per execute and puts images in the result's frames. Each url is an inline PNG data URL, not an HTTP image link. Decode the base64 payload to save an image. Codemode returns at most four images per call; request at most four times there. |\n\n#### Joins between clips\n\nEndpoints may be video, image, text, color or shape; audio and caption are rejected. Require 0 < length < each endpoint's length. Each clip allows at most one incoming and one outgoing join; their summed lengths cannot exceed its length. Three-input overlaps, nonadjacent endpoints and cross-track joins are rejected with OPS_REJECTED. Read the rejection's code and message, shorten or remove conflicting joins, and retry the saved edit.\n\nTransitionInput is an object with kind plus the parameters returned by ListTransitions; omitted parameters use catalog defaults. Unknown kinds and invalid parameters return INVALID_TRANSITION_PARAM with available parameters. Effects: dissolve; dip color black/white default black; push and wipe direction left/right/up/down default left; wipe softness 0–1 default 0; iris centerX/centerY 0–1 default 0.5; blinds integer count 2–64 default 8 and orientation vertical/horizontal default vertical; blur radius 0–100 pixels at 1080-pixel frame height default 24; zoom direction in/out default in, amount 0.1–3 default 1, blur 0–1 default 0.5; clock direction clockwise/counterclockwise default clockwise, startAngle 0–360 degrees default 0 (twelve o'clock), softness 0–1 default 0; flash color white/black default white, intensity 0–1 default 1. Zoom blur uses up to eight radial samples per shot and is slower on server rendering. Join options and UpdateJoin patches accept only length and effect. Effect updates replace the effect object and apply defaults for omitted parameters.\n\nMinimal example on an existing visual track with adjacent clips left and right: `Print(ListTransitions()); const j = Join(left, right, {length: 0.5, effect: {kind: \"dissolve\"}}); Print(GetTimeline().joins); Preview([GetItem(right).start + 0.25]);` Use `UpdateJoin(j, {length: 0.8})` to adjust it in a later edit or `DeleteJoin(j)` to restore the cut. Preview uses server-rendered frames and includes joins. Per-clip transitionIn/transitionOut remain separate entrance/exit effects.\n\n#### Insert fields (ItemInit)\n\nEvery item requires `type` and `start`. Times used for editing are seconds and snap to the project frame rate: start, length, sourceIn, fadeIn/fadeOut, transition length, keyframe at, reveal delay/stagger/duration. Keyframe and reveal times are relative to the clip start. Video/audio may omit length to use the remaining source duration; other types require length.\n\n| type | Required fields beyond type/start | Optional fields |\n| --- | --- | --- |\n| video | media | length, sourceIn, playback, volumeDb, transform, fit, animate, animation, transitionIn, transitionOut |\n| image | media, length | transform, fit, animate, animation, transitionIn, transitionOut |\n| text | text, length | style, transform, reveal, animate, animation, transitionIn, transitionOut |\n| color | color, length | transform, fill, animate, animation, transitionIn, transitionOut |\n| shape | shape, length, width, height, fill | radius, stroke, transform, animate, animation, transitionIn, transitionOut |\n| audio | media | length, sourceIn, playback, volumeDb, fadeIn, fadeOut |\n| caption | text, length | — |\n\nVideo tracks accept video/image/text/color/shape; audio and caption tracks accept their corresponding type. Media is `{libraryId: string, assetId: string}` from a bound library. sourceIn defaults to 0, volumeDb to 0 dB, audio fades to 0 seconds. fit defaults to contain: contain fits the whole image, cover fills and crops, fill stretches, none keeps native dimensions.\n\n| Field | Value |\n| --- | --- |\n| transform | Partial `{x, y, scale, rotation, opacity, crop, blur}`. x/y are normalized canvas center coordinates (default 0.5); scale 1 is fitted size; rotation is degrees (default 0); opacity is 0–1 (default 1). crop is `{top,right,bottom,left}`. blur is 0–100 pixels at 1080-pixel frame height. |\n| style | Partial `{fontFamily, fontSize, fontWeight, color, fill, stroke, strokes, shadows, glow, background, align, maxWidth, position, margin}`. fill accepts a color or linear/radial gradient across the entire text bounding box. strokes draw outside to inside; at most 4, width 0–40. shadows accepts at most 4 `{color,x,y,blur}` entries; blur is 0–100. glow is `{color,radius,strength}` with radius 0–100 and strength 0–1. All dimensions use pixels at 1080 frame height and scale with the text. Glow and large shadow blur increase render time. Invalid colors or ranges return actionable INVALID_STYLE errors. `ListFonts()` discovers family, available weights, scripts and bundled/catalog source. Text and captions share the style fields; caption style additionally supports highlightColor and maxLines: 2. |\n| animate | An object keyed by x, y, scale, rotation, opacity or blur. Each value is an array of `{at: number, value: number, ease?: Ease}` sorted by at with distinct frame-snapped times. Values hold before the first and after the last keyframe, overriding the static transform. |\n| animation | `{in?: AnimationUse, out?: AnimationUse, loop?: AnimationUse}` on visual clips. Each use is `{preset: string, duration?: number, ...params}`; duration and parameter units follow `ListAnimations()`. Presets replace existing animate and reveal when applied. Update accepts `animation: null` to clear the preset and its generated effects. |\n| Ease | linear, in, out, inOut, `{bezier: [x1,y1,x2,y2]}` or `{spring: {stiffness, damping, mass?}}`. Easing shapes the segment arriving at that keyframe; springs may overshoot. |\n| reveal | `{by, delay?: number, stagger: number, duration: number, from: {y?, opacity?, scale?, blur?}, ease?: Ease}`. by selects char, word or line. Unit k starts at delay + k * stagger and takes duration seconds to reach its resting state; from.y is a fraction of font size. |\n| fill | A color string (#RRGGBB or #RRGGBBAA), `{linear: {angle, stops: [{at,color}, ...]}}` or `{radial: {stops: [{at,color}, ...]}}`. Stop positions are 0–1; angle is degrees, 0 left to right. On color clips, fill replaces color when supplied. |\n| shape, width, height, radius, stroke | shape is rect or ellipse. width/height are fractions of canvas width/height before scaling. radius rounds rect corners in pixels at 1080-pixel frame height. stroke is `{color: string, width: number}`. |\n| transitionIn, transitionOut | `{kind, length: number}` at the clip's beginning/end. length is seconds. fade changes opacity; dissolve blends; push_left/push_right move horizontally; wipe_left reveals horizontally. |\n\n#### Update fields (ItemPatchView)\n\nAll fields are optional; use only fields relevant to the item's type. Supported fields: start, length, sourceIn, playback, volumeDb, transform, fit, text, style, color, fadeIn, fadeOut, animate, reveal, animation, fill, stroke, shape, width, height, radius, transitionIn, transitionOut. Values and units match Insert. Set animation to null to clear the preset; set animate or reveal to null to remove that effect. Applying a preset replaces existing animate/reveal. Do not set animation together with animate or reveal in one Insert/Update call. Omit a field to preserve it.\n\n#### Animation presets\n\nDiscover the catalog with `ListAnimations()`. Its entries contain id, version, phase (`in`, `out`, `loop`), target (`any` or `text`), name, description, defaultDuration in seconds, and params. Slots may combine one in, one out and one loop preset. A loop runs only in the interval between in and out; if the same property is animated by multiple slots, loop occupies only that middle interval. Text-target presets are entrances. Their duration controls the rhythm per character/word/line, not the total reveal time. Out and loop presets apply to the whole clip, not per text unit.\n\nPresets replace the clip's existing animate and reveal when applied. The source preset is retained, so changing clip length or transform automatically regenerates its keyframes/reveal. If a clip becomes shorter, in/out durations shrink proportionally; when it grows, the requested durations are restored. Split keeps in on the left, out on the right, and loop on both. Writing animate or reveal directly detaches the preset; setting animation to null clears both source and generated effects. Insert/Update reject a call that supplies animation together with animate or reveal.\n\nErrors: UNKNOWN_ANIMATION (unknown preset), INVALID_ANIMATION_PARAM (invalid slot/parameter or frame/keyframe limit), ANIMATION_TOO_LONG (in+out exceed clip length), ANIMATION_TARGET_MISMATCH (text-only preset on a non-text or preset on non-visual clip), ANIMATION_PHASE_MISMATCH (preset in the wrong slot). Each animated property is limited to 600 keyframes; loop duration must be at least 4 frames. `ANIMATION_TOO_LONG` is avoided during later length changes by proportional fitting.\n\n#### Speed, reverse and freeze\n\nVideo/audio Insert and Update accept playback as `{kind: \"rate\", rate: number, direction: \"forward\" | \"reverse\", audio: \"preservePitch\" | \"resample\" | \"mute\"}` or `{kind: \"freeze\"}`. Rate is finite and inclusive 0.25–4. Omitted playback defaults to 1× forward with preservePitch; supply the complete rate object when changing playback. preservePitch keeps pitch, resample changes pitch with speed, mute removes audio. Reverse requires explicit audio: \"mute\"; preservePitch/resample are rejected with UNSUPPORTED_PLAYBACK rather than silently muted. Freeze holds sourceIn and is silent. GetItem/GetTimeline echo playback and the source interval in seconds; sourceOut is exclusive even for reverse and equals sourceIn for freeze.\n\nUpdate of playback keeps output length unless length is also supplied. SetSpeed preserves direction/audio, rejects frozen and non-video/audio clips, and requires keep: \"source\" or \"duration\". keep: \"source\" computes round(consumed source / new rate × fps) frames, falling back to floor if rounding would exceed the source end; the returned length/sourceOut are actual frame-rounded seconds. keep: \"duration\" keeps output length and changes source consumption. Length conflicts fail with OVERLAP; move/shorten the conflicting clip, keep duration, or explicitly use ripple: true to shift following clips on the same track. Source overflow fails with OUT_OF_SOURCE; rate limits fail with RATE_OUT_OF_RANGE. Unknown playback fields and SetSpeed options are rejected with UNKNOWN_FIELD; options only accept keep and boolean ripple.\n\nExample for an existing four-second video/audio clip id: `Print(SetSpeed(id, 0.5, {keep: \"source\"})); Print(SetSpeed(id, 2, {keep: \"source\"}));` returns lengths 8 then 2, keeping the same source interval. Reverse: `Update(id, {playback: {kind: \"rate\", rate: 1, direction: \"reverse\", audio: \"mute\"}})`. Freeze: `Update(id, {playback: {kind: \"freeze\"}})`. Ensure enough source remains for the chosen length/rate. Browser reverse playback currently displays a placeholder; server-rendered Preview/frames and exports support reverse normally. Speed-adjusted audio is generated asynchronously after the edit transaction commits; exports wait for that audio before rendering.\n\n#### Script names versus HTTP response names\n\nUse camelCase inside scripts, including nested objects. HTTP request/response JSON outside script source uses snake_case. Map media.library_id → media.libraryId, media.asset_id → media.assetId, source_in → sourceIn, volume_db → volumeDb, fade_in/fade_out → fadeIn/fadeOut, transition_in/transition_out → transitionIn/transitionOut, font_family/font_size/font_weight/max_width → fontFamily/fontSize/fontWeight/maxWidth, gain_db → gainDb, highlight_color/max_lines → highlightColor/maxLines. Fields such as animate, reveal, fill, stroke, at and length retain their spelling. GetTimeline/GetItem already return camelCase compact views; the expanded retrieveTimeline HTTP response is not an Insert object.\n\nUnrecognized script fields fail with OPS_REJECTED and rejection code UNKNOWN_FIELD; snake_case mistakes suggest the corresponding camelCase name. The error message lists each rejection's #opIndex, code and reason. Correct the named fields and retry the saved edit; do not assume an ignored field applied an effect.\n";
8272
8282
  readonly http: "POST";
8273
8283
  readonly path: "/cut/v1/projects/{project_id}:execute";
8274
8284
  readonly streaming: "no";
@@ -9164,7 +9174,7 @@ export declare const operations: readonly [{
9164
9174
  readonly resource: "file.files";
9165
9175
  readonly method: "create";
9166
9176
  readonly summary: "Upload file";
9167
- readonly description: "Upload a file to reuse in conversations or attach to a knowledge base. Unlike OpenAI Files, uploads must be nonempty and at most 100000000 bytes, and only user_data and vision purposes are accepted. Send file bytes as a multipart file part, not a filename or file ID; in the SDK use a File or Blob, for example new File([\"Return within 23 days.\"], \"policy.txt\", { type: \"text/plain\" }). Content determines the MIME type. Supported uploads include PDF, DOCX/XLSX/PPTX, PNG/JPEG/GIF/WebP, MP3/WAV/FLAC/OGG/M4A, MP4/WebM, and UTF-8 JSON/NDJSON/CSV/Markdown/plain text; empty, unsupported, oversized files and unsupported purposes return 400. Use Uploads for larger files. The purpose vision accepts only PNG, JPEG, GIF and WebP, while conversation images require user_data. The returned ID belongs to your tenant; upload alone does not ingest the file into Knowledge. Knowledge attachment has a lower limit of 100000000 bytes. Optionally set expires_after[anchor]=created_at with expires_after[seconds] (3600–7776000). Without expiry, the file persists until deleted.";
9177
+ readonly description: "Upload a file to reuse in conversations or attach to a knowledge base. Unlike OpenAI Files, uploads must be nonempty and at most 100000000 bytes, and only user_data, assistants and vision purposes are accepted. Send file bytes as a multipart file part, not a filename or file ID; in the SDK use a File or Blob, for example new File([\"Return within 23 days.\"], \"policy.txt\", { type: \"text/plain\" }). Content determines the MIME type. Supported uploads include PDF, DOCX/XLSX/PPTX, PNG/JPEG/GIF/WebP, MP3/WAV/FLAC/OGG/M4A, MP4/WebM, and UTF-8 JSON/NDJSON/CSV/Markdown/plain text; empty, unsupported, oversized files and unsupported purposes return 400. Use Uploads for larger files. The purpose vision accepts only PNG, JPEG, GIF and WebP, while conversation images require user_data. The returned ID belongs to your tenant; upload alone does not ingest the file into Knowledge. Knowledge attachment has a lower limit of 100000000 bytes. Optionally set expires_after[anchor]=created_at with expires_after[seconds] (3600–7776000). Without expiry, the file persists until deleted.";
9168
9178
  readonly http: "POST";
9169
9179
  readonly path: "/file/v1/files";
9170
9180
  readonly streaming: "no";
@@ -9182,9 +9192,9 @@ export declare const operations: readonly [{
9182
9192
  }, {
9183
9193
  readonly name: "purpose";
9184
9194
  readonly type: "string";
9185
- readonly enum: readonly ["user_data", "vision"];
9195
+ readonly enum: readonly ["user_data", "assistants", "vision"];
9186
9196
  readonly required: true;
9187
- readonly description: "Purpose label stored with the file: user_data or vision. The vision purpose accepts only PNG, JPEG, GIF and WebP images. Conversation image references require user_data.";
9197
+ readonly description: "Purpose label stored with the file: user_data, assistants or vision. The label is stored and returned unchanged; assistants follows the same rules as user_data. The vision purpose accepts only PNG, JPEG, GIF and WebP images. Conversation image references require user_data.";
9188
9198
  }, {
9189
9199
  readonly name: "expires_after";
9190
9200
  readonly type: "object";
@@ -9241,7 +9251,7 @@ export declare const operations: readonly [{
9241
9251
  readonly resource: "file.files.contentLinks";
9242
9252
  readonly method: "revoke";
9243
9253
  readonly summary: "Revoke a file content link";
9244
- readonly description: "Stop a previously issued content link from reading a file. Obtain the link with files.contentUrl.create. Use file_id from file creation or listing and the token path component from a content URL (/c/<token>), not the complete URL. The caller must own the file and have write access; a read-only binding is refused. Revocation propagates through the capability deny list within 30 seconds; the file and other links remain available. Only current IAM capability tokens can be revoked; legacy content links expire at the migration deadline. Example body: {\"token\":\"<token from /c/>\"}.";
9254
+ readonly description: "Stop a previously issued content link from reading a file. Obtain the link with files.contentUrl.create. Use file_id from file creation or listing and the token path component from a content URL (/c/<token>), not the complete URL. The caller must own the file and have write access; a read-only binding is refused. Revocation propagates through the capability deny list within 15 minutes; the file and other links remain available. Only current IAM capability tokens can be revoked; legacy content links expire at the migration deadline. Example body: {\"token\":\"<token from /c/>\"}.";
9245
9255
  readonly http: "POST";
9246
9256
  readonly path: "/file/v1/files/{file_id}/content_links:revoke";
9247
9257
  readonly streaming: "no";
@@ -9265,7 +9275,7 @@ export declare const operations: readonly [{
9265
9275
  readonly resource: "file.files.contentUrl";
9266
9276
  readonly method: "create";
9267
9277
  readonly summary: "Create a download URL";
9268
- readonly description: "Download a file's bytes to a local disk from a coding agent without sending them through the model. Use file_id from file creation or listing, then run curl -fsSL -o <filename> '<url>' locally with the returned URL; GET needs no Authorization header. The link is reusable until expiry and supports a single byte Range (for example Range: bytes=0-9 returns 206). Revoke it with files.contentLinks.revoke, passing the token after /c/ in the URL. Expired, revoked, invalid or cross-organization URLs return 404. Lifetime defaults to 3600 seconds and is at most 604800 seconds. Issuance requires the same credential and file-read access as files.retrieveContent; a processing file returns 409 FILE_NOT_READY, so poll files.retrieve until active before retrying. A missing, expired or other-organization file returns 404. Each issuance creates a new link. OpenAI Files has no signed download URL; this follows S3 presigned GET semantics. Example body: {\"ttl_seconds\":3600}.";
9278
+ readonly description: "Download a file's bytes to a local disk from a coding agent without sending them through the model. Use file_id from file creation or listing, then run curl -fsSL -o <filename> '<url>' locally with the returned URL; GET needs no Authorization header. The link is reusable until expiry and supports a single byte Range (for example Range: bytes=0-9 returns 206). Revoke it with files.contentLinks.revoke, passing the token after /c/ in the URL. Expired, revoked, invalid or cross-organization URLs return 404. Lifetime defaults to 900 seconds and is at most 604800 seconds. Issuance requires the same credential and file-read access as files.retrieveContent; a processing file returns 409 FILE_NOT_READY, so poll files.retrieve until active before retrying. A missing, expired or other-organization file returns 404. Each issuance creates a new link. OpenAI Files has no signed download URL; this follows S3 presigned GET semantics. Example body: {\"ttl_seconds\":3600}.";
9269
9279
  readonly http: "POST";
9270
9280
  readonly path: "/file/v1/files/{file_id}/content_url";
9271
9281
  readonly streaming: "no";
@@ -9282,14 +9292,14 @@ export declare const operations: readonly [{
9282
9292
  readonly name: "ttl_seconds";
9283
9293
  readonly type: "integer";
9284
9294
  readonly required: false;
9285
- readonly description: "Download link lifetime in seconds, from 1 through 604800; omitted means 3600. This does not change the file's own expiry.";
9295
+ readonly description: "Download link lifetime in seconds, from 1 through 604800; omitted means 900. This does not change the file's own expiry.";
9286
9296
  }];
9287
9297
  };
9288
9298
  }, {
9289
9299
  readonly resource: "file.uploads";
9290
9300
  readonly method: "create";
9291
9301
  readonly summary: "Create an upload";
9292
- readonly description: "Start a multipart upload for a file larger than the 100000000-byte direct-upload limit. Supply the exact byte length, filename, MIME type and purpose. Unlike OpenAI, uploads accept at most 2 GiB (2147483648 bytes) and only user_data and vision purposes. Add parts of at most 64000000 bytes and complete within one hour. Optional part_size enables fixed-size, retryable parts. expires_after applies to the resulting file (3600–7776000 seconds on this own face); without it the file persists until deleted.";
9302
+ readonly description: "Start a multipart upload for a file larger than the 100000000-byte direct-upload limit. Supply the exact byte length, filename, MIME type and purpose. Unlike OpenAI, uploads accept at most 2 GiB (2147483648 bytes) and only user_data, assistants and vision purposes. Add parts of at most 64000000 bytes and complete within one hour. Optional part_size enables fixed-size, retryable parts. expires_after applies to the resulting file (3600–7776000 seconds on this own face); without it the file persists until deleted.";
9293
9303
  readonly http: "POST";
9294
9304
  readonly path: "/file/v1/uploads";
9295
9305
  readonly streaming: "no";
@@ -9316,9 +9326,9 @@ export declare const operations: readonly [{
9316
9326
  }, {
9317
9327
  readonly name: "purpose";
9318
9328
  readonly type: "string";
9319
- readonly enum: readonly ["user_data", "vision"];
9329
+ readonly enum: readonly ["user_data", "assistants", "vision"];
9320
9330
  readonly required: true;
9321
- readonly description: "Use user_data for conversation attachments, or vision for PNG, JPEG, GIF and WebP images.";
9331
+ readonly description: "Use user_data for conversation attachments, assistants for assistant files, or vision for PNG, JPEG, GIF and WebP images.";
9322
9332
  }, {
9323
9333
  readonly name: "expires_after";
9324
9334
  readonly type: "object";
@@ -9362,9 +9372,9 @@ export declare const operations: readonly [{
9362
9372
  }, {
9363
9373
  readonly name: "purpose";
9364
9374
  readonly type: "string";
9365
- readonly enum: readonly ["user_data", "vision"];
9375
+ readonly enum: readonly ["user_data", "assistants", "vision"];
9366
9376
  readonly required: false;
9367
- readonly description: "user_data stores ordinary files and conversation images; vision accepts PNG, JPEG, GIF or WebP images only. Omitted means user_data.";
9377
+ readonly description: "user_data and assistants store ordinary files and conversation images with their original purpose label; vision accepts PNG, JPEG, GIF or WebP images only. Omitted means user_data.";
9368
9378
  }, {
9369
9379
  readonly name: "expires_in";
9370
9380
  readonly type: "integer";
@@ -9494,7 +9504,7 @@ export declare const operations: readonly [{
9494
9504
  readonly resource: "knowledge.vectorStores";
9495
9505
  readonly method: "create";
9496
9506
  readonly summary: "Create knowledge base";
9497
- readonly description: "Create a knowledge base, optionally starting ingestion of uploaded file_ids in the same call; no separate attachment or batch is needed for those files. Use the returned id with vectorStores.files.retrieve to poll each attachment until completed, failed or cancelled; store status=completed alone does not mean every file succeeded. Each file accepts up to 52428800 bytes and 5000000 estimated tokens; each account holds up to 100 active/nondeleted stores. Minimal body: {\"name\":\"Refund policies\"}.";
9507
+ readonly description: "Create a knowledge base, optionally starting ingestion of uploaded file_ids in the same call; no separate attachment or batch is needed for those files. Use the returned id with vectorStores.files.retrieve to poll each attachment until completed, failed or cancelled; store status=completed alone does not mean every file succeeded. PDF files accept up to 536870912 bytes (512 MiB), while other formats accept up to 52428800 bytes (50 MiB), constrained by Router conversion; every file is limited to 5000000 estimated tokens; each account holds up to 100 active/nondeleted stores. Minimal body: {\"name\":\"Refund policies\"}.";
9498
9508
  readonly http: "POST";
9499
9509
  readonly path: "/knowledge/v1/vector_stores";
9500
9510
  readonly streaming: "no";
@@ -9528,7 +9538,7 @@ export declare const operations: readonly [{
9528
9538
  readonly name: "chunking_strategy";
9529
9539
  readonly type: "object";
9530
9540
  readonly required: false;
9531
- readonly description: "auto resolves to static with 800 estimated tokens and 400 overlap tokens. Unlike OpenAI vector stores, token counts are estimates; each Han character counts as one, and other whitespace-delimited words count as their UTF-16 length divided by four, rounded up.";
9541
+ readonly description: "Native attachment strategy. auto uses static chunks of 800 estimated tokens with 400 overlap; static supplies explicit chunk sizes; hierarchical indexes child chunks and supplies bounded parent context. Existing attachments are reused unchanged; remove and reattach a file to change its strategy.";
9532
9542
  }, {
9533
9543
  readonly name: "description";
9534
9544
  readonly type: "string";
@@ -9798,7 +9808,7 @@ export declare const operations: readonly [{
9798
9808
  readonly resource: "knowledge.vectorStores.files";
9799
9809
  readonly method: "create";
9800
9810
  readonly summary: "Add file";
9801
- readonly description: "Attach an uploaded File for asynchronous ingestion, then poll this attachment until status is completed, failed or cancelled before searching. Each file accepts up to 52428800 bytes and 5000000 estimated tokens; chunk sizes use estimated tokens rather than a model tokenizer. Text, Markdown, CSV, JSON, HTML, PDF, DOCX, PPTX, XLSX and PNG/JPEG/GIF/WebP images can be extracted; audio and video uploads are not knowledge documents. Images may yield generated descriptions rather than verbatim OCR. auto chunking resolves to static 800/400; explicit sizes are 100–4096 with overlap at most half the size. Each store holds at most 10000 attached files. Reattaching the same file returns its existing record without applying new attributes or chunking; inspect last_error after failure.";
9811
+ readonly description: "Attach an uploaded File for asynchronous ingestion, then poll this attachment until status is completed, failed or cancelled before searching. PDF files accept up to 536870912 bytes (512 MiB), while other formats accept up to 52428800 bytes (50 MiB), constrained by Router conversion; every file is limited to 5000000 estimated tokens; chunk sizes use estimated tokens rather than a model tokenizer. Text, Markdown, CSV, JSON, HTML, PDF, DOCX, PPTX, XLSX and PNG/JPEG/GIF/WebP images can be extracted; audio and video uploads are not knowledge documents. Images may yield generated descriptions rather than verbatim OCR. auto chunking resolves to static 800/400; explicit sizes are 100–4096 with overlap at most half the size. Each store holds at most 10000 attached files. Reattaching the same file returns its existing record without applying new attributes or chunking; inspect last_error after failure.";
9802
9812
  readonly http: "POST";
9803
9813
  readonly path: "/knowledge/v1/vector_stores/{vector_store_id}/files";
9804
9814
  readonly streaming: "no";
@@ -9825,7 +9835,7 @@ export declare const operations: readonly [{
9825
9835
  readonly name: "chunking_strategy";
9826
9836
  readonly type: "object";
9827
9837
  readonly required: false;
9828
- readonly description: "auto resolves to static with 800 estimated tokens and 400 overlap tokens. Unlike OpenAI vector stores, token counts are estimates; each Han character counts as one, and other whitespace-delimited words count as their UTF-16 length divided by four, rounded up.";
9838
+ readonly description: "Native attachment strategy. auto uses static chunks of 800 estimated tokens with 400 overlap; static supplies explicit chunk sizes; hierarchical indexes child chunks and supplies bounded parent context. Existing attachments are reused unchanged; remove and reattach a file to change its strategy.";
9829
9839
  }];
9830
9840
  };
9831
9841
  }, {
@@ -10075,11 +10085,22 @@ export declare const operations: readonly [{
10075
10085
  readonly description: "Chunk ID returned by segment listing or native search content.";
10076
10086
  }];
10077
10087
  readonly query: readonly [];
10088
+ }, {
10089
+ readonly resource: "media.generation.capabilities";
10090
+ readonly method: "list";
10091
+ readonly summary: "Get generation capabilities";
10092
+ readonly description: "Read supported text-to-video intent, default model, duration and aspect-ratio limits, per-library concurrency and candidate retention. Generation is charged per second; unsaved candidates expire after 7 days.";
10093
+ readonly http: "GET";
10094
+ readonly path: "/media/v1/generation/capabilities";
10095
+ readonly streaming: "no";
10096
+ readonly pagination: false;
10097
+ readonly pathParams: readonly [];
10098
+ readonly query: readonly [];
10078
10099
  }, {
10079
10100
  readonly resource: "media.libraries";
10080
10101
  readonly method: "list";
10081
10102
  readonly summary: "List libraries";
10082
- readonly description: "List libraries owned by the caller, newest first. By default, deleting and deleted libraries are excluded; use status=deleting to find libraries awaiting purge. All supplied label pairs must match.";
10103
+ readonly description: "Read a caller-owned library’s current settings, usage and lifecycle status. A deleting library remains readable; missing, foreign or purged libraries return LIBRARY_NOT_FOUND.";
10083
10104
  readonly http: "GET";
10084
10105
  readonly path: "/media/v1/libraries";
10085
10106
  readonly streaming: "no";
@@ -10146,7 +10167,7 @@ export declare const operations: readonly [{
10146
10167
  readonly resource: "media.libraries";
10147
10168
  readonly method: "delete";
10148
10169
  readonly summary: "Delete library";
10149
- readonly description: "Soft-delete an active library, returning its deleting status and purge_at deadline. Asset operations and delivery become unavailable; the library can be restored before purge_at. Repeated deletion while deleting returns the current library.";
10170
+ readonly description: "Restore a deleting library before its purge_at deadline. The library becomes active again and deleted_at and purge_at are cleared; expired or non-deleting libraries cannot be restored.";
10150
10171
  readonly http: "DELETE";
10151
10172
  readonly path: "/media/v1/libraries/{library_id}";
10152
10173
  readonly streaming: "no";
@@ -10161,7 +10182,7 @@ export declare const operations: readonly [{
10161
10182
  readonly resource: "media.libraries";
10162
10183
  readonly method: "retrieve";
10163
10184
  readonly summary: "Get library";
10164
- readonly description: "Read a caller-owned library’s current settings, usage and lifecycle status. A deleting library remains readable; missing, foreign or purged libraries return LIBRARY_NOT_FOUND.";
10185
+ readonly description: "Update an active library’s supplied settings. Labels replace the complete map; understanding settings and model roles merge with current values. Changing the embedding model is rejected while assets exist.";
10165
10186
  readonly http: "GET";
10166
10187
  readonly path: "/media/v1/libraries/{library_id}";
10167
10188
  readonly streaming: "no";
@@ -10176,7 +10197,7 @@ export declare const operations: readonly [{
10176
10197
  readonly resource: "media.libraries";
10177
10198
  readonly method: "update";
10178
10199
  readonly summary: "Update library";
10179
- readonly description: "Update an active library’s supplied settings. Labels replace the complete map; understanding settings and model roles merge with current values. Changing the embedding model is rejected while assets exist.";
10200
+ readonly description: "Update an active library. Set hotwords for spelling evidence in subsequent transcripts; [] disables inferred vocabulary. Transcript understanding calls the timestamped ASR, optional reference ASR and correction model through the existing metered model path. Reprocess assets to apply new settings to existing transcripts.";
10180
10201
  readonly http: "PATCH";
10181
10202
  readonly path: "/media/v1/libraries/{library_id}";
10182
10203
  readonly streaming: "no";
@@ -10190,6 +10211,12 @@ export declare const operations: readonly [{
10190
10211
  readonly body: {
10191
10212
  readonly required: true;
10192
10213
  readonly fields: readonly [{
10214
+ readonly name: "hotwords";
10215
+ readonly type: "array";
10216
+ readonly itemType: "string";
10217
+ readonly required: false;
10218
+ readonly description: "Correction vocabulary, at most 200 nonblank terms of at most 32 Unicode characters each. Omitted on an unconfigured library: correction derives up to 200 distinct names from the library name and every folder level, excluding generic names such as 原始素材 and 混剪成品. An explicit empty array disables this vocabulary. Updating affects subsequent understanding and explicit reprocessing, not existing results.";
10219
+ }, {
10193
10220
  readonly name: "models";
10194
10221
  readonly type: "object";
10195
10222
  readonly required: false;
@@ -10215,7 +10242,7 @@ export declare const operations: readonly [{
10215
10242
  readonly resource: "media.libraries.assets";
10216
10243
  readonly method: "list";
10217
10244
  readonly summary: "List assets";
10218
- readonly description: "List assets in an active library, newest first, optionally filtering by exact folder and stored resource type. Continue using next_cursor; video includes audio-only assets.";
10245
+ readonly description: "Upload content into an active library and return a Cloudinary-compatible resource. Use file for a multipart file, data URI, public HTTPS URL or same-owner file identifier. Reusing public_id overwrites by default; overwrite=false returns the existing resource. Chunk uploads require both chunk headers.";
10219
10246
  readonly http: "GET";
10220
10247
  readonly path: "/media/v1/libraries/{library_id}/assets";
10221
10248
  readonly streaming: "no";
@@ -10251,7 +10278,7 @@ export declare const operations: readonly [{
10251
10278
  readonly resource: "media.libraries.assets";
10252
10279
  readonly method: "create";
10253
10280
  readonly summary: "Upload asset";
10254
- readonly description: "Upload content into an active library and return a Cloudinary-compatible resource. Use file for a multipart file, data URI, public HTTPS URL or same-owner file identifier. Reusing public_id overwrites by default; overwrite=false returns the existing resource. Chunk uploads require both chunk headers.";
10281
+ readonly description: " For understanding, Media generates proxies for video sources of 25 MB or more and audio-only sources of 100 MB or more; originals remain available unchanged. The duration limit is 10 minutes. A video proxy still above 95 MB after recompression, or a source exceeding the duration limit, is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.";
10255
10282
  readonly http: "POST";
10256
10283
  readonly path: "/media/v1/libraries/{library_id}/assets";
10257
10284
  readonly streaming: "no";
@@ -10289,7 +10316,7 @@ export declare const operations: readonly [{
10289
10316
  readonly name: "asset_folder";
10290
10317
  readonly type: "string";
10291
10318
  readonly required: false;
10292
- readonly description: "Organizational folder path, separate from public_id. Empty selects the root; leading or trailing slashes, empty path segments, and . or .. segments are rejected.";
10319
+ readonly description: "Organizational folder path, separate from public_id. Empty selects the root; leading or trailing slashes, empty path segments, and . or .. segments are rejected. New path segments containing U+FFFD or consisting only of question marks are rejected with INVALID_PARAMS; send UTF-8 names. Existing affected folders remain readable and assets can be moved out.";
10293
10320
  }, {
10294
10321
  readonly name: "use_filename";
10295
10322
  readonly type: "boolean";
@@ -10348,7 +10375,7 @@ export declare const operations: readonly [{
10348
10375
  readonly resource: "media.libraries.assets.import";
10349
10376
  readonly method: "create";
10350
10377
  readonly summary: "Import file";
10351
- readonly description: "Copy source content into an active library using upload options and return the full native Asset. The imported asset is independent of the source after copying. Reusing public_id follows overwrite semantics.";
10378
+ readonly description: "Copy a File into an independent Media asset. New assets default to organization-private delivery (type=authenticated); explicitly set type=upload for public originals and derivatives. Omitting type on overwrite preserves the current type. Deleting the source File does not delete this copy. For understanding, Media generates proxies for video sources of 25 MB or more and audio-only sources of 100 MB or more; originals remain available unchanged. The duration limit is 10 minutes. A video proxy still above 95 MB after recompression, or a source exceeding the duration limit, is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.";
10352
10379
  readonly http: "POST";
10353
10380
  readonly path: "/media/v1/libraries/{library_id}/assets/import";
10354
10381
  readonly streaming: "no";
@@ -10365,7 +10392,7 @@ export declare const operations: readonly [{
10365
10392
  readonly name: "file_id";
10366
10393
  readonly type: "string";
10367
10394
  readonly required: true;
10368
- readonly description: "File ID to copy into this library instead of file bytes. This independent copy defaults to public delivery; set type=authenticated for private delivery. Deleting the source File does not delete this asset.";
10395
+ readonly description: "File ID to copy into this library instead of file bytes. This independent copy defaults to organization-private delivery (type=authenticated); explicitly set type=upload for public delivery. Deleting the source File does not delete this asset.";
10369
10396
  }, {
10370
10397
  readonly name: "public_id";
10371
10398
  readonly type: "string";
@@ -10385,7 +10412,7 @@ export declare const operations: readonly [{
10385
10412
  readonly name: "asset_folder";
10386
10413
  readonly type: "string";
10387
10414
  readonly required: false;
10388
- readonly description: "Organizational folder path, separate from public_id. Empty selects the root; leading or trailing slashes, empty path segments, and . or .. segments are rejected.";
10415
+ readonly description: "Organizational folder path, separate from public_id. Empty selects the root; leading or trailing slashes, empty path segments, and . or .. segments are rejected. New path segments containing U+FFFD or consisting only of question marks are rejected with INVALID_PARAMS; send UTF-8 names. Existing affected folders remain readable and assets can be moved out.";
10389
10416
  }, {
10390
10417
  readonly name: "use_filename";
10391
10418
  readonly type: "boolean";
@@ -10444,7 +10471,7 @@ export declare const operations: readonly [{
10444
10471
  readonly resource: "media.libraries.assets";
10445
10472
  readonly method: "delete";
10446
10473
  readonly summary: "Delete asset";
10447
- readonly description: "Delete an asset from the library so it is no longer readable, searchable or deliverable. This removes the asset rather than placing it in the library’s restoration window; a missing asset returns ASSET_NOT_FOUND.";
10474
+ readonly description: "Queue reprocessing of the asset’s current version and return its updated state immediately. Omit kinds to retry failed tasks and legacy source-size unsupported tasks; explicit kinds rerun applicable completed tasks and recoverable source-size unsupported tasks. Other unsupported causes remain unchanged. Replaced understandings become superseded, and processing finishes asynchronously.";
10448
10475
  readonly http: "DELETE";
10449
10476
  readonly path: "/media/v1/libraries/{library_id}/assets/{asset_id}";
10450
10477
  readonly streaming: "no";
@@ -10463,7 +10490,7 @@ export declare const operations: readonly [{
10463
10490
  readonly resource: "media.libraries.assets";
10464
10491
  readonly method: "retrieve";
10465
10492
  readonly summary: "Get asset";
10466
- readonly description: "Read a non-deleted asset by its asset_id in an active library, including content hashes, processing progress and available previews. Missing or deleted assets return ASSET_NOT_FOUND.";
10493
+ readonly description: "Update an asset’s supplied metadata fields. Tags and context replace their current collections; an empty collection clears them. Moving asset_folder or changing display_name preserves public_id and delivery URLs.";
10467
10494
  readonly http: "GET";
10468
10495
  readonly path: "/media/v1/libraries/{library_id}/assets/{asset_id}";
10469
10496
  readonly streaming: "no";
@@ -10482,7 +10509,7 @@ export declare const operations: readonly [{
10482
10509
  readonly resource: "media.libraries.assets";
10483
10510
  readonly method: "update";
10484
10511
  readonly summary: "Update asset";
10485
- readonly description: "Update an asset’s supplied metadata fields. Tags and context replace their current collections; an empty collection clears them. Moving asset_folder or changing display_name preserves public_id and delivery URLs.";
10512
+ readonly description: "Delete an asset from the library so it is no longer readable, searchable or deliverable. This removes the asset rather than placing it in the library’s restoration window; a missing asset returns ASSET_NOT_FOUND.";
10486
10513
  readonly http: "PATCH";
10487
10514
  readonly path: "/media/v1/libraries/{library_id}/assets/{asset_id}";
10488
10515
  readonly streaming: "no";
@@ -10508,7 +10535,7 @@ export declare const operations: readonly [{
10508
10535
  readonly name: "asset_folder";
10509
10536
  readonly type: "string";
10510
10537
  readonly required: false;
10511
- readonly description: "Organizational folder path, separate from public_id. Empty selects the root; leading or trailing slashes, empty path segments, and . or .. segments are rejected.";
10538
+ readonly description: "Organizational folder path, separate from public_id. Empty selects the root; leading or trailing slashes, empty path segments, and . or .. segments are rejected. New path segments containing U+FFFD or consisting only of question marks are rejected with INVALID_PARAMS; send UTF-8 names. Existing affected folders remain readable and assets can be moved out.";
10512
10539
  }, {
10513
10540
  readonly name: "tags";
10514
10541
  readonly type: "array";
@@ -10522,11 +10549,46 @@ export declare const operations: readonly [{
10522
10549
  readonly description: "Replacement custom string-metadata map. Nonempty keys are required and serialized JSON must fit within 1024 UTF-8 bytes; an empty object clears the metadata.";
10523
10550
  }];
10524
10551
  };
10552
+ }, {
10553
+ readonly resource: "media.libraries.assets.frames";
10554
+ readonly method: "create";
10555
+ readonly summary: "Create frame URLs";
10556
+ readonly description: "Media creates JPEG frame URLs for inspecting one or more moments in a video without downloading the original. Obtain library_id from libraries and asset_id plus duration from assets. Send 1–20 integer microsecond timestamps strictly below duration, for example {\"at_micros\":[0,1000000],\"width\":640}. Only video assets are supported; audio and images return INVALID_PARAMS. Width defaults to 640 and accepts 160, 320 or 640. This read operation does not store a new asset or rerun understanding. Fetch each returned URL to obtain the frame; delivery usage follows media pricing. Authenticated links expire after 300 seconds; upload links remain public and permanent. Reissue expired links. Foreign libraries and assets return 404 without revealing their existence.";
10557
+ readonly http: "POST";
10558
+ readonly path: "/media/v1/libraries/{library_id}/assets/{asset_id}/frames";
10559
+ readonly streaming: "no";
10560
+ readonly pagination: false;
10561
+ readonly pathParams: readonly [{
10562
+ readonly name: "library_id";
10563
+ readonly sdkName: "library_id";
10564
+ readonly description: "Library identifier returned by library creation or listing; must be accessible to the current credential.";
10565
+ }, {
10566
+ readonly name: "asset_id";
10567
+ readonly sdkName: "asset_id";
10568
+ readonly description: "Video asset identifier returned by asset upload or listing in this library; read its duration before choosing timestamps.";
10569
+ }];
10570
+ readonly query: readonly [];
10571
+ readonly body: {
10572
+ readonly required: true;
10573
+ readonly fields: readonly [{
10574
+ readonly name: "at_micros";
10575
+ readonly type: "array";
10576
+ readonly itemType: "integer";
10577
+ readonly required: true;
10578
+ readonly description: "One to twenty timestamps in microseconds from the start of the video. Each must be a nonnegative safe integer strictly below the video duration; order and duplicates are preserved.";
10579
+ }, {
10580
+ readonly name: "width";
10581
+ readonly type: "integer";
10582
+ readonly enum: readonly [160, 320, 640];
10583
+ readonly required: false;
10584
+ readonly description: "Maximum JPEG width in pixels: 160 is a small thumbnail, 320 a preview and 640 a larger preview. Defaults to 640; larger widths are unavailable.";
10585
+ }];
10586
+ };
10525
10587
  }, {
10526
10588
  readonly resource: "media.libraries.assets.reprocess";
10527
10589
  readonly method: "create";
10528
10590
  readonly summary: "Reprocess asset";
10529
- readonly description: "Queue reprocessing of the asset’s current version and return its updated state immediately. Omit kinds to retry failed tasks; explicit kinds rerun applicable completed tasks. Replaced understandings become superseded, and processing finishes asynchronously.";
10591
+ readonly description: " For understanding, Media generates proxies for video sources of 25 MB or more and audio-only sources of 100 MB or more; originals remain available unchanged. The duration limit is 10 minutes. A video proxy still above 95 MB after recompression, or a source exceeding the duration limit, is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.";
10530
10592
  readonly http: "POST";
10531
10593
  readonly path: "/media/v1/libraries/{library_id}/assets/{asset_id}/reprocess";
10532
10594
  readonly streaming: "no";
@@ -10549,14 +10611,14 @@ export declare const operations: readonly [{
10549
10611
  readonly itemType: "string";
10550
10612
  readonly enum: readonly ["visual", "frames", "transcript", "embedding"];
10551
10613
  readonly required: false;
10552
- readonly description: "Processing tasks to rerun. Omit to retry failed tasks only; explicit kinds rerun applicable ready, failed or unsupported tasks. Pending and running tasks are unchanged; an empty array does nothing.";
10614
+ readonly description: "Processing tasks to rerun. Omit to retry failed tasks and legacy source-size unsupported tasks; explicit kinds rerun applicable ready or failed tasks and recoverable source-size unsupported tasks. Other unsupported causes remain unchanged. Pending and running tasks are unchanged; an empty array does nothing.";
10553
10615
  }];
10554
10616
  };
10555
10617
  }, {
10556
10618
  readonly resource: "media.libraries.assets.understandings";
10557
10619
  readonly method: "list";
10558
10620
  readonly summary: "List understandings";
10559
- readonly description: "List an asset’s understanding results in creation order. By default only current, non-superseded results are returned; use include_superseded=true for history or kind to select an output type.";
10621
+ readonly description: "List understanding results for an asset, ordered by creation time. Use the cursor to continue; include_superseded also returns replaced records. The optional shots array contains current-version shot boundaries and per-shot captions, scene, location guesses, visible text and confidence flags; it is absent on legacy records. Location guesses and folder mismatch are unverified hints. Correction-enabled transcripts expose text_original, corrected text and a correction audit. Their timed data array remains suitable for subtitles. Reference failure is marked missing; correction failure returns the original verbatim. Model inference uses the existing metered model path.";
10560
10622
  readonly http: "GET";
10561
10623
  readonly path: "/media/v1/libraries/{library_id}/assets/{asset_id}/understandings";
10562
10624
  readonly streaming: "no";
@@ -10578,9 +10640,9 @@ export declare const operations: readonly [{
10578
10640
  }, {
10579
10641
  readonly name: "kind";
10580
10642
  readonly type: "string";
10581
- readonly enum: readonly ["caption", "tags", "ocr", "transcript", "frame"];
10643
+ readonly enum: readonly ["caption", "tags", "ocr", "transcript", "frame", "overview", "audio", "embedding"];
10582
10644
  readonly required: false;
10583
- readonly description: "Filter result kind: caption is a visual description, tags are recognized labels, ocr is recognized image text, transcript is speech text, and frame describes a video segment.";
10645
+ readonly description: "Return one output kind: caption is a visual description, tags are generated labels, ocr is visible text, transcript is speech, frame is a video shot, overview is a video summary, audio is sampled audio understanding, and embedding reports a failed embedding step.";
10584
10646
  }, {
10585
10647
  readonly name: "cursor";
10586
10648
  readonly type: "string";
@@ -10596,7 +10658,7 @@ export declare const operations: readonly [{
10596
10658
  readonly resource: "media.libraries.assets";
10597
10659
  readonly method: "batch";
10598
10660
  readonly summary: "Batch assets alias";
10599
- readonly description: "Alias of batch creation. Apply one metadata or deletion action to ids or a frozen expression selection asynchronously; poll the returned job id to inspect completion and item failures.";
10661
+ readonly description: "Queue a frozen selection for tagging, untagging, context replacement, moving, deleting or reprocessing. IDs are limited to 1000; use an expression for larger selections, subject to the search scan budget. reprocess starts at most 30 assets per rolling minute per library. Only retryable failed steps and legacy source-size unsupported steps rerun. Omit kinds to inspect all recoverable steps, or supply kinds to narrow them. Other unsupported, permanent and completed steps remain unchanged; a permanent output blocks only its own step. Assets without any selected recoverable step count as failed items without starting understanding. Poll the returned job id; done counts accepted launches, not successful model inference. Staff Admin only permits reprocess and requires a nonblank reason. Example: {\"action\":\"reprocess\",\"selector\":{\"expression\":\"processing_state=failed AND failure_code=UPSTREAM_FAILED\"}}. For understanding, Media generates proxies for video sources of 25 MB or more and audio-only sources of 100 MB or more; originals remain available unchanged. The duration limit is 10 minutes. A video proxy still above 95 MB after recompression, or a source exceeding the duration limit, is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.";
10600
10662
  readonly http: "POST";
10601
10663
  readonly path: "/media/v1/libraries/{library_id}/assets:batch";
10602
10664
  readonly streaming: "no";
@@ -10614,13 +10676,18 @@ export declare const operations: readonly [{
10614
10676
  readonly type: "object";
10615
10677
  readonly required: true;
10616
10678
  readonly description: "Select assets by ids or by expression, never both. Expression results and exclusions are resolved when the job is created.";
10679
+ }, {
10680
+ readonly name: "reason";
10681
+ readonly type: "string";
10682
+ readonly required: false;
10683
+ readonly description: "Audit reason for the operation; required for staff Admin reprocessing and recorded with the initiating actor. Nonblank, at most 2000 characters.";
10617
10684
  }];
10618
10685
  };
10619
10686
  }, {
10620
10687
  readonly resource: "media.libraries.batches";
10621
10688
  readonly method: "create";
10622
10689
  readonly summary: "Create batch";
10623
- readonly description: "Create an asynchronous batch for tagging, untagging, replacing context, moving or deleting assets. Select ids or an expression; selection is frozen at creation. Poll the returned job id for completion and per-item failures.";
10690
+ readonly description: "Queue a frozen selection for tagging, untagging, context replacement, moving, deleting or reprocessing. IDs are limited to 1000; use an expression for larger selections, subject to the search scan budget. reprocess starts at most 30 assets per rolling minute per library. Only retryable failed steps and legacy source-size unsupported steps rerun. Omit kinds to inspect all recoverable steps, or supply kinds to narrow them. Other unsupported, permanent and completed steps remain unchanged; a permanent output blocks only its own step. Assets without any selected recoverable step count as failed items without starting understanding. Poll the returned job id; done counts accepted launches, not successful model inference. Staff Admin only permits reprocess and requires a nonblank reason. Example: {\"action\":\"reprocess\",\"selector\":{\"expression\":\"processing_state=failed AND failure_code=UPSTREAM_FAILED\"}}. For understanding, Media generates proxies for video sources of 25 MB or more and audio-only sources of 100 MB or more; originals remain available unchanged. The duration limit is 10 minutes. A video proxy still above 95 MB after recompression, or a source exceeding the duration limit, is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.";
10624
10691
  readonly http: "POST";
10625
10692
  readonly path: "/media/v1/libraries/{library_id}/batches";
10626
10693
  readonly streaming: "no";
@@ -10638,13 +10705,18 @@ export declare const operations: readonly [{
10638
10705
  readonly type: "object";
10639
10706
  readonly required: true;
10640
10707
  readonly description: "Select assets by ids or by expression, never both. Expression results and exclusions are resolved when the job is created.";
10708
+ }, {
10709
+ readonly name: "reason";
10710
+ readonly type: "string";
10711
+ readonly required: false;
10712
+ readonly description: "Audit reason for the operation; required for staff Admin reprocessing and recorded with the initiating actor. Nonblank, at most 2000 characters.";
10641
10713
  }];
10642
10714
  };
10643
10715
  }, {
10644
10716
  readonly resource: "media.libraries.batches";
10645
10717
  readonly method: "retrieve";
10646
10718
  readonly summary: "Get batch";
10647
- readonly description: "Read a batch job’s status, successful and failed item counts, and a bounded list of failed items. Use the id returned by batch creation; a job outside this library is not found.";
10719
+ readonly description: "Alias of batch creation. Apply one metadata or deletion action to ids or a frozen expression selection asynchronously; poll the returned job id to inspect completion and item failures.";
10648
10720
  readonly http: "GET";
10649
10721
  readonly path: "/media/v1/libraries/{library_id}/batches/{job_id}";
10650
10722
  readonly streaming: "no";
@@ -10663,7 +10735,7 @@ export declare const operations: readonly [{
10663
10735
  readonly resource: "media.libraries.deliveryTokens";
10664
10736
  readonly method: "create";
10665
10737
  readonly summary: "Create delivery token";
10666
- readonly description: "Issue a time-limited bearer token for originals and transformed authenticated assets in an active library. Use library_id from library creation or listing; read access is sufficient. Append token as the __cld_token__ query parameter on a matching delivery URL. The default ACL covers this library and the default lifetime is 3600 seconds; narrow acl and expires_in before sharing. Anyone holding the token can read matching paths until expires_at.";
10738
+ readonly description: "Issue a time-limited bearer token for originals and transformed authenticated assets in an active library. Use library_id from library creation or listing; read access is sufficient. Append token as the __cld_token__ query parameter on a matching delivery URL. The default ACL covers this library and the default lifetime is 900 seconds; narrow acl and expires_in before sharing. Anyone holding the token can read matching paths until expires_at.";
10667
10739
  readonly http: "POST";
10668
10740
  readonly path: "/media/v1/libraries/{library_id}/delivery_tokens";
10669
10741
  readonly streaming: "no";
@@ -10685,14 +10757,14 @@ export declare const operations: readonly [{
10685
10757
  readonly name: "expires_in";
10686
10758
  readonly type: "integer";
10687
10759
  readonly required: false;
10688
- readonly description: "Token lifetime in seconds, from 1 to 604800 inclusive; defaults to 3600.";
10760
+ readonly description: "Token lifetime in seconds, from 1 to 604800 inclusive; defaults to 900.";
10689
10761
  }];
10690
10762
  };
10691
10763
  }, {
10692
10764
  readonly resource: "media.libraries.events";
10693
10765
  readonly method: "list";
10694
10766
  readonly summary: "List events";
10695
- readonly description: "Read library events in sequence order, including while the library is deleting. Page forward with asc and after_seq, or backward with desc and before_seq; never combine the two sequence cursors.";
10767
+ readonly description: "Read library events in sequence order for observing asset writes and understanding progress. Obtain library_id from creation or listing; continue with after_seq for asc or before_seq for desc, without combining both. Use next_cursor when supplied. Reads do not start or retry understanding.";
10696
10768
  readonly http: "GET";
10697
10769
  readonly path: "/media/v1/libraries/{library_id}/events";
10698
10770
  readonly streaming: "no";
@@ -10728,7 +10800,7 @@ export declare const operations: readonly [{
10728
10800
  readonly resource: "media.libraries.folders";
10729
10801
  readonly method: "list";
10730
10802
  readonly summary: "List folders";
10731
- readonly description: "List all immediate child folders under parent, or under the root when parent is omitted. Counts include descendant assets. The result is unpaginated; limit and cursor are rejected.";
10803
+ readonly description: "undefined understood_count includes ready and partial assets; failed_count includes failed assets. Both accumulate descendants. counts_complete is false during historical backfill.";
10732
10804
  readonly http: "GET";
10733
10805
  readonly path: "/media/v1/libraries/{library_id}/folders";
10734
10806
  readonly streaming: "no";
@@ -10744,11 +10816,120 @@ export declare const operations: readonly [{
10744
10816
  readonly required: false;
10745
10817
  readonly description: "Folder whose immediate children are returned. Omit or use an empty string for the library root; invalid folder paths are rejected.";
10746
10818
  }];
10819
+ }, {
10820
+ readonly resource: "media.libraries.generations";
10821
+ readonly method: "create";
10822
+ readonly summary: "Create video generation";
10823
+ readonly description: "Create a video.generate job. Generation is charged per second. The response is 202 with a queued Job; poll GET /media/v1/libraries/{library_id}/jobs/{job_id} until terminal, then save successful outputs. Unsaved candidate Files expire after 7 days.";
10824
+ readonly http: "POST";
10825
+ readonly path: "/media/v1/libraries/{library_id}/generations";
10826
+ readonly streaming: "no";
10827
+ readonly pagination: false;
10828
+ readonly pathParams: readonly [{
10829
+ readonly name: "library_id";
10830
+ readonly sdkName: "library_id";
10831
+ readonly description: "Library ID returned by creation.";
10832
+ }];
10833
+ readonly query: readonly [];
10834
+ readonly body: {
10835
+ readonly required: true;
10836
+ readonly fields: readonly [{
10837
+ readonly name: "intent";
10838
+ readonly type: "string";
10839
+ readonly required: true;
10840
+ readonly description: "Generation operation; v1 accepts only video.generate text-to-video requests.";
10841
+ }, {
10842
+ readonly name: "prompt";
10843
+ readonly type: "string";
10844
+ readonly required: true;
10845
+ readonly description: "Text prompt describing the video to generate.";
10846
+ }, {
10847
+ readonly name: "count";
10848
+ readonly type: "integer";
10849
+ readonly required: false;
10850
+ readonly description: "Number of videos to generate; defaults to 1 and must be from 1 to 4.";
10851
+ }, {
10852
+ readonly name: "duration_seconds";
10853
+ readonly type: "integer";
10854
+ readonly required: false;
10855
+ readonly description: "Requested video duration in seconds; Router validates the model-specific supported durations.";
10856
+ }, {
10857
+ readonly name: "aspect_ratio";
10858
+ readonly type: "string";
10859
+ readonly required: false;
10860
+ readonly description: "Requested output aspect ratio; defaults to 16:9 and Router validates model support.";
10861
+ }, {
10862
+ readonly name: "model";
10863
+ readonly type: "string";
10864
+ readonly required: false;
10865
+ readonly description: "Router model with video_generation capability; defaults to wan2.7-t2v.";
10866
+ }, {
10867
+ readonly name: "save";
10868
+ readonly type: "string";
10869
+ readonly enum: readonly ["candidate", "library"];
10870
+ readonly required: false;
10871
+ readonly description: "candidate keeps outputs temporary for explicit save calls; library saves successful outputs automatically.";
10872
+ }, {
10873
+ readonly name: "asset_folder";
10874
+ readonly type: "string";
10875
+ readonly required: false;
10876
+ readonly description: "Folder for assets saved automatically or by later save calls; defaults to the library root. New path segments containing U+FFFD or consisting only of question marks are rejected with INVALID_PARAMS; send UTF-8 names. Existing affected folders remain readable and assets can be moved out.";
10877
+ }, {
10878
+ readonly name: "tags";
10879
+ readonly type: "array";
10880
+ readonly itemType: "string";
10881
+ readonly required: false;
10882
+ readonly description: "Tags applied when an output becomes a library asset.";
10883
+ }, {
10884
+ readonly name: "understanding";
10885
+ readonly type: "string";
10886
+ readonly enum: readonly ["auto", "skip"];
10887
+ readonly required: false;
10888
+ readonly description: "Understanding behavior when a candidate is saved as an asset; defaults to auto.";
10889
+ }, {
10890
+ readonly name: "references";
10891
+ readonly type: "array";
10892
+ readonly itemType: "object";
10893
+ readonly required: false;
10894
+ readonly description: "Not supported in v1; omit this field. Only text-to-video is currently available.";
10895
+ }];
10896
+ };
10897
+ }, {
10898
+ readonly resource: "media.libraries.jobs";
10899
+ readonly method: "list";
10900
+ readonly summary: "List jobs";
10901
+ readonly description: "List batch and video-generation jobs in a library. Filter by status and continue with next_cursor. Poll a generation Job until terminal, then save successful candidate outputs before they expire after 7 days.";
10902
+ readonly http: "GET";
10903
+ readonly path: "/media/v1/libraries/{library_id}/jobs";
10904
+ readonly streaming: "no";
10905
+ readonly pagination: true;
10906
+ readonly pathParams: readonly [{
10907
+ readonly name: "library_id";
10908
+ readonly sdkName: "library_id";
10909
+ readonly description: "Library ID returned by creation.";
10910
+ }];
10911
+ readonly query: readonly [{
10912
+ readonly name: "status";
10913
+ readonly type: "string";
10914
+ readonly enum: readonly ["queued", "running", "completed", "completed_with_errors", "failed", "cancelled"];
10915
+ readonly required: false;
10916
+ readonly description: "Filter jobs by their current status.";
10917
+ }, {
10918
+ readonly name: "limit";
10919
+ readonly type: "integer";
10920
+ readonly required: false;
10921
+ readonly description: "Maximum entries in this page, from 1 through 100; defaults to 100.";
10922
+ }, {
10923
+ readonly name: "cursor";
10924
+ readonly type: "string";
10925
+ readonly required: false;
10926
+ readonly description: "Job id from the previous page’s next_cursor; omit for the first page.";
10927
+ }];
10747
10928
  }, {
10748
10929
  readonly resource: "media.libraries.jobs";
10749
10930
  readonly method: "retrieve";
10750
- readonly summary: "Get job alias";
10751
- readonly description: "Alias of batch retrieval. Read the job returned by a batch request, including terminal status, successful and failed counts, and individual failure codes.";
10931
+ readonly summary: "Get job";
10932
+ readonly description: "Read the current batch or video-generation Job status and progress. For generation, inspect outputs and failures, then save successful candidates before their preview and save window expires after 7 days.";
10752
10933
  readonly http: "GET";
10753
10934
  readonly path: "/media/v1/libraries/{library_id}/jobs/{job_id}";
10754
10935
  readonly streaming: "no";
@@ -10760,14 +10941,82 @@ export declare const operations: readonly [{
10760
10941
  }, {
10761
10942
  readonly name: "job_id";
10762
10943
  readonly sdkName: "job_id";
10763
- readonly description: "Batch identifier returned by createBatch or batchAssets; resolved within this library.";
10944
+ readonly description: "Job identifier returned by batch creation, video-generation creation or job listing; resolved within this library.";
10764
10945
  }];
10765
10946
  readonly query: readonly [];
10947
+ }, {
10948
+ readonly resource: "media.libraries.jobs";
10949
+ readonly method: "cancel";
10950
+ readonly summary: "Cancel job";
10951
+ readonly description: "Cancel a queued or running generation job. Already completed outputs remain available to save; poll or read the returned Job to confirm its status.";
10952
+ readonly http: "POST";
10953
+ readonly path: "/media/v1/libraries/{library_id}/jobs/{job_id}/cancel";
10954
+ readonly streaming: "no";
10955
+ readonly pagination: false;
10956
+ readonly pathParams: readonly [{
10957
+ readonly name: "library_id";
10958
+ readonly sdkName: "library_id";
10959
+ readonly description: "Library ID returned by creation.";
10960
+ }, {
10961
+ readonly name: "job_id";
10962
+ readonly sdkName: "job_id";
10963
+ readonly description: "Job identifier returned by batch or generation creation; the job is resolved within the specified library.";
10964
+ }];
10965
+ readonly query: readonly [];
10966
+ }, {
10967
+ readonly resource: "media.libraries.jobs.outputs.save";
10968
+ readonly method: "create";
10969
+ readonly summary: "Save generation output";
10970
+ readonly description: "Save a successful candidate as a library asset. Candidate outputs expire after 7 days; save before expiry. Generation is charged per second when the job runs, not when an output is saved.";
10971
+ readonly http: "POST";
10972
+ readonly path: "/media/v1/libraries/{library_id}/jobs/{job_id}/outputs/{index}/save";
10973
+ readonly streaming: "no";
10974
+ readonly pagination: false;
10975
+ readonly pathParams: readonly [{
10976
+ readonly name: "library_id";
10977
+ readonly sdkName: "library_id";
10978
+ readonly description: "Library ID returned by creation.";
10979
+ }, {
10980
+ readonly name: "job_id";
10981
+ readonly sdkName: "job_id";
10982
+ readonly description: "Job identifier returned by batch or generation creation; the job is resolved within the specified library.";
10983
+ }, {
10984
+ readonly name: "index";
10985
+ readonly sdkName: "index";
10986
+ readonly description: "Zero-based position of the candidate in the Job outputs array.";
10987
+ }];
10988
+ readonly query: readonly [];
10989
+ readonly body: {
10990
+ readonly required: false;
10991
+ readonly fields: readonly [{
10992
+ readonly name: "public_id";
10993
+ readonly type: "string";
10994
+ readonly required: false;
10995
+ readonly description: "Delivery identifier for the saved asset; defaults to gen_<job_id>_<index> and is idempotent.";
10996
+ }, {
10997
+ readonly name: "asset_folder";
10998
+ readonly type: "string";
10999
+ readonly required: false;
11000
+ readonly description: "Destination folder for the saved asset; defaults to the library root. New path segments containing U+FFFD or consisting only of question marks are rejected with INVALID_PARAMS; send UTF-8 names. Existing affected folders remain readable and assets can be moved out.";
11001
+ }, {
11002
+ readonly name: "tags";
11003
+ readonly type: "array";
11004
+ readonly itemType: "string";
11005
+ readonly required: false;
11006
+ readonly description: "Tags to apply to the saved asset.";
11007
+ }, {
11008
+ readonly name: "understanding";
11009
+ readonly type: "string";
11010
+ readonly enum: readonly ["auto", "skip"];
11011
+ readonly required: false;
11012
+ readonly description: "Understanding behavior for the saved asset; defaults to auto.";
11013
+ }];
11014
+ };
10766
11015
  }, {
10767
11016
  readonly resource: "media.libraries.purge";
10768
11017
  readonly method: "create";
10769
11018
  readonly summary: "Purge library";
10770
- readonly description: "Permanently remove a library that is already deleting, without waiting for purge_at. Its assets and related resources are removed and cannot be restored; first soft-delete an active library.";
11019
+ readonly description: "List assets in an active library, newest first, optionally filtering by exact folder and stored resource type. Continue using next_cursor; video includes audio-only assets.";
10771
11020
  readonly http: "POST";
10772
11021
  readonly path: "/media/v1/libraries/{library_id}/purge";
10773
11022
  readonly streaming: "no";
@@ -10782,7 +11031,7 @@ export declare const operations: readonly [{
10782
11031
  readonly resource: "media.libraries";
10783
11032
  readonly method: "restore";
10784
11033
  readonly summary: "Restore library";
10785
- readonly description: "Restore a deleting library before its purge_at deadline. The library becomes active again and deleted_at and purge_at are cleared; expired or non-deleting libraries cannot be restored.";
11034
+ readonly description: "Permanently remove a library that is already deleting, without waiting for purge_at. Its assets and related resources are removed and cannot be restored; first soft-delete an active library.";
10786
11035
  readonly http: "POST";
10787
11036
  readonly path: "/media/v1/libraries/{library_id}/restore";
10788
11037
  readonly streaming: "no";
@@ -10797,7 +11046,7 @@ export declare const operations: readonly [{
10797
11046
  readonly resource: "media.libraries.search";
10798
11047
  readonly method: "create";
10799
11048
  readonly summary: "Semantic search alias";
10800
- readonly description: "Alias of semantic search. Search assets with a nonblank text query, optional expression filter and top_k; hybrid combines semantic and keyword matches, while semantic uses vector similarity only.";
11049
+ readonly description: "List all immediate child folders under parent, or under the root when parent is omitted. Counts include descendant assets. The result is unpaginated; limit and cursor are rejected.";
10801
11050
  readonly http: "POST";
10802
11051
  readonly path: "/media/v1/libraries/{library_id}/search";
10803
11052
  readonly streaming: "no";
@@ -10837,7 +11086,7 @@ export declare const operations: readonly [{
10837
11086
  readonly resource: "media.libraries.search.expression";
10838
11087
  readonly method: "create";
10839
11088
  readonly summary: "Expression search";
10840
- readonly description: "Search active assets using the supported filter-expression syntax, sorting and cursor pagination. Empty expression matches all assets. Tags and context require with_field; inspect the exactness flags before treating counts as complete.";
11089
+ readonly description: "Find visually similar assets using exactly one of asset_id or an inline base64 image. The library must support image search; an asset query needs a current image embedding and excludes that source asset from results.";
10841
11090
  readonly http: "POST";
10842
11091
  readonly path: "/media/v1/libraries/{library_id}/search/expression";
10843
11092
  readonly streaming: "no";
@@ -10854,7 +11103,7 @@ export declare const operations: readonly [{
10854
11103
  readonly name: "expression";
10855
11104
  readonly type: "string";
10856
11105
  readonly required: false;
10857
- readonly description: "Asset filter expression supporting field comparisons, AND, OR, NOT, parentheses and suffix wildcards. An empty expression matches all assets. For business metadata use context.sku=KETTLE-RED AND context.revision=2; request with_field: [\"context\"] to include context.";
11106
+ readonly description: "Asset filter expression supporting field comparisons, AND, OR, NOT, parentheses and suffix wildcards. An empty expression matches all assets. For business metadata use context.sku=KETTLE-RED AND context.revision=2; request with_field: [\"context\"] to include context. Quality filters: flags:watermark matches any current shot with a watermark; flags.watermark:false requires an assessed video with no positive watermark judgment. The same syntax supports slideshow, hand_frame, text_sticker and low_quality. folder_mismatch:true selects lexical folder/location hints. Geometry filters support width, height, resolution:1920x1080, numeric aspect_ratio (width/height), and orientation:landscape, portrait or square. Missing geometry or unassessed legacy flags do not match positive filters. has_music:true AND audio_genre:jazz AND audio_mood:calm selects current-version audio profiles with music and matching model labels; has_music:false applies only to sampled ranges, not the entire source. failure_code=UPSTREAM_FAILED selects assets with a current failed understanding carrying that code; combine with processing_state=failed or processing_state=partial.";
10858
11107
  }, {
10859
11108
  readonly name: "sort_by";
10860
11109
  readonly type: "array";
@@ -10891,7 +11140,7 @@ export declare const operations: readonly [{
10891
11140
  readonly resource: "media.libraries.search.semantic";
10892
11141
  readonly method: "create";
10893
11142
  readonly summary: "Semantic search";
10894
- readonly description: "Search assets with a nonblank text query and optional expression filter. Hybrid mode combines semantic and keyword matches; semantic mode uses vector similarity only. Results are ranked and limited by top_k.";
11143
+ readonly description: "Alias of semantic search. Search assets with a nonblank text query, optional expression filter and top_k; hybrid combines semantic and keyword matches, while semantic uses vector similarity only.";
10895
11144
  readonly http: "POST";
10896
11145
  readonly path: "/media/v1/libraries/{library_id}/search/semantic";
10897
11146
  readonly streaming: "no";
@@ -10931,7 +11180,7 @@ export declare const operations: readonly [{
10931
11180
  readonly resource: "media.libraries.search.visual";
10932
11181
  readonly method: "create";
10933
11182
  readonly summary: "Visual search";
10934
- readonly description: "Find visually similar assets using exactly one of asset_id or an inline base64 image. The library must support image search; an asset query needs a current image embedding and excludes that source asset from results.";
11183
+ readonly description: "Search assets with a nonblank text query and optional expression filter. Hybrid mode combines semantic and keyword matches; semantic mode uses vector similarity only. Results are ranked and limited by top_k.";
10935
11184
  readonly http: "POST";
10936
11185
  readonly path: "/media/v1/libraries/{library_id}/search/visual";
10937
11186
  readonly streaming: "no";
@@ -10966,6 +11215,56 @@ export declare const operations: readonly [{
10966
11215
  readonly description: "Expression filter restricting eligible result assets.";
10967
11216
  }];
10968
11217
  };
11218
+ }, {
11219
+ readonly resource: "media.libraries.understandings";
11220
+ readonly method: "list";
11221
+ readonly summary: "List understanding results across a library";
11222
+ readonly description: "Read current understanding entries across one library without fetching every asset separately. Use library_id from creation or listing. folder includes descendants; kinds is a comma-separated list of output kinds. Entries are ordered by asset_id and then understanding id. Continue with next_cursor and the same folder and kinds; limit defaults to 100 and cannot exceed 100. Superseded, deleted and old-version entries are excluded. During historical backfill, this method returns 503 CAPACITY rather than incomplete pages; poll failureSummary until counts_complete is true, then start pagination. Example: GET /media/v1/libraries/lib_example/understandings?folder=travel&kinds=caption,transcript&limit=100.";
11223
+ readonly http: "GET";
11224
+ readonly path: "/media/v1/libraries/{library_id}/understandings";
11225
+ readonly streaming: "no";
11226
+ readonly pagination: true;
11227
+ readonly pathParams: readonly [{
11228
+ readonly name: "library_id";
11229
+ readonly sdkName: "library_id";
11230
+ readonly description: "Library ID returned by creation.";
11231
+ }];
11232
+ readonly query: readonly [{
11233
+ readonly name: "folder";
11234
+ readonly type: "string";
11235
+ readonly required: false;
11236
+ readonly description: "Folder path including all descendants; omitted or empty selects the entire library.";
11237
+ }, {
11238
+ readonly name: "kinds";
11239
+ readonly type: "string";
11240
+ readonly required: false;
11241
+ readonly description: "Comma-separated output kinds: caption, tags, ocr, frame, transcript, overview, audio, embedding. Omit or empty to include every kind.";
11242
+ }, {
11243
+ readonly name: "cursor";
11244
+ readonly type: "string";
11245
+ readonly required: false;
11246
+ readonly description: "Cursor from the previous next_cursor.";
11247
+ }, {
11248
+ readonly name: "limit";
11249
+ readonly type: "integer";
11250
+ readonly required: false;
11251
+ readonly description: "Maximum entries in this page, from 1 through 100; defaults to 100.";
11252
+ }];
11253
+ }, {
11254
+ readonly resource: "media.libraries.understandings";
11255
+ readonly method: "retrieveFailureSummary";
11256
+ readonly summary: "Summarize understanding failures";
11257
+ readonly description: "Inspect current understanding failures before retrying. Use library_id from library creation or listing. Groups include code, output kind, actual producer model, retryability and up to five sample asset IDs. At most 1024 detailed groups plus two overflow groups are returned; overflow groups separate retryable and unrecoverable entries and mark overflow=true. Unknown failure codes remain retryable. Historical counts are provisional while counts_complete is false. Example: GET /media/v1/libraries/lib_example/understandings/failure_summary.";
11258
+ readonly http: "GET";
11259
+ readonly path: "/media/v1/libraries/{library_id}/understandings/failure_summary";
11260
+ readonly streaming: "no";
11261
+ readonly pagination: false;
11262
+ readonly pathParams: readonly [{
11263
+ readonly name: "library_id";
11264
+ readonly sdkName: "library_id";
11265
+ readonly description: "Library ID returned by creation.";
11266
+ }];
11267
+ readonly query: readonly [];
10969
11268
  }, {
10970
11269
  readonly resource: "meta.docs";
10971
11270
  readonly method: "search";
@@ -11179,35 +11478,35 @@ export declare const operations: readonly [{
11179
11478
  readonly name: "model";
11180
11479
  readonly type: "string";
11181
11480
  readonly required: true;
11182
- readonly description: "Transcription model id, for example `whisper-large-v3-turbo` or `qwen3-asr-flash`; list candidates with listModels?type=transcription. Router support (supported): Verified to take effect.";
11481
+ readonly description: "Model catalog identifier declaring openai.audio.transcriptions; use it unchanged, including any creator prefix.";
11183
11482
  }, {
11184
11483
  readonly name: "file";
11185
11484
  readonly type: "string";
11186
11485
  readonly required: true;
11187
- readonly description: "Audio file to transcribe, uploaded as multipart/form-data. Router support (supported): Verified to take effect.";
11486
+ readonly description: "Audio bytes uploaded as a multipart file; supported formats and input limits depend on the selected model.";
11188
11487
  }, {
11189
11488
  readonly name: "language";
11190
11489
  readonly type: "string";
11191
11490
  readonly required: false;
11192
- readonly description: "Language of the audio as an ISO-639-1 code such as `en` or `zh`. Router support (partial): Both models accept ISO language codes. qwen3-asr-flash may translate output to that language; whisper-large-v3-turbo treats it as an input hint. Non-ISO names may return 502.";
11491
+ readonly description: "Source language code when known; omit to let the model detect the language.";
11193
11492
  }, {
11194
11493
  readonly name: "prompt";
11195
11494
  readonly type: "string";
11196
11495
  readonly required: false;
11197
- readonly description: "Text that primes the model with vocabulary or context. Router support (partial): Vocabulary hints work on whisper-large-v3-turbo only; qwen3-asr-flash returns 400.";
11496
+ readonly description: "Optional vocabulary or contextual guidance for recognizing the audio; support depends on the selected model.";
11198
11497
  }, {
11199
11498
  readonly name: "response_format";
11200
11499
  readonly type: "string";
11201
- readonly enum: readonly ["json", "text", "verbose_json"];
11500
+ readonly enum: readonly ["json", "text", "verbose_json", "diarized_json"];
11202
11501
  readonly required: false;
11203
- readonly description: "Format of the response body. `json` and `text` are the commonly supported formats. Router support (partial): json/text work on both; verbose_json works only on whisper-large-v3-turbo. srt/vtt return 400.";
11502
+ readonly description: "Output format: json returns text in JSON; text returns plain text; verbose_json includes requested timestamps; diarized_json includes speaker-labelled segments when supported. Defaults to json.";
11204
11503
  }, {
11205
11504
  readonly name: "timestamp_granularities[]";
11206
11505
  readonly type: "array";
11207
11506
  readonly itemType: "string";
11208
- readonly enum: readonly ["segment"];
11507
+ readonly enum: readonly ["word", "segment"];
11209
11508
  readonly required: false;
11210
- readonly description: "Timestamp levels to include with `verbose_json`; only `segment` exists in this schema. Router support (partial): Only whisper-large-v3-turbo supports segment with verbose_json. word returns 400; qwen3-asr-flash does not support timestamps.";
11509
+ readonly description: "Timestamp levels to request as repeated multipart fields: word returns per-word times; segment returns segment times. Omit for the model default. Use verbose_json, or diarized_json on supporting models.";
11211
11510
  }, {
11212
11511
  readonly name: "temperature";
11213
11512
  readonly type: "number";
@@ -13067,6 +13366,27 @@ export declare const operations: readonly [{
13067
13366
  readonly description: "Up to five attachments; decoded bytes must not exceed 10 MiB each or 20 MiB in total.";
13068
13367
  }];
13069
13368
  };
13369
+ }, {
13370
+ readonly resource: "organization.members";
13371
+ readonly method: "list";
13372
+ readonly summary: "List organization members";
13373
+ readonly description: "Concepts follow GitHub org members: find a person's user id, for example to assign an approver to an approval task. Lists only members of the organization behind your API key or runtime token, ordered by joined_at ascending (membership id breaks ties). Ask the user who should approve, then use that member's id. Emails are visible only within this organization. The request cannot select another organization. Pass next_page unchanged as page; null means the end. Read-only; no usage charge. Example: GET /organization/v1/members?limit=20.";
13374
+ readonly http: "GET";
13375
+ readonly path: "/organization/v1/members";
13376
+ readonly streaming: "no";
13377
+ readonly pagination: false;
13378
+ readonly pathParams: readonly [];
13379
+ readonly query: readonly [{
13380
+ readonly name: "limit";
13381
+ readonly type: "integer";
13382
+ readonly required: false;
13383
+ readonly description: "Maximum members per page, from 1 to 100; defaults to 20.";
13384
+ }, {
13385
+ readonly name: "page";
13386
+ readonly type: "string";
13387
+ readonly required: false;
13388
+ readonly description: "Opaque next_page cursor returned by the previous response; omit for the first page.";
13389
+ }];
13070
13390
  }, {
13071
13391
  readonly resource: "organization.usage";
13072
13392
  readonly method: "list";
@@ -15098,7 +15418,7 @@ export declare const operations: readonly [{
15098
15418
  readonly name: "filter";
15099
15419
  readonly type: "string";
15100
15420
  readonly required: false;
15101
- readonly description: "Search qualifier subset: is/state, reason, label/-label, no, assignee, author, mentions, milestone, type, kind, assignee-kind, in and sort; unknown qualifiers return INVALID_PARAMS. Passed unchanged to the service.";
15421
+ readonly description: "Search qualifier subset: is/state, reason, label/-label, no, assignee, author, mentions, milestone, type, kind, assignee-kind, in and sort; write each qualifier as field:value (for example, is:open milestone:5), never field=value. Unknown qualifiers return INVALID_PARAMS. Passed unchanged to the service.";
15102
15422
  }];
15103
15423
  }, {
15104
15424
  readonly resource: "ticket.tickets";