@deepraxis/sdk 0.1.1-dev.edf8922 → 0.1.1-dev.f01ff52

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.
@@ -2308,6 +2308,7 @@ export declare const cutUndeleteProject: <ThrowOnError extends boolean = false>(
2308
2308
  * - `TOO_MANY_EFFECTS` — More than 8 effects on one clip.
2309
2309
  * - `PROJECT_NOT_FOUND` — No visible project has this id.
2310
2310
  * - `EXPORT_NOT_FOUND` — No such export in this project.
2311
+ * - `DRAFT_RENDER_NOT_FOUND` — No such draft render.
2311
2312
  * - `VERSION_NOT_FOUND` — No saved version has this revision.
2312
2313
  * - `LIBRARY_NOT_FOUND` — The library is missing or invisible.
2313
2314
  * - `BINDING_INVALID` — The binding request is malformed.
@@ -2648,7 +2649,7 @@ export declare const devopsTestRunsList: <ThrowOnError extends boolean = false>(
2648
2649
  /**
2649
2650
  * Create a test run
2650
2651
  *
2651
- * Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued returns as soon as the run exists, finished waits for a verdict and may take minutes. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.
2652
+ * Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued, the default, returns as soon as the run exists; started waits until the run has begun, except for an external run, which is answered at once because it leaves queued only when your own CI uploads; finished waits for a verdict. The wait is bounded at about 25 seconds, and a wait that reaches that bound returns the run as it stands rather than failing — read state to see whether it finished. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.
2652
2653
  */
2653
2654
  export declare const devopsTestRunsCreate: <ThrowOnError extends boolean = false>(options: Options<DevopsTestRunsCreateData, ThrowOnError>) => RequestResult<DevopsTestRunsCreateResponses, DevopsTestRunsCreateErrors, ThrowOnError>;
2654
2655
  /**
@@ -6532,6 +6532,7 @@ export const cutUndeleteProject = (options) => (options.client ?? client).post({
6532
6532
  * - `TOO_MANY_EFFECTS` — More than 8 effects on one clip.
6533
6533
  * - `PROJECT_NOT_FOUND` — No visible project has this id.
6534
6534
  * - `EXPORT_NOT_FOUND` — No such export in this project.
6535
+ * - `DRAFT_RENDER_NOT_FOUND` — No such draft render.
6535
6536
  * - `VERSION_NOT_FOUND` — No saved version has this revision.
6536
6537
  * - `LIBRARY_NOT_FOUND` — The library is missing or invisible.
6537
6538
  * - `BINDING_INVALID` — The binding request is malformed.
@@ -7432,7 +7433,7 @@ export const devopsTestRunsList = (options) => (options.client ?? client).get({
7432
7433
  /**
7433
7434
  * Create a test run
7434
7435
  *
7435
- * Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued returns as soon as the run exists, finished waits for a verdict and may take minutes. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.
7436
+ * Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued, the default, returns as soon as the run exists; started waits until the run has begun, except for an external run, which is answered at once because it leaves queued only when your own CI uploads; finished waits for a verdict. The wait is bounded at about 25 seconds, and a wait that reaches that bound returns the run as it stands rather than failing — read state to see whether it finished. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.
7436
7437
  */
7437
7438
  export const devopsTestRunsCreate = (options) => (options.client ?? client).post({
7438
7439
  security: [{
@@ -12602,6 +12602,10 @@ export type CutProject = {
12602
12602
  * ISO 8601 timestamp when this project was created.
12603
12603
  */
12604
12604
  create_time: string;
12605
+ /**
12606
+ * Link that opens this project in the Praxis Console, in the Console of the environment serving the request. Open this URL when telling a user where to edit the project, and use the value as given — do not build the link yourself, because the Console host differs per environment (develop and production are different hosts) and a composed address will not open.
12607
+ */
12608
+ console_url?: string;
12605
12609
  /**
12606
12610
  * ISO 8601 timestamp of the latest committed project update.
12607
12611
  */
@@ -13097,6 +13101,10 @@ export type CutExport = {
13097
13101
  */
13098
13102
  detail: string;
13099
13103
  }>;
13104
+ /**
13105
+ * Timeline position in seconds the cover frame was taken at, frame-exact, and the moment written as the exported asset's cover. Present on exports frozen from this version onward: the requested poster.at, or the first frame with picture when poster was omitted.
13106
+ */
13107
+ poster_at?: number;
13100
13108
  /**
13101
13109
  * Output media reference, available after the export reaches done.
13102
13110
  */
@@ -13182,6 +13190,15 @@ export type CutExportInput = {
13182
13190
  */
13183
13191
  true_peak_dbtp: number;
13184
13192
  } | null;
13193
+ /**
13194
+ * Cover frame, in seconds on the project clock. Omitted, the cover is the first frame with picture that is not inside a fade-in or a transition — a black opening no longer makes the library thumbnail black. A frame inside a transition is skipped, and a timeline that is black throughout keeps its first frame (reported as BLACK_FIRST_FRAME). The frame actually used is reported as poster_at on the export.
13195
+ */
13196
+ poster?: {
13197
+ /**
13198
+ * Timeline position in seconds the cover is taken at; rounded to the nearest project frame.
13199
+ */
13200
+ at: number;
13201
+ };
13185
13202
  };
13186
13203
  /**
13187
13204
  * One page of organization-accessible exports.
@@ -13806,6 +13823,10 @@ export type DevopsSuitePage = {
13806
13823
  * The suites on this page, in the project's catalog file order.
13807
13824
  */
13808
13825
  items: Array<DevopsSuite>;
13826
+ /**
13827
+ * How many items match this list's project and filter across every page, so a dashboard can show a total without walking the pages. Returned on the first page only; a page reached by a pageToken omits it, so read it from the first request rather than expecting it on every page.
13828
+ */
13829
+ totalSize?: number;
13809
13830
  /**
13810
13831
  * Cursor for the next page; an empty string means this was the last page, which is the only signal a list is finished.
13811
13832
  */
@@ -13888,6 +13909,10 @@ export type DevopsTestCasePage = {
13888
13909
  * The cases on this page, in the project's catalog file order.
13889
13910
  */
13890
13911
  items: Array<DevopsTestCase>;
13912
+ /**
13913
+ * How many items match this list's project and filter across every page, so a dashboard can show a total without walking the pages. Returned on the first page only; a page reached by a pageToken omits it, so read it from the first request rather than expecting it on every page.
13914
+ */
13915
+ totalSize?: number;
13891
13916
  /**
13892
13917
  * Cursor for the next page; an empty string means this was the last page, which is the only signal a list is finished.
13893
13918
  */
@@ -13978,6 +14003,27 @@ export type DevopsTestCase = {
13978
14003
  */
13979
14004
  healthSince?: string;
13980
14005
  stats: DevopsCaseStats;
14006
+ /**
14007
+ * The case's own latest executions, at most the last 30, oldest first — the strip a test board draws per row. Absent when the case has not run yet, which is why it is not an empty list. Each entry is one execution; read state and health for the judgement drawn from the whole history.
14008
+ */
14009
+ recent?: Array<{
14010
+ /**
14011
+ * How this execution ended. failed counts against the run unless the case was quarantined; skipped neither passes nor fails it.
14012
+ */
14013
+ status?: 'passed' | 'failed' | 'skipped' | 'pending' | 'other' | 'timed_out' | 'cancelled';
14014
+ /**
14015
+ * True when this execution failed and then passed on a retry inside the same run — the per-execution fact behind the case's flaky health.
14016
+ */
14017
+ flaky?: boolean;
14018
+ /**
14019
+ * RFC 3339 UTC time the execution was recorded, which is what orders the strip; two executions of the same commit are told apart by it.
14020
+ */
14021
+ time?: string;
14022
+ /**
14023
+ * Full 40-hex commit sha this execution ran at; the commits the strip shows are the ones a bisect or a regression read compares.
14024
+ */
14025
+ commit?: string;
14026
+ }>;
13981
14027
  state: DevopsCaseState;
13982
14028
  /**
13983
14029
  * True when the case may never be quarantined — a safety or security check whose failure must always count; a quarantine attempt on it is refused.
@@ -14004,6 +14050,10 @@ export type DevopsPlanPage = {
14004
14050
  * The plans on this page, in creation order.
14005
14051
  */
14006
14052
  items: Array<DevopsPlan>;
14053
+ /**
14054
+ * How many items match this list's project and filter across every page, so a dashboard can show a total without walking the pages. Returned on the first page only; a page reached by a pageToken omits it, so read it from the first request rather than expecting it on every page.
14055
+ */
14056
+ totalSize?: number;
14007
14057
  /**
14008
14058
  * Cursor for the next page; an empty string means this was the last page, which is the only signal a list is finished.
14009
14059
  */
@@ -14191,6 +14241,10 @@ export type DevopsRunPage = {
14191
14241
  * The runs on this page, newest first.
14192
14242
  */
14193
14243
  items: Array<DevopsRun>;
14244
+ /**
14245
+ * How many items match this list's project and filter across every page, so a dashboard can show a total without walking the pages. Returned on the first page only; a page reached by a pageToken omits it, so read it from the first request rather than expecting it on every page.
14246
+ */
14247
+ totalSize?: number;
14194
14248
  /**
14195
14249
  * Cursor for the next page; an empty string means this was the last page, which is the only signal a list is finished.
14196
14250
  */
@@ -14235,7 +14289,7 @@ export type DevopsRunCreate = {
14235
14289
  */
14236
14290
  repeat?: number;
14237
14291
  /**
14238
- * How far the call waits before answering — queued returns at once, started waits for execution to begin, finished waits for a verdict and may take minutes.
14292
+ * How far the call waits before answering, bounded at about 25 seconds; omit it for queued, which returns at once. The wait reads the run's own state, so a wait that reaches the bound returns the run as it stands instead of failing — check state before assuming the request was honoured.
14239
14293
  */
14240
14294
  waitUntil?: 'queued' | 'started' | 'finished';
14241
14295
  /**
@@ -8127,6 +8127,11 @@ export declare const operations: readonly [{
8127
8127
  readonly type: "object";
8128
8128
  readonly required: false;
8129
8129
  readonly description: "Loudness normalization target. Omitted, the export is normalized to -14 LUFS integrated and -1 dBTP true peak, the level short-video and streaming platforms play at; null renders without normalization. Normalization adds analysis and rendering work.";
8130
+ }, {
8131
+ readonly name: "poster";
8132
+ readonly type: "object";
8133
+ readonly required: false;
8134
+ readonly description: "Cover frame, in seconds on the project clock. Omitted, the cover is the first frame with picture that is not inside a fade-in or a transition — a black opening no longer makes the library thumbnail black. A frame inside a transition is skipped, and a timeline that is black throughout keeps its first frame (reported as BLACK_FIRST_FRAME). The frame actually used is reported as poster_at on the export.";
8130
8135
  }];
8131
8136
  };
8132
8137
  }, {
@@ -8347,7 +8352,7 @@ export declare const operations: readonly [{
8347
8352
  readonly resource: "cut.projects";
8348
8353
  readonly method: "execute";
8349
8354
  readonly summary: "Execute editing script";
8350
- 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<!-- cut-reference:start -->\n### Script function, field and error reference\n\nEvery script function, clip field and error code has its own section, read one at a time:\n\n```\ncodemode.describe(\"praxis.cut.script.<Name>\") // one function: signature, arguments, return, errors, example\ncodemode.describe(\"praxis.cut.fields.<name>\") // one field: type, unit, range, default, where writable\ncodemode.describe(\"praxis.cut.errors.<CODE>\") // one code: meaning, causes, fix\ncodemode.describe(\"praxis.cut.script\") // names, one page at a time\n```\n\nPublished at https://docs.deepraxis.com/docs/developers/cut/script-reference with one anchor per entry. Names below omit the `praxis.cut.<kind>.` prefix.\n\n#### Script functions (script)\n\n- `GetTimeline` — Duration, tracks, joins; clips are under `items`.\n- `GetItem` — One clip's compact view, by id.\n- `FindItems` — Visit every clip with its track; collect results.\n- `GetMedia` — Media metadata; `durationUs` is microseconds.\n- `GetTranscript` — Transcript words in source microseconds.\n- `GetAnalysis` — Silence, filler or scene segments.\n- `ListTransitions` — Join transition kinds and parameters.\n- `ListEffects` — Visual-effect catalog and parameters.\n- `ListAnimations` — Animation presets by phase and target.\n- `ListFonts` — Font families, weights and scripts.\n- `ListTextStyles` — Text style presets for `style.preset`.\n- `ListTextTemplates` — Multi-layer templates and their slots.\n- `Insert` — Add a clip; a track never overlaps itself.\n- `Append` — Add a clip at the end of a track.\n- `Update` — Change named fields; the rest stay.\n- `SetSpeed` — Change rate, keeping source or duration.\n- `Delete` — Remove a clip. There is no `Remove`.\n- `Join` — Overlap clips; followers shift, track shortens.\n- `UpdateJoin` — Change a join's length or effect.\n- `DeleteJoin` — Remove a join; restore the butt cut.\n- `Split` — Cut a clip in two at a time.\n- `Trim` — Move one clip edge by seconds.\n- `Move` — Set a clip's start or track.\n- `RippleDeleteRange` — Cut a time range and close the gap.\n- `AddTrack` — Add a video, audio or caption track.\n- `UpdateTrack` — Change a track's name, lock, gain or role.\n- `DeleteTrack` — Remove a track and its clips.\n- `SetSettings` — Change canvas, frame rate or background.\n- `AddCaptionsFromTranscript` — Captions from a clip's kept words.\n- `InsertTemplate` — Insert a template and fill its slots.\n- `AlignCaptions` — Rebuild captions from text punctuation.\n- `ImportCaptions` — Import SRT or WebVTT onto captions.\n- `ExportCaptions` — Export captions as SRT or WebVTT.\n- `SetMarker` — Label a timeline position.\n- `Print` — Append values to the result's `prints`.\n- `Preview` — Up to 8 frames as inline PNG data URLs.\n\n#### Fields (fields)\n\n- `type` — Clip kind; decides which fields apply.\n- `start` — Clip start in seconds; snaps to frames.\n- `length` — Duration; optional for video and audio.\n- `media` — Source `{ libraryId, assetId }`.\n- `sourceIn` — First source second kept; default 0.\n- `sourceOut` — Exclusive source end; read-only.\n- `text` — Text of a text or caption clip.\n- `color` — Solid colour of a color clip.\n- `shape` — Shape clip kind: `rect` or `ellipse`.\n- `width` — Shape width, a fraction of canvas width.\n- `height` — Shape height, a fraction of canvas height.\n- `radius` — Rect corner rounding, in 1080-height px.\n- `fill` — Shape or text paint: colour or gradient.\n- `stroke` — Shape outline: colour and width.\n- `transform` — Position, scale, rotation, opacity, crop, blur.\n- `fit` — contain, cover, fill or none.\n- `blend` — Layer blend mode; null clears.\n- `style` — Text styling: font, fill, strokes, glow, position.\n- `style.position` — top, middle or bottom; omit it, never null.\n- `playback` — Rate, direction, audio policy, or freeze.\n- `volumeDb` — Audio level in dB; 0 is source level.\n- `gain` — Keyframed audio level in dB.\n- `fadeIn` — Fade-in seconds at the clip's start.\n- `fadeOut` — Fade-out seconds at the clip's end.\n- `duck` — Lower this clip while another track plays.\n- `animate` — Transform keyframes; `at` is clip-relative seconds.\n- `reveal` — Per-character, word or line reveal timing.\n- `animation` — Preset slots `{ in, out, loop }`; null clears.\n- `effects` — Effect stack, at most 8; null clears.\n- `transitionIn` — Entrance effect: kind plus seconds.\n- `transitionOut` — Exit effect: kind plus seconds.\n- `mask` — Shape, path or track matte.\n- `words` — Caption words with clip-local times.\n\n#### Error codes (errors)\n\n- `JOIN_CONFLICT` — A join is invalid or blocks this edit.\n- `INVALID_TRANSITION` — Bad transition kind, parameter or length.\n- `INVALID_STYLE` — A style value is out of range.\n- `INVALID_MASK` — A mask definition is malformed.\n- `MASK_IN_USE` — The edit would break a live mask.\n- `TOO_MANY_MASKS` — At most 16 masks per project.\n- `RATE_OUT_OF_RANGE` — A rate is outside 0.25-4.\n- `UNSUPPORTED_PLAYBACK` — Reverse without an explicit mute.\n- `INVALID_PLAYBACK` — A playback object is partial or malformed.\n- `UNKNOWN_FONT` — The family is not in `ListFonts()`.\n- `UNKNOWN_FIELD` — The field name is not accepted here.\n- `UNKNOWN_TEXT_STYLE` — `style.preset` is not in the catalog.\n- `TEXT_STYLE_TARGET_MISMATCH` — Preset on the wrong clip type.\n- `CAPTION_ALIGN_LOW_CONFIDENCE` — Alignment confidence too low; nothing changed.\n- `OVERLAP` — Two clips on one track would share time.\n- `OUT_OF_SOURCE` — The clip would read past its source.\n- `LOCKED_TRACK` — The edit targets a locked track.\n- `UNBOUND_LIBRARY` — The library is not bound to the project.\n- `TRACK_KIND_MISMATCH` — The clip type does not fit the track.\n- `NOT_FOUND` — The named id is not in this project.\n- `TOO_SHORT` — The result would be under one frame.\n- `INVALID_DUCK` — Bad `duck` level or a missing track.\n- `UNKNOWN_ANIMATION` — The preset is not in `ListAnimations()`.\n- `INVALID_ANIMATION_PARAM` — Bad slot, parameter or keyframe limit.\n- `ANIMATION_TOO_LONG` — In plus out exceed the clip length.\n- `ANIMATION_TARGET_MISMATCH` — The preset does not match the clip type.\n- `ANIMATION_PHASE_MISMATCH` — The preset is in the wrong slot.\n- `UNKNOWN_EFFECT` — The effect is not in `ListEffects()`.\n- `INVALID_EFFECT_PARAM` — Bad effect parameter or keyframe.\n- `TOO_MANY_EFFECTS` — More than 8 effects on one clip.\n- `PROJECT_NOT_FOUND` — No visible project has this id.\n- `EXPORT_NOT_FOUND` — No such export in this project.\n- `VERSION_NOT_FOUND` — No saved version has this revision.\n- `LIBRARY_NOT_FOUND` — The library is missing or invisible.\n- `BINDING_INVALID` — The binding request is malformed.\n- `BINDING_IN_USE` — Clips still use this library's assets.\n- `NOTHING_TO_UNDO` — No earlier revision to return to.\n- `NOTHING_TO_REDO` — No undone revision is waiting.\n- `UNDO_CONFLICT` — The revision to undo is no longer head.\n- `REVISION_CONFLICT` — The project moved; your revision is stale.\n- `CUT_BUSY` — The project is busy; retry.\n- `INVALID_CAPTION_FILE` — The subtitle file is malformed or too big.\n- `SCRIPT_ERROR` — The script threw or did not parse.\n- `SCRIPT_LIMIT` — An execute budget was exceeded.\n- `OPS_REJECTED` — An op failed; the whole edit rolled back.\n- `EDIT_EXPIRED` — The saved edit id is over ten minutes old.\n- `MEDIA_OFFLINE` — The asset cannot be fetched right now.\n- `MEDIA_UNAVAILABLE` — The asset is not usable for rendering.\n- `MEDIA_IMPORT_FAILED` — Importing media failed.\n- `FRAME_OUT_OF_RANGE` — The preview time is outside the project.\n- `PROJECT_TOO_LARGE` — The project exceeds the size limit.\n- `RESPONSE_TOO_LARGE` — The response would exceed its budget.\n- `EXPORT_FAILED` — The render failed; read `error.cause`.\n- `INVALID_PARAMS` — The request is malformed.\n- `PERMISSION_DENIED` — This credential may not do that here.\n- `NOT_IMPLEMENTED` — Not available on this platform yet.\n- `INTERNAL` — Unexpected failure; retry with the request id.\n<!-- cut-reference:end -->\n";
8355
+ 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<!-- cut-reference:start -->\n### Script function, field and error reference\n\nEvery script function, clip field and error code has its own section, read one at a time:\n\n```\ncodemode.describe(\"praxis.cut.script.<Name>\") // one function: signature, arguments, return, errors, example\ncodemode.describe(\"praxis.cut.fields.<name>\") // one field: type, unit, range, default, where writable\ncodemode.describe(\"praxis.cut.errors.<CODE>\") // one code: meaning, causes, fix\ncodemode.describe(\"praxis.cut.script\") // names, one page at a time\n```\n\nPublished at https://docs.deepraxis.com/docs/developers/cut/script-reference with one anchor per entry. Names below omit the `praxis.cut.<kind>.` prefix.\n\n#### Script functions (script)\n\n- `GetTimeline` — Duration, tracks, joins; clips are under `items`.\n- `GetItem` — One clip's compact view, by id.\n- `FindItems` — Visit every clip with its track; collect results.\n- `GetMedia` — Media metadata; `durationUs` is microseconds.\n- `GetTranscript` — Transcript words in source microseconds.\n- `GetAnalysis` — Silence, filler or scene segments.\n- `ListTransitions` — Join transition kinds and parameters.\n- `ListEffects` — Visual-effect catalog and parameters.\n- `ListAnimations` — Animation presets by phase and target.\n- `ListFonts` — Font families, weights and scripts.\n- `ListTextStyles` — Text style presets for `style.preset`.\n- `ListTextTemplates` — Multi-layer templates and their slots.\n- `Insert` — Add a clip; a track never overlaps itself.\n- `Append` — Add a clip at the end of a track.\n- `Update` — Change named fields; the rest stay.\n- `SetSpeed` — Change rate, keeping source or duration.\n- `Delete` — Remove a clip. There is no `Remove`.\n- `Join` — Overlap clips; followers shift, track shortens.\n- `UpdateJoin` — Change a join's length or effect.\n- `DeleteJoin` — Remove a join; restore the butt cut.\n- `Split` — Cut a clip in two at a time.\n- `Trim` — Move one clip edge by seconds.\n- `Move` — Set a clip's start or track.\n- `RippleDeleteRange` — Cut a time range and close the gap.\n- `AddTrack` — Add a video, audio or caption track.\n- `UpdateTrack` — Change a track's name, lock, gain or role.\n- `DeleteTrack` — Remove a track and its clips.\n- `SetSettings` — Change canvas, frame rate or background.\n- `AddCaptionsFromTranscript` — Captions from a clip's kept words.\n- `InsertTemplate` — Insert a template and fill its slots.\n- `AlignCaptions` — Rebuild captions from text punctuation.\n- `ImportCaptions` — Import SRT or WebVTT onto captions.\n- `ExportCaptions` — Export captions as SRT or WebVTT.\n- `SetMarker` — Label a timeline position.\n- `Print` — Append values to the result's `prints`.\n- `Preview` — Up to 8 frames as inline PNG data URLs.\n\n#### Fields (fields)\n\n- `type` — Clip kind; decides which fields apply.\n- `start` — Clip start in seconds; snaps to frames.\n- `length` — Duration; optional for video and audio.\n- `media` — Source `{ libraryId, assetId }`.\n- `sourceIn` — First source second kept; default 0.\n- `sourceOut` — Exclusive source end; read-only.\n- `text` — Text of a text or caption clip.\n- `color` — Solid colour of a color clip.\n- `shape` — Shape clip kind: `rect` or `ellipse`.\n- `width` — Shape width, a fraction of canvas width.\n- `height` — Shape height, a fraction of canvas height.\n- `radius` — Rect corner rounding, in 1080-height px.\n- `fill` — Shape or text paint: colour or gradient.\n- `stroke` — Shape outline: colour and width.\n- `transform` — Position, scale, rotation, opacity, crop, blur.\n- `fit` — contain, cover, fill or none.\n- `blend` — Layer blend mode; null clears.\n- `style` — Text styling: font, fill, strokes, glow, position.\n- `style.position` — top, middle or bottom; omit it, never null.\n- `playback` — Rate, direction, audio policy, or freeze.\n- `volumeDb` — Audio level in dB; 0 is source level.\n- `gain` — Keyframed audio level in dB.\n- `fadeIn` — Fade-in seconds at the clip's start.\n- `fadeOut` — Fade-out seconds at the clip's end.\n- `duck` — Lower this clip while another track plays.\n- `animate` — Transform keyframes; `at` is clip-relative seconds.\n- `reveal` — Per-character, word or line reveal timing.\n- `animation` — Preset slots `{ in, out, loop }`; null clears.\n- `effects` — Effect stack, at most 8; null clears.\n- `transitionIn` — Entrance effect: kind plus seconds.\n- `transitionOut` — Exit effect: kind plus seconds.\n- `mask` — Shape, path or track matte.\n- `words` — Caption words with clip-local times.\n\n#### Error codes (errors)\n\n- `JOIN_CONFLICT` — A join is invalid or blocks this edit.\n- `INVALID_TRANSITION` — Bad transition kind, parameter or length.\n- `INVALID_STYLE` — A style value is out of range.\n- `INVALID_MASK` — A mask definition is malformed.\n- `MASK_IN_USE` — The edit would break a live mask.\n- `TOO_MANY_MASKS` — At most 16 masks per project.\n- `RATE_OUT_OF_RANGE` — A rate is outside 0.25-4.\n- `UNSUPPORTED_PLAYBACK` — Reverse without an explicit mute.\n- `INVALID_PLAYBACK` — A playback object is partial or malformed.\n- `UNKNOWN_FONT` — The family is not in `ListFonts()`.\n- `UNKNOWN_FIELD` — The field name is not accepted here.\n- `UNKNOWN_TEXT_STYLE` — `style.preset` is not in the catalog.\n- `TEXT_STYLE_TARGET_MISMATCH` — Preset on the wrong clip type.\n- `CAPTION_ALIGN_LOW_CONFIDENCE` — Alignment confidence too low; nothing changed.\n- `OVERLAP` — Two clips on one track would share time.\n- `OUT_OF_SOURCE` — The clip would read past its source.\n- `LOCKED_TRACK` — The edit targets a locked track.\n- `UNBOUND_LIBRARY` — The library is not bound to the project.\n- `TRACK_KIND_MISMATCH` — The clip type does not fit the track.\n- `NOT_FOUND` — The named id is not in this project.\n- `TOO_SHORT` — The result would be under one frame.\n- `INVALID_DUCK` — Bad `duck` level or a missing track.\n- `UNKNOWN_ANIMATION` — The preset is not in `ListAnimations()`.\n- `INVALID_ANIMATION_PARAM` — Bad slot, parameter or keyframe limit.\n- `ANIMATION_TOO_LONG` — In plus out exceed the clip length.\n- `ANIMATION_TARGET_MISMATCH` — The preset does not match the clip type.\n- `ANIMATION_PHASE_MISMATCH` — The preset is in the wrong slot.\n- `UNKNOWN_EFFECT` — The effect is not in `ListEffects()`.\n- `INVALID_EFFECT_PARAM` — Bad effect parameter or keyframe.\n- `TOO_MANY_EFFECTS` — More than 8 effects on one clip.\n- `PROJECT_NOT_FOUND` — No visible project has this id.\n- `EXPORT_NOT_FOUND` — No such export in this project.\n- `DRAFT_RENDER_NOT_FOUND` — No such draft render.\n- `VERSION_NOT_FOUND` — No saved version has this revision.\n- `LIBRARY_NOT_FOUND` — The library is missing or invisible.\n- `BINDING_INVALID` — The binding request is malformed.\n- `BINDING_IN_USE` — Clips still use this library's assets.\n- `NOTHING_TO_UNDO` — No earlier revision to return to.\n- `NOTHING_TO_REDO` — No undone revision is waiting.\n- `UNDO_CONFLICT` — The revision to undo is no longer head.\n- `REVISION_CONFLICT` — The project moved; your revision is stale.\n- `CUT_BUSY` — The project is busy; retry.\n- `INVALID_CAPTION_FILE` — The subtitle file is malformed or too big.\n- `SCRIPT_ERROR` — The script threw or did not parse.\n- `SCRIPT_LIMIT` — An execute budget was exceeded.\n- `OPS_REJECTED` — An op failed; the whole edit rolled back.\n- `EDIT_EXPIRED` — The saved edit id is over ten minutes old.\n- `MEDIA_OFFLINE` — The asset cannot be fetched right now.\n- `MEDIA_UNAVAILABLE` — The asset is not usable for rendering.\n- `MEDIA_IMPORT_FAILED` — Importing media failed.\n- `FRAME_OUT_OF_RANGE` — The preview time is outside the project.\n- `PROJECT_TOO_LARGE` — The project exceeds the size limit.\n- `RESPONSE_TOO_LARGE` — The response would exceed its budget.\n- `EXPORT_FAILED` — The render failed; read `error.cause`.\n- `INVALID_PARAMS` — The request is malformed.\n- `PERMISSION_DENIED` — This credential may not do that here.\n- `NOT_IMPLEMENTED` — Not available on this platform yet.\n- `INTERNAL` — Unexpected failure; retry with the request id.\n<!-- cut-reference:end -->\n";
8351
8356
  readonly http: "POST";
8352
8357
  readonly path: "/cut/v1/projects/{project_id}:execute";
8353
8358
  readonly streaming: "no";
@@ -9442,7 +9447,7 @@ export declare const operations: readonly [{
9442
9447
  readonly resource: "devops.projects.testRuns";
9443
9448
  readonly method: "create";
9444
9449
  readonly summary: "Create a test run";
9445
- readonly description: "Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued returns as soon as the run exists, finished waits for a verdict and may take minutes. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.";
9450
+ readonly description: "Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued, the default, returns as soon as the run exists; started waits until the run has begun, except for an external run, which is answered at once because it leaves queued only when your own CI uploads; finished waits for a verdict. The wait is bounded at about 25 seconds, and a wait that reaches that bound returns the run as it stands rather than failing — read state to see whether it finished. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.";
9446
9451
  readonly http: "POST";
9447
9452
  readonly path: "/devops/v1/projects/{project}/test-runs";
9448
9453
  readonly streaming: "no";
@@ -9485,7 +9490,7 @@ export declare const operations: readonly [{
9485
9490
  readonly type: "string";
9486
9491
  readonly enum: readonly ["queued", "started", "finished"];
9487
9492
  readonly required: false;
9488
- readonly description: "How far the call waits before answering — queued returns at once, started waits for execution to begin, finished waits for a verdict and may take minutes.";
9493
+ readonly description: "How far the call waits before answering, bounded at about 25 seconds; omit it for queued, which returns at once. The wait reads the run's own state, so a wait that reaches the bound returns the run as it stands instead of failing — check state before assuming the request was honoured.";
9489
9494
  }, {
9490
9495
  readonly name: "executor";
9491
9496
  readonly type: "string";
@@ -10062,6 +10062,12 @@ export const operations = [
10062
10062
  "type": "object",
10063
10063
  "required": false,
10064
10064
  "description": "Loudness normalization target. Omitted, the export is normalized to -14 LUFS integrated and -1 dBTP true peak, the level short-video and streaming platforms play at; null renders without normalization. Normalization adds analysis and rendering work."
10065
+ },
10066
+ {
10067
+ "name": "poster",
10068
+ "type": "object",
10069
+ "required": false,
10070
+ "description": "Cover frame, in seconds on the project clock. Omitted, the cover is the first frame with picture that is not inside a fade-in or a transition — a black opening no longer makes the library thumbnail black. A frame inside a transition is skipped, and a timeline that is black throughout keeps its first frame (reported as BLACK_FIRST_FRAME). The frame actually used is reported as poster_at on the export."
10065
10071
  }
10066
10072
  ]
10067
10073
  }
@@ -10336,7 +10342,7 @@ export const operations = [
10336
10342
  "resource": "cut.projects",
10337
10343
  "method": "execute",
10338
10344
  "summary": "Execute editing script",
10339
- "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<!-- cut-reference:start -->\n### Script function, field and error reference\n\nEvery script function, clip field and error code has its own section, read one at a time:\n\n```\ncodemode.describe(\"praxis.cut.script.<Name>\") // one function: signature, arguments, return, errors, example\ncodemode.describe(\"praxis.cut.fields.<name>\") // one field: type, unit, range, default, where writable\ncodemode.describe(\"praxis.cut.errors.<CODE>\") // one code: meaning, causes, fix\ncodemode.describe(\"praxis.cut.script\") // names, one page at a time\n```\n\nPublished at https://docs.deepraxis.com/docs/developers/cut/script-reference with one anchor per entry. Names below omit the `praxis.cut.<kind>.` prefix.\n\n#### Script functions (script)\n\n- `GetTimeline` — Duration, tracks, joins; clips are under `items`.\n- `GetItem` — One clip's compact view, by id.\n- `FindItems` — Visit every clip with its track; collect results.\n- `GetMedia` — Media metadata; `durationUs` is microseconds.\n- `GetTranscript` — Transcript words in source microseconds.\n- `GetAnalysis` — Silence, filler or scene segments.\n- `ListTransitions` — Join transition kinds and parameters.\n- `ListEffects` — Visual-effect catalog and parameters.\n- `ListAnimations` — Animation presets by phase and target.\n- `ListFonts` — Font families, weights and scripts.\n- `ListTextStyles` — Text style presets for `style.preset`.\n- `ListTextTemplates` — Multi-layer templates and their slots.\n- `Insert` — Add a clip; a track never overlaps itself.\n- `Append` — Add a clip at the end of a track.\n- `Update` — Change named fields; the rest stay.\n- `SetSpeed` — Change rate, keeping source or duration.\n- `Delete` — Remove a clip. There is no `Remove`.\n- `Join` — Overlap clips; followers shift, track shortens.\n- `UpdateJoin` — Change a join's length or effect.\n- `DeleteJoin` — Remove a join; restore the butt cut.\n- `Split` — Cut a clip in two at a time.\n- `Trim` — Move one clip edge by seconds.\n- `Move` — Set a clip's start or track.\n- `RippleDeleteRange` — Cut a time range and close the gap.\n- `AddTrack` — Add a video, audio or caption track.\n- `UpdateTrack` — Change a track's name, lock, gain or role.\n- `DeleteTrack` — Remove a track and its clips.\n- `SetSettings` — Change canvas, frame rate or background.\n- `AddCaptionsFromTranscript` — Captions from a clip's kept words.\n- `InsertTemplate` — Insert a template and fill its slots.\n- `AlignCaptions` — Rebuild captions from text punctuation.\n- `ImportCaptions` — Import SRT or WebVTT onto captions.\n- `ExportCaptions` — Export captions as SRT or WebVTT.\n- `SetMarker` — Label a timeline position.\n- `Print` — Append values to the result's `prints`.\n- `Preview` — Up to 8 frames as inline PNG data URLs.\n\n#### Fields (fields)\n\n- `type` — Clip kind; decides which fields apply.\n- `start` — Clip start in seconds; snaps to frames.\n- `length` — Duration; optional for video and audio.\n- `media` — Source `{ libraryId, assetId }`.\n- `sourceIn` — First source second kept; default 0.\n- `sourceOut` — Exclusive source end; read-only.\n- `text` — Text of a text or caption clip.\n- `color` — Solid colour of a color clip.\n- `shape` — Shape clip kind: `rect` or `ellipse`.\n- `width` — Shape width, a fraction of canvas width.\n- `height` — Shape height, a fraction of canvas height.\n- `radius` — Rect corner rounding, in 1080-height px.\n- `fill` — Shape or text paint: colour or gradient.\n- `stroke` — Shape outline: colour and width.\n- `transform` — Position, scale, rotation, opacity, crop, blur.\n- `fit` — contain, cover, fill or none.\n- `blend` — Layer blend mode; null clears.\n- `style` — Text styling: font, fill, strokes, glow, position.\n- `style.position` — top, middle or bottom; omit it, never null.\n- `playback` — Rate, direction, audio policy, or freeze.\n- `volumeDb` — Audio level in dB; 0 is source level.\n- `gain` — Keyframed audio level in dB.\n- `fadeIn` — Fade-in seconds at the clip's start.\n- `fadeOut` — Fade-out seconds at the clip's end.\n- `duck` — Lower this clip while another track plays.\n- `animate` — Transform keyframes; `at` is clip-relative seconds.\n- `reveal` — Per-character, word or line reveal timing.\n- `animation` — Preset slots `{ in, out, loop }`; null clears.\n- `effects` — Effect stack, at most 8; null clears.\n- `transitionIn` — Entrance effect: kind plus seconds.\n- `transitionOut` — Exit effect: kind plus seconds.\n- `mask` — Shape, path or track matte.\n- `words` — Caption words with clip-local times.\n\n#### Error codes (errors)\n\n- `JOIN_CONFLICT` — A join is invalid or blocks this edit.\n- `INVALID_TRANSITION` — Bad transition kind, parameter or length.\n- `INVALID_STYLE` — A style value is out of range.\n- `INVALID_MASK` — A mask definition is malformed.\n- `MASK_IN_USE` — The edit would break a live mask.\n- `TOO_MANY_MASKS` — At most 16 masks per project.\n- `RATE_OUT_OF_RANGE` — A rate is outside 0.25-4.\n- `UNSUPPORTED_PLAYBACK` — Reverse without an explicit mute.\n- `INVALID_PLAYBACK` — A playback object is partial or malformed.\n- `UNKNOWN_FONT` — The family is not in `ListFonts()`.\n- `UNKNOWN_FIELD` — The field name is not accepted here.\n- `UNKNOWN_TEXT_STYLE` — `style.preset` is not in the catalog.\n- `TEXT_STYLE_TARGET_MISMATCH` — Preset on the wrong clip type.\n- `CAPTION_ALIGN_LOW_CONFIDENCE` — Alignment confidence too low; nothing changed.\n- `OVERLAP` — Two clips on one track would share time.\n- `OUT_OF_SOURCE` — The clip would read past its source.\n- `LOCKED_TRACK` — The edit targets a locked track.\n- `UNBOUND_LIBRARY` — The library is not bound to the project.\n- `TRACK_KIND_MISMATCH` — The clip type does not fit the track.\n- `NOT_FOUND` — The named id is not in this project.\n- `TOO_SHORT` — The result would be under one frame.\n- `INVALID_DUCK` — Bad `duck` level or a missing track.\n- `UNKNOWN_ANIMATION` — The preset is not in `ListAnimations()`.\n- `INVALID_ANIMATION_PARAM` — Bad slot, parameter or keyframe limit.\n- `ANIMATION_TOO_LONG` — In plus out exceed the clip length.\n- `ANIMATION_TARGET_MISMATCH` — The preset does not match the clip type.\n- `ANIMATION_PHASE_MISMATCH` — The preset is in the wrong slot.\n- `UNKNOWN_EFFECT` — The effect is not in `ListEffects()`.\n- `INVALID_EFFECT_PARAM` — Bad effect parameter or keyframe.\n- `TOO_MANY_EFFECTS` — More than 8 effects on one clip.\n- `PROJECT_NOT_FOUND` — No visible project has this id.\n- `EXPORT_NOT_FOUND` — No such export in this project.\n- `VERSION_NOT_FOUND` — No saved version has this revision.\n- `LIBRARY_NOT_FOUND` — The library is missing or invisible.\n- `BINDING_INVALID` — The binding request is malformed.\n- `BINDING_IN_USE` — Clips still use this library's assets.\n- `NOTHING_TO_UNDO` — No earlier revision to return to.\n- `NOTHING_TO_REDO` — No undone revision is waiting.\n- `UNDO_CONFLICT` — The revision to undo is no longer head.\n- `REVISION_CONFLICT` — The project moved; your revision is stale.\n- `CUT_BUSY` — The project is busy; retry.\n- `INVALID_CAPTION_FILE` — The subtitle file is malformed or too big.\n- `SCRIPT_ERROR` — The script threw or did not parse.\n- `SCRIPT_LIMIT` — An execute budget was exceeded.\n- `OPS_REJECTED` — An op failed; the whole edit rolled back.\n- `EDIT_EXPIRED` — The saved edit id is over ten minutes old.\n- `MEDIA_OFFLINE` — The asset cannot be fetched right now.\n- `MEDIA_UNAVAILABLE` — The asset is not usable for rendering.\n- `MEDIA_IMPORT_FAILED` — Importing media failed.\n- `FRAME_OUT_OF_RANGE` — The preview time is outside the project.\n- `PROJECT_TOO_LARGE` — The project exceeds the size limit.\n- `RESPONSE_TOO_LARGE` — The response would exceed its budget.\n- `EXPORT_FAILED` — The render failed; read `error.cause`.\n- `INVALID_PARAMS` — The request is malformed.\n- `PERMISSION_DENIED` — This credential may not do that here.\n- `NOT_IMPLEMENTED` — Not available on this platform yet.\n- `INTERNAL` — Unexpected failure; retry with the request id.\n<!-- cut-reference:end -->\n",
10345
+ "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<!-- cut-reference:start -->\n### Script function, field and error reference\n\nEvery script function, clip field and error code has its own section, read one at a time:\n\n```\ncodemode.describe(\"praxis.cut.script.<Name>\") // one function: signature, arguments, return, errors, example\ncodemode.describe(\"praxis.cut.fields.<name>\") // one field: type, unit, range, default, where writable\ncodemode.describe(\"praxis.cut.errors.<CODE>\") // one code: meaning, causes, fix\ncodemode.describe(\"praxis.cut.script\") // names, one page at a time\n```\n\nPublished at https://docs.deepraxis.com/docs/developers/cut/script-reference with one anchor per entry. Names below omit the `praxis.cut.<kind>.` prefix.\n\n#### Script functions (script)\n\n- `GetTimeline` — Duration, tracks, joins; clips are under `items`.\n- `GetItem` — One clip's compact view, by id.\n- `FindItems` — Visit every clip with its track; collect results.\n- `GetMedia` — Media metadata; `durationUs` is microseconds.\n- `GetTranscript` — Transcript words in source microseconds.\n- `GetAnalysis` — Silence, filler or scene segments.\n- `ListTransitions` — Join transition kinds and parameters.\n- `ListEffects` — Visual-effect catalog and parameters.\n- `ListAnimations` — Animation presets by phase and target.\n- `ListFonts` — Font families, weights and scripts.\n- `ListTextStyles` — Text style presets for `style.preset`.\n- `ListTextTemplates` — Multi-layer templates and their slots.\n- `Insert` — Add a clip; a track never overlaps itself.\n- `Append` — Add a clip at the end of a track.\n- `Update` — Change named fields; the rest stay.\n- `SetSpeed` — Change rate, keeping source or duration.\n- `Delete` — Remove a clip. There is no `Remove`.\n- `Join` — Overlap clips; followers shift, track shortens.\n- `UpdateJoin` — Change a join's length or effect.\n- `DeleteJoin` — Remove a join; restore the butt cut.\n- `Split` — Cut a clip in two at a time.\n- `Trim` — Move one clip edge by seconds.\n- `Move` — Set a clip's start or track.\n- `RippleDeleteRange` — Cut a time range and close the gap.\n- `AddTrack` — Add a video, audio or caption track.\n- `UpdateTrack` — Change a track's name, lock, gain or role.\n- `DeleteTrack` — Remove a track and its clips.\n- `SetSettings` — Change canvas, frame rate or background.\n- `AddCaptionsFromTranscript` — Captions from a clip's kept words.\n- `InsertTemplate` — Insert a template and fill its slots.\n- `AlignCaptions` — Rebuild captions from text punctuation.\n- `ImportCaptions` — Import SRT or WebVTT onto captions.\n- `ExportCaptions` — Export captions as SRT or WebVTT.\n- `SetMarker` — Label a timeline position.\n- `Print` — Append values to the result's `prints`.\n- `Preview` — Up to 8 frames as inline PNG data URLs.\n\n#### Fields (fields)\n\n- `type` — Clip kind; decides which fields apply.\n- `start` — Clip start in seconds; snaps to frames.\n- `length` — Duration; optional for video and audio.\n- `media` — Source `{ libraryId, assetId }`.\n- `sourceIn` — First source second kept; default 0.\n- `sourceOut` — Exclusive source end; read-only.\n- `text` — Text of a text or caption clip.\n- `color` — Solid colour of a color clip.\n- `shape` — Shape clip kind: `rect` or `ellipse`.\n- `width` — Shape width, a fraction of canvas width.\n- `height` — Shape height, a fraction of canvas height.\n- `radius` — Rect corner rounding, in 1080-height px.\n- `fill` — Shape or text paint: colour or gradient.\n- `stroke` — Shape outline: colour and width.\n- `transform` — Position, scale, rotation, opacity, crop, blur.\n- `fit` — contain, cover, fill or none.\n- `blend` — Layer blend mode; null clears.\n- `style` — Text styling: font, fill, strokes, glow, position.\n- `style.position` — top, middle or bottom; omit it, never null.\n- `playback` — Rate, direction, audio policy, or freeze.\n- `volumeDb` — Audio level in dB; 0 is source level.\n- `gain` — Keyframed audio level in dB.\n- `fadeIn` — Fade-in seconds at the clip's start.\n- `fadeOut` — Fade-out seconds at the clip's end.\n- `duck` — Lower this clip while another track plays.\n- `animate` — Transform keyframes; `at` is clip-relative seconds.\n- `reveal` — Per-character, word or line reveal timing.\n- `animation` — Preset slots `{ in, out, loop }`; null clears.\n- `effects` — Effect stack, at most 8; null clears.\n- `transitionIn` — Entrance effect: kind plus seconds.\n- `transitionOut` — Exit effect: kind plus seconds.\n- `mask` — Shape, path or track matte.\n- `words` — Caption words with clip-local times.\n\n#### Error codes (errors)\n\n- `JOIN_CONFLICT` — A join is invalid or blocks this edit.\n- `INVALID_TRANSITION` — Bad transition kind, parameter or length.\n- `INVALID_STYLE` — A style value is out of range.\n- `INVALID_MASK` — A mask definition is malformed.\n- `MASK_IN_USE` — The edit would break a live mask.\n- `TOO_MANY_MASKS` — At most 16 masks per project.\n- `RATE_OUT_OF_RANGE` — A rate is outside 0.25-4.\n- `UNSUPPORTED_PLAYBACK` — Reverse without an explicit mute.\n- `INVALID_PLAYBACK` — A playback object is partial or malformed.\n- `UNKNOWN_FONT` — The family is not in `ListFonts()`.\n- `UNKNOWN_FIELD` — The field name is not accepted here.\n- `UNKNOWN_TEXT_STYLE` — `style.preset` is not in the catalog.\n- `TEXT_STYLE_TARGET_MISMATCH` — Preset on the wrong clip type.\n- `CAPTION_ALIGN_LOW_CONFIDENCE` — Alignment confidence too low; nothing changed.\n- `OVERLAP` — Two clips on one track would share time.\n- `OUT_OF_SOURCE` — The clip would read past its source.\n- `LOCKED_TRACK` — The edit targets a locked track.\n- `UNBOUND_LIBRARY` — The library is not bound to the project.\n- `TRACK_KIND_MISMATCH` — The clip type does not fit the track.\n- `NOT_FOUND` — The named id is not in this project.\n- `TOO_SHORT` — The result would be under one frame.\n- `INVALID_DUCK` — Bad `duck` level or a missing track.\n- `UNKNOWN_ANIMATION` — The preset is not in `ListAnimations()`.\n- `INVALID_ANIMATION_PARAM` — Bad slot, parameter or keyframe limit.\n- `ANIMATION_TOO_LONG` — In plus out exceed the clip length.\n- `ANIMATION_TARGET_MISMATCH` — The preset does not match the clip type.\n- `ANIMATION_PHASE_MISMATCH` — The preset is in the wrong slot.\n- `UNKNOWN_EFFECT` — The effect is not in `ListEffects()`.\n- `INVALID_EFFECT_PARAM` — Bad effect parameter or keyframe.\n- `TOO_MANY_EFFECTS` — More than 8 effects on one clip.\n- `PROJECT_NOT_FOUND` — No visible project has this id.\n- `EXPORT_NOT_FOUND` — No such export in this project.\n- `DRAFT_RENDER_NOT_FOUND` — No such draft render.\n- `VERSION_NOT_FOUND` — No saved version has this revision.\n- `LIBRARY_NOT_FOUND` — The library is missing or invisible.\n- `BINDING_INVALID` — The binding request is malformed.\n- `BINDING_IN_USE` — Clips still use this library's assets.\n- `NOTHING_TO_UNDO` — No earlier revision to return to.\n- `NOTHING_TO_REDO` — No undone revision is waiting.\n- `UNDO_CONFLICT` — The revision to undo is no longer head.\n- `REVISION_CONFLICT` — The project moved; your revision is stale.\n- `CUT_BUSY` — The project is busy; retry.\n- `INVALID_CAPTION_FILE` — The subtitle file is malformed or too big.\n- `SCRIPT_ERROR` — The script threw or did not parse.\n- `SCRIPT_LIMIT` — An execute budget was exceeded.\n- `OPS_REJECTED` — An op failed; the whole edit rolled back.\n- `EDIT_EXPIRED` — The saved edit id is over ten minutes old.\n- `MEDIA_OFFLINE` — The asset cannot be fetched right now.\n- `MEDIA_UNAVAILABLE` — The asset is not usable for rendering.\n- `MEDIA_IMPORT_FAILED` — Importing media failed.\n- `FRAME_OUT_OF_RANGE` — The preview time is outside the project.\n- `PROJECT_TOO_LARGE` — The project exceeds the size limit.\n- `RESPONSE_TOO_LARGE` — The response would exceed its budget.\n- `EXPORT_FAILED` — The render failed; read `error.cause`.\n- `INVALID_PARAMS` — The request is malformed.\n- `PERMISSION_DENIED` — This credential may not do that here.\n- `NOT_IMPLEMENTED` — Not available on this platform yet.\n- `INTERNAL` — Unexpected failure; retry with the request id.\n<!-- cut-reference:end -->\n",
10340
10346
  "http": "POST",
10341
10347
  "path": "/cut/v1/projects/{project_id}:execute",
10342
10348
  "streaming": "no",
@@ -11679,7 +11685,7 @@ export const operations = [
11679
11685
  "resource": "devops.projects.testRuns",
11680
11686
  "method": "create",
11681
11687
  "summary": "Create a test run",
11682
- "description": "Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued returns as soon as the run exists, finished waits for a verdict and may take minutes. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.",
11688
+ "description": "Start a run of the project's tests at one commit. Name a plan to use its selector, or pass a selector directly for this run alone; the ref says which commit to test and is required, because a run without a commit has nothing to report against. waitUntil decides how far the call waits before answering — queued, the default, returns as soon as the run exists; started waits until the run has begun, except for an external run, which is answered at once because it leaves queued only when your own CI uploads; finished waits for a verdict. The wait is bounded at about 25 seconds, and a wait that reaches that bound returns the run as it stands rather than failing — read state to see whether it finished. A retry of an earlier run is a new run: pass its commit and selector, and read the earlier run to compare.",
11683
11689
  "http": "POST",
11684
11690
  "path": "/devops/v1/projects/{project}/test-runs",
11685
11691
  "streaming": "no",
@@ -11734,7 +11740,7 @@ export const operations = [
11734
11740
  "finished"
11735
11741
  ],
11736
11742
  "required": false,
11737
- "description": "How far the call waits before answering — queued returns at once, started waits for execution to begin, finished waits for a verdict and may take minutes."
11743
+ "description": "How far the call waits before answering, bounded at about 25 seconds; omit it for queued, which returns at once. The wait reads the run's own state, so a wait that reaches the bound returns the run as it stands instead of failing — check state before assuming the request was honoured."
11738
11744
  },
11739
11745
  {
11740
11746
  "name": "executor",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepraxis/sdk",
3
- "version": "0.1.1-dev.edf8922",
3
+ "version": "0.1.1-dev.f01ff52",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {