@deepraxis/sdk 0.1.1-dev.ec2a9a1 → 0.1.1-dev.edf8922
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.
- package/METHODS.md +147 -1
- package/README.md +2 -2
- package/dist/core/errors.d.ts +6 -0
- package/dist/core/errors.js +8 -0
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.js +1 -1
- package/dist/generated/sdk.gen.d.ts +384 -143
- package/dist/generated/sdk.gen.js +755 -142
- package/dist/generated/types.gen.d.ts +4070 -242
- package/dist/operations.generated.d.ts +1806 -717
- package/dist/operations.generated.js +4530 -3188
- package/dist/resources.generated.d.ts +96 -0
- package/dist/resources.generated.js +89 -0
- package/package.json +2 -2
|
@@ -513,6 +513,30 @@ export const computersFilesContent = (options) => (options.client ?? client).get
|
|
|
513
513
|
url: '/agent/v1/computers/{computer_id}/files/content',
|
|
514
514
|
...options
|
|
515
515
|
});
|
|
516
|
+
/**
|
|
517
|
+
* Convert a Computer Document to PDF
|
|
518
|
+
*
|
|
519
|
+
* Convert an Office document (docx, doc, ppt, pptx, rtf, odt; up to 16 MiB) to PDF inside a platform-owned ephemeral document sandbox, whatever machine family the computer itself runs on. Returns base64 PDF bytes.
|
|
520
|
+
*
|
|
521
|
+
* Praxis extension: the preview conversion endpoint. The browser never parses an untrusted document — LibreOffice runs only inside an ephemeral document-family sandbox and the converter instance is killed after use. The file stays tenant-owned; non-convertible types answer EXTENSION_NOT_CONVERTIBLE and a failed conversion answers CONVERSION_FAILED.
|
|
522
|
+
*/
|
|
523
|
+
export const computersFilesConvert = (options) => (options.client ?? client).post({
|
|
524
|
+
security: [{
|
|
525
|
+
key: 'BearerAuth',
|
|
526
|
+
scheme: 'bearer',
|
|
527
|
+
type: 'http'
|
|
528
|
+
}, {
|
|
529
|
+
key: 'ApiKeyAuth',
|
|
530
|
+
name: 'X-API-Key',
|
|
531
|
+
type: 'apiKey'
|
|
532
|
+
}],
|
|
533
|
+
url: '/agent/v1/computers/{computer_id}/files/convert',
|
|
534
|
+
...options,
|
|
535
|
+
headers: {
|
|
536
|
+
'Content-Type': 'application/json',
|
|
537
|
+
...options.headers
|
|
538
|
+
}
|
|
539
|
+
});
|
|
516
540
|
/**
|
|
517
541
|
* Connect computer
|
|
518
542
|
*
|
|
@@ -1169,7 +1193,7 @@ export const fileRetrieveFileContent = (options) => (options.client ?? client).g
|
|
|
1169
1193
|
/**
|
|
1170
1194
|
* Create an upload
|
|
1171
1195
|
*
|
|
1172
|
-
* 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
|
|
1196
|
+
* 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 20 GiB (21474836480 bytes) and only user_data, assistants and vision purposes. Send parts of at most 64000000 bytes; an unfinished upload waits for them for 7 days, so a client can create → send parts → query GET /file/v1/uploads/{upload_id} → resend only the missing parts → complete. Optional part_size fixes every part length and makes each numbered part retryable with identical bytes. expires_after applies to the resulting file (3600–7776000 seconds on this own face); without it the file persists until deleted.
|
|
1173
1197
|
*/
|
|
1174
1198
|
export const fileCreateUpload = (options) => (options.client ?? client).post({
|
|
1175
1199
|
security: [{
|
|
@@ -1187,7 +1211,7 @@ export const fileCreateUpload = (options) => (options.client ?? client).post({
|
|
|
1187
1211
|
/**
|
|
1188
1212
|
* Add an upload part
|
|
1189
1213
|
*
|
|
1190
|
-
* Send one nonempty part as the multipart data field, at most 64000000 bytes. Parts may arrive concurrently in any order. Use upload_id from create. For a fixed-size upload, supply part_number starting at 1 and exactly part_size bytes except for the final remainder; retry the same number with identical bytes to recover its part ID. Without part_size, each request creates a new part and part_number is ignored. Save the returned part IDs for complete.
|
|
1214
|
+
* Send one nonempty part as the multipart data field, at most 64000000 bytes. Parts may arrive concurrently in any order. Use upload_id from create. For a fixed-size upload, supply part_number starting at 1 and exactly part_size bytes except for the final remainder; retry the same number with identical bytes to recover its part ID, and query GET /file/v1/uploads/{upload_id} to see which numbers already arrived. Without part_size, each request creates a new part and part_number is ignored. Save the returned part IDs for complete.
|
|
1191
1215
|
*/
|
|
1192
1216
|
export const fileAddUploadPart = (options) => (options.client ?? client).post({
|
|
1193
1217
|
...formDataBodySerializer,
|
|
@@ -1206,7 +1230,7 @@ export const fileAddUploadPart = (options) => (options.client ?? client).post({
|
|
|
1206
1230
|
/**
|
|
1207
1231
|
* Complete an upload
|
|
1208
1232
|
*
|
|
1209
|
-
* Assemble the uploaded parts into a file. Supply upload_id from create and part_ids from addPart in file byte order; their sizes must total the declared bytes. Optional md5 verifies the assembled content. Retrying identical part_ids and normalized md5 returns the same result; different inputs return 409. Unlike OpenAI, completed can contain a file still processing (status uploaded). Poll files.retrieve using file.id until status processed (own face state active); error, expiry or 404 means processing failed and the file cannot be used.
|
|
1233
|
+
* Assemble the uploaded parts into a file. Supply upload_id from create and part_ids from addPart in file byte order; their sizes must total the declared bytes. When parts were lost, query GET /file/v1/uploads/{upload_id} and resend them before completing. Optional md5 verifies the assembled content. Retrying identical part_ids and normalized md5 returns the same result; different inputs return 409. Unlike OpenAI, completed can contain a file still processing (status uploaded). Poll files.retrieve using file.id until status processed (own face state active); error, expiry or 404 means processing failed and the file cannot be used.
|
|
1210
1234
|
*/
|
|
1211
1235
|
export const fileCompleteUpload = (options) => (options.client ?? client).post({
|
|
1212
1236
|
security: [{
|
|
@@ -1235,10 +1259,24 @@ export const fileCancelUpload = (options) => (options.client ?? client).post({
|
|
|
1235
1259
|
url: '/file/v1/uploads/{upload_id}/cancel',
|
|
1236
1260
|
...options
|
|
1237
1261
|
});
|
|
1262
|
+
/**
|
|
1263
|
+
* Retrieve an upload
|
|
1264
|
+
*
|
|
1265
|
+
* Read the state of an unfinished upload — its status, declared bytes, fixed part_size and the parts it already holds (received_parts, each with part_number, bytes and sha256). After a break or a failed part, call it to resend only the missing numbers, then complete. A cancelled or expired upload is refused; a completed one returns its file. A missing or other-organization upload returns 404.
|
|
1266
|
+
*/
|
|
1267
|
+
export const fileRetrieveUpload = (options) => (options.client ?? client).get({
|
|
1268
|
+
security: [{
|
|
1269
|
+
key: 'BearerAuth',
|
|
1270
|
+
scheme: 'bearer',
|
|
1271
|
+
type: 'http'
|
|
1272
|
+
}],
|
|
1273
|
+
url: '/file/v1/uploads/{upload_id}',
|
|
1274
|
+
...options
|
|
1275
|
+
});
|
|
1238
1276
|
/**
|
|
1239
1277
|
* Create a one-time upload URL
|
|
1240
1278
|
*
|
|
1241
|
-
* Upload a local file of up to
|
|
1279
|
+
* Upload a local file of up to 20 GiB from a coding agent without sending bytes through the model. Provide basename, exact byte count and MIME type. Up to 104857600 bytes, PUT the file to url with curl -T photo.png -H 'Content-Type: image/png' '<url>'; success returns 201 with the file object, and reuse returns 410 CAPABILITY_USED. Above that threshold, split the file into part_size chunks (default 64000000 bytes) and PUT each chunk to its numbered parts[].url in any order; an interrupted client GETs status_url to see the received parts and resends only what is missing, then POSTs complete_url without a body. Part PUTs return 200; completion returns 201 with the file object, including its state, or 400 if a part is missing. A processing file can be polled with files.retrieve until active. Identical part bytes may be retried; changed bytes at the same number return 400. Completion reuse returns 410 CAPABILITY_USED. Each PUT requires the exact signed Content-Length; single-PUT Content-Type must match content_type or be omitted. Expired, revoked, invalid, wrong-action or cross-organization URLs return 404. URL lifetime defaults to 900 seconds for single PUT or 604800 (7 days) for multipart, at most 604800; all multipart URLs, including status_url, share an expiry. Multipart creation reserves storage quota. Issuance requires the same unscoped credential as direct file creation. Each issuance creates a new upload and is not idempotent. Example body: {"filename":"photo.png","bytes":2048,"content_type":"image/png"}.
|
|
1242
1280
|
*/
|
|
1243
1281
|
export const fileCreateSignedUpload = (options) => (options.client ?? client).post({
|
|
1244
1282
|
security: [{
|
|
@@ -6371,138 +6409,155 @@ export const cutUndeleteProject = (options) => (options.client ?? client).post({
|
|
|
6371
6409
|
*
|
|
6372
6410
|
* 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);`
|
|
6373
6411
|
*
|
|
6374
|
-
*
|
|
6375
|
-
*
|
|
6376
|
-
* Functions 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.
|
|
6377
|
-
*
|
|
6378
|
-
* ```ts
|
|
6379
|
-
* GetTimeline(o?: { from?: number; to?: number; tracks?: TrackId[] }): TimelineView;
|
|
6380
|
-
* GetItem(id: ClipId): ItemView;
|
|
6381
|
-
* FindItems<T>(visit: (item: ItemView, ctx: { track: TrackView; index: number }) => T | undefined): T[];
|
|
6382
|
-
* GetMedia(ref: MediaRef): MediaInfo;
|
|
6383
|
-
* GetTranscript(ref: MediaRef, o?: { from?: number; to?: number }): Word[];
|
|
6384
|
-
* GetAnalysis(ref: MediaRef, kind: AnalysisKind): Segment[];
|
|
6385
|
-
* ListTransitions(): TransitionInfo[];
|
|
6386
|
-
* ListEffects(): EffectInfo[];
|
|
6387
|
-
* ListTextStyles(): TextStylePreset[];
|
|
6388
|
-
* ListTextTemplates(): TextTemplate[];
|
|
6389
|
-
* ListAnimations(): { 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 }[] }[];
|
|
6390
|
-
* ListFonts(): { family: string; weights: number[]; scripts: ("latin"|"cjk")[]; source: "bundled"|"catalog" }[];
|
|
6391
|
-
* Insert(track: TrackId, item: ItemInit, o?: { ripple?: boolean }): ClipId;
|
|
6392
|
-
* Update(id: ClipId, patch: ItemPatchView): void;
|
|
6393
|
-
* SetSpeed(id: ClipId, rate: number | { curve: { at: number; rate: number; ease?: Ease }[]; audio?: "mute" | "resample" }, o: { keep: "source" | "duration"; ripple?: boolean }): { length: number; sourceOut: number };
|
|
6394
|
-
* Delete(id: ClipId, o?: { ripple?: boolean }): void;
|
|
6395
|
-
* Join(left: ClipId, right: ClipId, o: { length?: number; effect: TransitionInput }): JoinId;
|
|
6396
|
-
* UpdateJoin(id: JoinId, patch: { length?: number; effect?: TransitionInput }): void;
|
|
6397
|
-
* DeleteJoin(id: JoinId): void;
|
|
6398
|
-
* Split(id: ClipId, at: number): ClipId;
|
|
6399
|
-
* Trim(id: ClipId, edge: "in" | "out", delta: number, o?: { ripple?: boolean }): void;
|
|
6400
|
-
* Move(id: ClipId, start: number, track?: TrackId): void;
|
|
6401
|
-
* RippleDeleteRange(from: number, to: number, tracks?: TrackId[]): void;
|
|
6402
|
-
* AddTrack(kind: "video" | "audio" | "caption", init?: { name?: string; role?: "voice" | "music" | "sfx" }, index?: number): TrackId;
|
|
6403
|
-
* UpdateTrack(id: TrackId, patch: TrackPatch): void;
|
|
6404
|
-
* DeleteTrack(id: TrackId): void;
|
|
6405
|
-
* SetSettings(patch: Partial<ProjectSettingsView>): void;
|
|
6406
|
-
* AddCaptionsFromTranscript(track: TrackId, source: ClipId, o?: { style?: Partial<CaptionStyle> & { preset?: string }; maxChars?: number }): ClipId[];
|
|
6407
|
-
* InsertTemplate(track: TrackId, o: { template: string; start: number; slots?: Record<string, string> }): ClipId[];
|
|
6408
|
-
* AlignCaptions(trackId: TrackId, script: string): { replaced: number; added: number; deleted: number };
|
|
6409
|
-
* ImportCaptions(trackId: TrackId, text: string, o?: { format?: "srt" | "vtt"; offset?: number }): ClipId[];
|
|
6410
|
-
* ExportCaptions(trackId: TrackId, o: { format: "srt" | "vtt" }): string;
|
|
6411
|
-
* SetMarker(at: number, label: string): string;
|
|
6412
|
-
* Print(...values: unknown[]): void;
|
|
6413
|
-
* Preview(at: number[]): void;
|
|
6414
|
-
* ```
|
|
6415
|
-
*
|
|
6416
|
-
* | Functions | Behavior and arguments |
|
|
6417
|
-
* | --- | --- |
|
|
6418
|
-
* | GetTimeline, GetItem | Read compact item views: id, track, type, start, end, length, optional media, playback, sourceIn/sourceOut, text, effects, blend 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. |
|
|
6419
|
-
* | ListEffects | Discover the shared visual-effect catalog with parameter types, ranges, defaults, cost and bounds. Effects are supported only on visual clips. |
|
|
6420
|
-
* | 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. |
|
|
6421
|
-
* | 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. |
|
|
6422
|
-
* | FindItems | Visit items with their track and index; return undefined to omit an item, any other value to collect it. |
|
|
6423
|
-
* | GetMedia | Read metadata for `{libraryId, assetId}` in a bound library: kind, dimensions, fps, hasAudio and durationUs when available. durationUs is microseconds. |
|
|
6424
|
-
* | 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. |
|
|
6425
|
-
* | 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. |
|
|
6426
|
-
* | SetSpeed | Change video/audio rate in 0.25–4; keep is required. A `{curve: [{at, rate, ease?}, ...], audio?: "mute" | "resample"}` rate is forward-only and holds output duration fixed; pitch preservation is unavailable. Scalar rates: 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. |
|
|
6427
|
-
* | 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. |
|
|
6428
|
-
* | 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. |
|
|
6429
|
-
* | RippleDeleteRange | Delete a timeline interval and close its gap on the specified tracks, or all unlocked tracks when omitted. |
|
|
6430
|
-
* | AddTrack, UpdateTrack, DeleteTrack | Add video/audio/caption tracks; index selects layer order (0 is top). TrackPatch supports name, locked, hidden, muted, gainDb, audio role (`voice`, `music`, `sfx`) and style as appropriate to track kind. |
|
|
6431
|
-
* | SetSettings | Supply any of width/height (pixels), fps (frames per second), background (color). |
|
|
6432
|
-
* | 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. |
|
|
6433
|
-
* | ImportCaptions, ExportCaptions | Import SRT or WebVTT text onto a caption track and export it back. format is inferred from a WEBVTT header when omitted. offset shifts imported cues in seconds. Import rejects more than 100000 bytes, more than 5000 cues, malformed or overlapping file cues with INVALID_CAPTION_FILE; overlap with existing timeline clips uses the normal OVERLAP rejection. Export sorts by timeline start and writes millisecond timecodes. |
|
|
6434
|
-
* | SetMarker | Add a label at a timeline time and return its ID. |
|
|
6435
|
-
* | 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. |
|
|
6436
|
-
*
|
|
6437
|
-
* #### Joins between clips
|
|
6438
|
-
*
|
|
6439
|
-
* Endpoints 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.
|
|
6440
|
-
*
|
|
6441
|
-
* TransitionInput 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.
|
|
6442
|
-
*
|
|
6443
|
-
* Minimal 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.
|
|
6444
|
-
*
|
|
6445
|
-
* #### Insert fields (ItemInit)
|
|
6446
|
-
*
|
|
6447
|
-
* Every 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.
|
|
6448
|
-
*
|
|
6449
|
-
* | type | Required fields beyond type/start | Optional fields |
|
|
6450
|
-
* | --- | --- | --- |
|
|
6451
|
-
* | video | media | length, sourceIn, playback, volumeDb, transform, fit, blend, animate, animation, effects, mask, transitionIn, transitionOut |
|
|
6452
|
-
* | image | media, length | transform, fit, blend, animate, animation, effects, mask, transitionIn, transitionOut |
|
|
6453
|
-
* | text | text, length | style, transform, blend, reveal, animate, animation, effects, mask, transitionIn, transitionOut |
|
|
6454
|
-
* | color | color, length | transform, fill, blend, animate, animation, effects, mask, transitionIn, transitionOut |
|
|
6455
|
-
* | shape | shape, length, width, height, fill | radius, stroke, transform, blend, animate, animation, effects, mask, transitionIn, transitionOut |
|
|
6456
|
-
* | audio | media | length, sourceIn, playback, volumeDb, gain, fadeIn, fadeOut, duck |
|
|
6457
|
-
* | caption | text, length | — |
|
|
6458
|
-
*
|
|
6459
|
-
* Visual Insert/Update also accepts `blend`: `normal` (default), `screen`, `multiply`, `overlay`, or `add`; set it to null in Update to clear it. During a Join overlap, both inputs render with normal blending. Video 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.
|
|
6460
|
-
*
|
|
6461
|
-
* | Field | Value |
|
|
6462
|
-
* | --- | --- |
|
|
6463
|
-
* | 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. |
|
|
6464
|
-
* | 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. |
|
|
6465
|
-
* | 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. |
|
|
6466
|
-
* | 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. |
|
|
6467
|
-
* | 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. |
|
|
6468
|
-
* | 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. |
|
|
6469
|
-
* | 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. |
|
|
6470
|
-
* | 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}`. |
|
|
6471
|
-
* | 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. |
|
|
6472
|
-
*
|
|
6473
|
-
* #### Visual effects
|
|
6474
|
-
*
|
|
6475
|
-
* `effects` is an ordered stack of at most 8 catalog entries. Call `ListEffects()` to discover the catalog; unknown kinds return `UNKNOWN_EFFECT`, invalid names/values/keyframes return `INVALID_EFFECT_PARAM`, and stacks over 8 return `TOO_MANY_EFFECTS`. Entries include blur, color adjustment, vignette, film grain, chromatic aberration, pixelate, glitch, shake, flash, light leak and built-in `lut` looks; user `.cube` LUTs are not supported. `speed` is cycles per second. Effects run on CPU during export and increase render time. Parameters are discovered with ListEffects(). Catalog entries expose their own parameters through ListEffects(), including `blur` (`radius` 0–100, default 24) and `color_adjust`: `brightness`, `contrast`, `temperature`, and `tint` each range -1–1 (default 0), while `saturation` ranges 0–2 (default 1). Disabled entries are skipped. `color_adjust` uses an SDR-only Rec.709 adjustment matrix with no color management.
|
|
6412
|
+
* <!-- cut-reference:start -->
|
|
6413
|
+
* ### Script function, field and error reference
|
|
6476
6414
|
*
|
|
6477
|
-
*
|
|
6415
|
+
* Every script function, clip field and error code has its own section, read one at a time:
|
|
6478
6416
|
*
|
|
6479
|
-
*
|
|
6480
|
-
*
|
|
6481
|
-
*
|
|
6482
|
-
*
|
|
6483
|
-
*
|
|
6484
|
-
*
|
|
6485
|
-
* #### Animation presets
|
|
6486
|
-
*
|
|
6487
|
-
* Discover 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.
|
|
6488
|
-
*
|
|
6489
|
-
* Presets 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.
|
|
6490
|
-
*
|
|
6491
|
-
* Errors: 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.
|
|
6492
|
-
*
|
|
6493
|
-
* #### Speed, reverse and freeze
|
|
6494
|
-
*
|
|
6495
|
-
* Video/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.
|
|
6496
|
-
*
|
|
6497
|
-
* Update 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.
|
|
6498
|
-
*
|
|
6499
|
-
* Example 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.
|
|
6500
|
-
*
|
|
6501
|
-
* #### Script names versus HTTP response names
|
|
6502
|
-
*
|
|
6503
|
-
* Use 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.
|
|
6417
|
+
* ```
|
|
6418
|
+
* codemode.describe("praxis.cut.script.<Name>") // one function: signature, arguments, return, errors, example
|
|
6419
|
+
* codemode.describe("praxis.cut.fields.<name>") // one field: type, unit, range, default, where writable
|
|
6420
|
+
* codemode.describe("praxis.cut.errors.<CODE>") // one code: meaning, causes, fix
|
|
6421
|
+
* codemode.describe("praxis.cut.script") // names, one page at a time
|
|
6422
|
+
* ```
|
|
6504
6423
|
*
|
|
6505
|
-
*
|
|
6424
|
+
* Published at https://docs.deepraxis.com/docs/developers/cut/script-reference with one anchor per entry. Names below omit the `praxis.cut.<kind>.` prefix.
|
|
6425
|
+
*
|
|
6426
|
+
* #### Script functions (script)
|
|
6427
|
+
*
|
|
6428
|
+
* - `GetTimeline` — Duration, tracks, joins; clips are under `items`.
|
|
6429
|
+
* - `GetItem` — One clip's compact view, by id.
|
|
6430
|
+
* - `FindItems` — Visit every clip with its track; collect results.
|
|
6431
|
+
* - `GetMedia` — Media metadata; `durationUs` is microseconds.
|
|
6432
|
+
* - `GetTranscript` — Transcript words in source microseconds.
|
|
6433
|
+
* - `GetAnalysis` — Silence, filler or scene segments.
|
|
6434
|
+
* - `ListTransitions` — Join transition kinds and parameters.
|
|
6435
|
+
* - `ListEffects` — Visual-effect catalog and parameters.
|
|
6436
|
+
* - `ListAnimations` — Animation presets by phase and target.
|
|
6437
|
+
* - `ListFonts` — Font families, weights and scripts.
|
|
6438
|
+
* - `ListTextStyles` — Text style presets for `style.preset`.
|
|
6439
|
+
* - `ListTextTemplates` — Multi-layer templates and their slots.
|
|
6440
|
+
* - `Insert` — Add a clip; a track never overlaps itself.
|
|
6441
|
+
* - `Append` — Add a clip at the end of a track.
|
|
6442
|
+
* - `Update` — Change named fields; the rest stay.
|
|
6443
|
+
* - `SetSpeed` — Change rate, keeping source or duration.
|
|
6444
|
+
* - `Delete` — Remove a clip. There is no `Remove`.
|
|
6445
|
+
* - `Join` — Overlap clips; followers shift, track shortens.
|
|
6446
|
+
* - `UpdateJoin` — Change a join's length or effect.
|
|
6447
|
+
* - `DeleteJoin` — Remove a join; restore the butt cut.
|
|
6448
|
+
* - `Split` — Cut a clip in two at a time.
|
|
6449
|
+
* - `Trim` — Move one clip edge by seconds.
|
|
6450
|
+
* - `Move` — Set a clip's start or track.
|
|
6451
|
+
* - `RippleDeleteRange` — Cut a time range and close the gap.
|
|
6452
|
+
* - `AddTrack` — Add a video, audio or caption track.
|
|
6453
|
+
* - `UpdateTrack` — Change a track's name, lock, gain or role.
|
|
6454
|
+
* - `DeleteTrack` — Remove a track and its clips.
|
|
6455
|
+
* - `SetSettings` — Change canvas, frame rate or background.
|
|
6456
|
+
* - `AddCaptionsFromTranscript` — Captions from a clip's kept words.
|
|
6457
|
+
* - `InsertTemplate` — Insert a template and fill its slots.
|
|
6458
|
+
* - `AlignCaptions` — Rebuild captions from text punctuation.
|
|
6459
|
+
* - `ImportCaptions` — Import SRT or WebVTT onto captions.
|
|
6460
|
+
* - `ExportCaptions` — Export captions as SRT or WebVTT.
|
|
6461
|
+
* - `SetMarker` — Label a timeline position.
|
|
6462
|
+
* - `Print` — Append values to the result's `prints`.
|
|
6463
|
+
* - `Preview` — Up to 8 frames as inline PNG data URLs.
|
|
6464
|
+
*
|
|
6465
|
+
* #### Fields (fields)
|
|
6466
|
+
*
|
|
6467
|
+
* - `type` — Clip kind; decides which fields apply.
|
|
6468
|
+
* - `start` — Clip start in seconds; snaps to frames.
|
|
6469
|
+
* - `length` — Duration; optional for video and audio.
|
|
6470
|
+
* - `media` — Source `{ libraryId, assetId }`.
|
|
6471
|
+
* - `sourceIn` — First source second kept; default 0.
|
|
6472
|
+
* - `sourceOut` — Exclusive source end; read-only.
|
|
6473
|
+
* - `text` — Text of a text or caption clip.
|
|
6474
|
+
* - `color` — Solid colour of a color clip.
|
|
6475
|
+
* - `shape` — Shape clip kind: `rect` or `ellipse`.
|
|
6476
|
+
* - `width` — Shape width, a fraction of canvas width.
|
|
6477
|
+
* - `height` — Shape height, a fraction of canvas height.
|
|
6478
|
+
* - `radius` — Rect corner rounding, in 1080-height px.
|
|
6479
|
+
* - `fill` — Shape or text paint: colour or gradient.
|
|
6480
|
+
* - `stroke` — Shape outline: colour and width.
|
|
6481
|
+
* - `transform` — Position, scale, rotation, opacity, crop, blur.
|
|
6482
|
+
* - `fit` — contain, cover, fill or none.
|
|
6483
|
+
* - `blend` — Layer blend mode; null clears.
|
|
6484
|
+
* - `style` — Text styling: font, fill, strokes, glow, position.
|
|
6485
|
+
* - `style.position` — top, middle or bottom; omit it, never null.
|
|
6486
|
+
* - `playback` — Rate, direction, audio policy, or freeze.
|
|
6487
|
+
* - `volumeDb` — Audio level in dB; 0 is source level.
|
|
6488
|
+
* - `gain` — Keyframed audio level in dB.
|
|
6489
|
+
* - `fadeIn` — Fade-in seconds at the clip's start.
|
|
6490
|
+
* - `fadeOut` — Fade-out seconds at the clip's end.
|
|
6491
|
+
* - `duck` — Lower this clip while another track plays.
|
|
6492
|
+
* - `animate` — Transform keyframes; `at` is clip-relative seconds.
|
|
6493
|
+
* - `reveal` — Per-character, word or line reveal timing.
|
|
6494
|
+
* - `animation` — Preset slots `{ in, out, loop }`; null clears.
|
|
6495
|
+
* - `effects` — Effect stack, at most 8; null clears.
|
|
6496
|
+
* - `transitionIn` — Entrance effect: kind plus seconds.
|
|
6497
|
+
* - `transitionOut` — Exit effect: kind plus seconds.
|
|
6498
|
+
* - `mask` — Shape, path or track matte.
|
|
6499
|
+
* - `words` — Caption words with clip-local times.
|
|
6500
|
+
*
|
|
6501
|
+
* #### Error codes (errors)
|
|
6502
|
+
*
|
|
6503
|
+
* - `JOIN_CONFLICT` — A join is invalid or blocks this edit.
|
|
6504
|
+
* - `INVALID_TRANSITION` — Bad transition kind, parameter or length.
|
|
6505
|
+
* - `INVALID_STYLE` — A style value is out of range.
|
|
6506
|
+
* - `INVALID_MASK` — A mask definition is malformed.
|
|
6507
|
+
* - `MASK_IN_USE` — The edit would break a live mask.
|
|
6508
|
+
* - `TOO_MANY_MASKS` — At most 16 masks per project.
|
|
6509
|
+
* - `RATE_OUT_OF_RANGE` — A rate is outside 0.25-4.
|
|
6510
|
+
* - `UNSUPPORTED_PLAYBACK` — Reverse without an explicit mute.
|
|
6511
|
+
* - `INVALID_PLAYBACK` — A playback object is partial or malformed.
|
|
6512
|
+
* - `UNKNOWN_FONT` — The family is not in `ListFonts()`.
|
|
6513
|
+
* - `UNKNOWN_FIELD` — The field name is not accepted here.
|
|
6514
|
+
* - `UNKNOWN_TEXT_STYLE` — `style.preset` is not in the catalog.
|
|
6515
|
+
* - `TEXT_STYLE_TARGET_MISMATCH` — Preset on the wrong clip type.
|
|
6516
|
+
* - `CAPTION_ALIGN_LOW_CONFIDENCE` — Alignment confidence too low; nothing changed.
|
|
6517
|
+
* - `OVERLAP` — Two clips on one track would share time.
|
|
6518
|
+
* - `OUT_OF_SOURCE` — The clip would read past its source.
|
|
6519
|
+
* - `LOCKED_TRACK` — The edit targets a locked track.
|
|
6520
|
+
* - `UNBOUND_LIBRARY` — The library is not bound to the project.
|
|
6521
|
+
* - `TRACK_KIND_MISMATCH` — The clip type does not fit the track.
|
|
6522
|
+
* - `NOT_FOUND` — The named id is not in this project.
|
|
6523
|
+
* - `TOO_SHORT` — The result would be under one frame.
|
|
6524
|
+
* - `INVALID_DUCK` — Bad `duck` level or a missing track.
|
|
6525
|
+
* - `UNKNOWN_ANIMATION` — The preset is not in `ListAnimations()`.
|
|
6526
|
+
* - `INVALID_ANIMATION_PARAM` — Bad slot, parameter or keyframe limit.
|
|
6527
|
+
* - `ANIMATION_TOO_LONG` — In plus out exceed the clip length.
|
|
6528
|
+
* - `ANIMATION_TARGET_MISMATCH` — The preset does not match the clip type.
|
|
6529
|
+
* - `ANIMATION_PHASE_MISMATCH` — The preset is in the wrong slot.
|
|
6530
|
+
* - `UNKNOWN_EFFECT` — The effect is not in `ListEffects()`.
|
|
6531
|
+
* - `INVALID_EFFECT_PARAM` — Bad effect parameter or keyframe.
|
|
6532
|
+
* - `TOO_MANY_EFFECTS` — More than 8 effects on one clip.
|
|
6533
|
+
* - `PROJECT_NOT_FOUND` — No visible project has this id.
|
|
6534
|
+
* - `EXPORT_NOT_FOUND` — No such export in this project.
|
|
6535
|
+
* - `VERSION_NOT_FOUND` — No saved version has this revision.
|
|
6536
|
+
* - `LIBRARY_NOT_FOUND` — The library is missing or invisible.
|
|
6537
|
+
* - `BINDING_INVALID` — The binding request is malformed.
|
|
6538
|
+
* - `BINDING_IN_USE` — Clips still use this library's assets.
|
|
6539
|
+
* - `NOTHING_TO_UNDO` — No earlier revision to return to.
|
|
6540
|
+
* - `NOTHING_TO_REDO` — No undone revision is waiting.
|
|
6541
|
+
* - `UNDO_CONFLICT` — The revision to undo is no longer head.
|
|
6542
|
+
* - `REVISION_CONFLICT` — The project moved; your revision is stale.
|
|
6543
|
+
* - `CUT_BUSY` — The project is busy; retry.
|
|
6544
|
+
* - `INVALID_CAPTION_FILE` — The subtitle file is malformed or too big.
|
|
6545
|
+
* - `SCRIPT_ERROR` — The script threw or did not parse.
|
|
6546
|
+
* - `SCRIPT_LIMIT` — An execute budget was exceeded.
|
|
6547
|
+
* - `OPS_REJECTED` — An op failed; the whole edit rolled back.
|
|
6548
|
+
* - `EDIT_EXPIRED` — The saved edit id is over ten minutes old.
|
|
6549
|
+
* - `MEDIA_OFFLINE` — The asset cannot be fetched right now.
|
|
6550
|
+
* - `MEDIA_UNAVAILABLE` — The asset is not usable for rendering.
|
|
6551
|
+
* - `MEDIA_IMPORT_FAILED` — Importing media failed.
|
|
6552
|
+
* - `FRAME_OUT_OF_RANGE` — The preview time is outside the project.
|
|
6553
|
+
* - `PROJECT_TOO_LARGE` — The project exceeds the size limit.
|
|
6554
|
+
* - `RESPONSE_TOO_LARGE` — The response would exceed its budget.
|
|
6555
|
+
* - `EXPORT_FAILED` — The render failed; read `error.cause`.
|
|
6556
|
+
* - `INVALID_PARAMS` — The request is malformed.
|
|
6557
|
+
* - `PERMISSION_DENIED` — This credential may not do that here.
|
|
6558
|
+
* - `NOT_IMPLEMENTED` — Not available on this platform yet.
|
|
6559
|
+
* - `INTERNAL` — Unexpected failure; retry with the request id.
|
|
6560
|
+
* <!-- cut-reference:end -->
|
|
6506
6561
|
*
|
|
6507
6562
|
*/
|
|
6508
6563
|
export const cutExecute = (options) => (options.client ?? client).post({
|
|
@@ -6718,6 +6773,46 @@ export const cutCreateExport = (options) => (options.client ?? client).post({
|
|
|
6718
6773
|
...options.headers
|
|
6719
6774
|
}
|
|
6720
6775
|
});
|
|
6776
|
+
/**
|
|
6777
|
+
* Create draft range render
|
|
6778
|
+
*
|
|
6779
|
+
* Render one interval of the timeline so you can hear or look at how that passage comes out, without publishing anything to a media library. Choose kind audio for the mixed soundtrack as an .m4a file, or kind video for a draft-quality .mp4 with picture and sound. from and to are seconds on the project clock and must satisfy 0 <= from < to, to <= the timeline duration, and to - from <= 120; a longer passage is requested in several 分段请求 ranges and joined by the caller. The result is a temporary file (purpose user_data) that expires 24 hours after it is stored and is never imported into a library, so it is not a deliverable and carries no cut-export tag. HTTP 202 only accepts the job; poll praxis.cut.renders.retrieve using the returned id until status is done or failed, then read url while it lasts. A draft also bills like a draft export, by rendered seconds. Each project runs at most 2 draft renders at a time, a budget separate from its exports; a third answers HTTP 429 CUT_BUSY and the same call succeeds once one finishes.
|
|
6780
|
+
*/
|
|
6781
|
+
export const cutCreateRender = (options) => (options.client ?? client).post({
|
|
6782
|
+
security: [{
|
|
6783
|
+
key: 'BearerAuth',
|
|
6784
|
+
scheme: 'bearer',
|
|
6785
|
+
type: 'http'
|
|
6786
|
+
}, {
|
|
6787
|
+
key: 'ApiKeyAuth',
|
|
6788
|
+
name: 'X-API-Key',
|
|
6789
|
+
type: 'apiKey'
|
|
6790
|
+
}],
|
|
6791
|
+
url: '/cut/v1/projects/{project_id}/renders',
|
|
6792
|
+
...options,
|
|
6793
|
+
headers: {
|
|
6794
|
+
'Content-Type': 'application/json',
|
|
6795
|
+
...options.headers
|
|
6796
|
+
}
|
|
6797
|
+
});
|
|
6798
|
+
/**
|
|
6799
|
+
* Retrieve draft range render
|
|
6800
|
+
*
|
|
6801
|
+
* Poll a draft render id returned by projects.renders.create to see whether the interval is ready, then read url while it lasts. queued and rendering are in progress; done provides file_id and a short-lived url for the rendered .m4a or .mp4; failed provides error. Only done yields a url, and the file behind it disappears 24 hours after it was stored, so retrieve again when the link has expired.
|
|
6802
|
+
*/
|
|
6803
|
+
export const cutRetrieveRender = (options) => (options.client ?? client).get({
|
|
6804
|
+
security: [{
|
|
6805
|
+
key: 'BearerAuth',
|
|
6806
|
+
scheme: 'bearer',
|
|
6807
|
+
type: 'http'
|
|
6808
|
+
}, {
|
|
6809
|
+
key: 'ApiKeyAuth',
|
|
6810
|
+
name: 'X-API-Key',
|
|
6811
|
+
type: 'apiKey'
|
|
6812
|
+
}],
|
|
6813
|
+
url: '/cut/v1/renders/{render_id}',
|
|
6814
|
+
...options
|
|
6815
|
+
});
|
|
6721
6816
|
/**
|
|
6722
6817
|
* Retrieve video export
|
|
6723
6818
|
*
|
|
@@ -7140,6 +7235,296 @@ export const databaseInsert = (options) => (options.client ?? client).post({
|
|
|
7140
7235
|
...options.headers
|
|
7141
7236
|
}
|
|
7142
7237
|
});
|
|
7238
|
+
/**
|
|
7239
|
+
* Read a commit's test catalog
|
|
7240
|
+
*
|
|
7241
|
+
* Read the catalog version discovered at one commit — how many suites and cases it holds, which frameworks they come from, and how the commit changed them. Call this first: it tells you which suites, cases and sizes exist before you list them or select them into a plan, and the reported diff explains why a case count moved. A commit whose discovery has not finished answers CATALOG_NOT_READY, which means "not yet", not "no tests"; wait and read again. Omit commit to read the newest catalog published for the project.
|
|
7242
|
+
*/
|
|
7243
|
+
export const devopsTestCatalogGet = (options) => (options.client ?? client).get({
|
|
7244
|
+
security: [{
|
|
7245
|
+
key: 'devops-bearerAuth',
|
|
7246
|
+
scheme: 'bearer',
|
|
7247
|
+
type: 'http'
|
|
7248
|
+
}],
|
|
7249
|
+
url: '/devops/v1/projects/{project}/test-catalog',
|
|
7250
|
+
...options
|
|
7251
|
+
});
|
|
7252
|
+
/**
|
|
7253
|
+
* List test suites
|
|
7254
|
+
*
|
|
7255
|
+
* List the suites the project's newest catalog discovered — one suite per test file and framework pair, with its size, purposes and question count. Use it to find the suite id a case belongs to, or to see which files make up an area before selecting cases from them. Suites come from the catalog, so a file added in code appears only after its commit's catalog is published. Archived suites are returned too; they carry archived true and no case is ever silently dropped from the list.
|
|
7256
|
+
*/
|
|
7257
|
+
export const devopsTestSuitesList = (options) => (options.client ?? client).get({
|
|
7258
|
+
security: [{
|
|
7259
|
+
key: 'devops-bearerAuth',
|
|
7260
|
+
scheme: 'bearer',
|
|
7261
|
+
type: 'http'
|
|
7262
|
+
}],
|
|
7263
|
+
url: '/devops/v1/projects/{project}/test-suites',
|
|
7264
|
+
...options
|
|
7265
|
+
});
|
|
7266
|
+
/**
|
|
7267
|
+
* Retrieve a test suite
|
|
7268
|
+
*
|
|
7269
|
+
* Read one suite by the id a suite list returned, to learn its file, framework, size, purposes and how many cases it holds. Use it when a case's suite id needs a name for display, or to confirm which commit's catalog a suite came from. The id is opaque; it comes from the list, never from the file path.
|
|
7270
|
+
*/
|
|
7271
|
+
export const devopsTestSuitesGet = (options) => (options.client ?? client).get({
|
|
7272
|
+
security: [{
|
|
7273
|
+
key: 'devops-bearerAuth',
|
|
7274
|
+
scheme: 'bearer',
|
|
7275
|
+
type: 'http'
|
|
7276
|
+
}],
|
|
7277
|
+
url: '/devops/v1/test-suites/{id}',
|
|
7278
|
+
...options
|
|
7279
|
+
});
|
|
7280
|
+
/**
|
|
7281
|
+
* List test cases
|
|
7282
|
+
*
|
|
7283
|
+
* List a project's cases with their health, state and recent statistics, so you can decide which ones a plan must run and which are quarantined. This is the read a test dashboard is built on; filter it to narrow by state or health instead of paging through everything. A case's id is a fingerprint of its own title and path, so it survives a rename — read aliases when reconciling history recorded under an older title.
|
|
7284
|
+
*/
|
|
7285
|
+
export const devopsTestCasesList = (options) => (options.client ?? client).get({
|
|
7286
|
+
security: [{
|
|
7287
|
+
key: 'devops-bearerAuth',
|
|
7288
|
+
scheme: 'bearer',
|
|
7289
|
+
type: 'http'
|
|
7290
|
+
}],
|
|
7291
|
+
url: '/devops/v1/projects/{project}/test-cases',
|
|
7292
|
+
...options
|
|
7293
|
+
});
|
|
7294
|
+
/**
|
|
7295
|
+
* Retrieve a test case
|
|
7296
|
+
*
|
|
7297
|
+
* Read one case in full — its steps, tags, declared owners, current state with the policy and ticket behind it, and its rolling 7 or 30 day statistics. Use it before quarantining or fixing a case, to see what the state already is and why. A case that was renamed is reachable by both its current fingerprint id and the ids listed in aliases.
|
|
7298
|
+
*/
|
|
7299
|
+
export const devopsTestCasesGet = (options) => (options.client ?? client).get({
|
|
7300
|
+
security: [{
|
|
7301
|
+
key: 'devops-bearerAuth',
|
|
7302
|
+
scheme: 'bearer',
|
|
7303
|
+
type: 'http'
|
|
7304
|
+
}],
|
|
7305
|
+
url: '/devops/v1/test-cases/{id}',
|
|
7306
|
+
...options
|
|
7307
|
+
});
|
|
7308
|
+
/**
|
|
7309
|
+
* List test plans
|
|
7310
|
+
*
|
|
7311
|
+
* List the project's plans — what each one selects, which stage and gate it belongs to, and when it runs next. Read this before creating a plan, so a new plan extends what exists instead of duplicating a selector an existing plan already covers.
|
|
7312
|
+
*/
|
|
7313
|
+
export const devopsTestPlansList = (options) => (options.client ?? client).get({
|
|
7314
|
+
security: [{
|
|
7315
|
+
key: 'devops-bearerAuth',
|
|
7316
|
+
scheme: 'bearer',
|
|
7317
|
+
type: 'http'
|
|
7318
|
+
}],
|
|
7319
|
+
url: '/devops/v1/projects/{project}/test-plans',
|
|
7320
|
+
...options
|
|
7321
|
+
});
|
|
7322
|
+
/**
|
|
7323
|
+
* Create a test plan
|
|
7324
|
+
*
|
|
7325
|
+
* Create a plan that decides which cases a stage must run. The plan's key is unique inside the project and is what a later run names; the selector chooses cases by size, purpose, tag, package or explicit ids, and the trigger says when the plan fires by itself. A merge or promotion gate must name the environment it guards, and a plan with a gate but no environment is refused with PLAN_GATE_ENVIRONMENT_MISMATCH rather than created and silently ignored. A plan has no revision history: update it with a patch.
|
|
7326
|
+
*/
|
|
7327
|
+
export const devopsTestPlansCreate = (options) => (options.client ?? client).post({
|
|
7328
|
+
security: [{
|
|
7329
|
+
key: 'devops-bearerAuth',
|
|
7330
|
+
scheme: 'bearer',
|
|
7331
|
+
type: 'http'
|
|
7332
|
+
}],
|
|
7333
|
+
url: '/devops/v1/projects/{project}/test-plans',
|
|
7334
|
+
...options,
|
|
7335
|
+
headers: {
|
|
7336
|
+
'Content-Type': 'application/json',
|
|
7337
|
+
...options.headers
|
|
7338
|
+
}
|
|
7339
|
+
});
|
|
7340
|
+
/**
|
|
7341
|
+
* Delete a test plan
|
|
7342
|
+
*
|
|
7343
|
+
* Delete a plan so it schedules nothing further. The plan stops firing immediately; runs it already produced keep their own record and are not deleted with it. To stop a plan temporarily and keep it for later, pause it instead — deleting cannot be undone and the plan's key becomes free for another plan to take.
|
|
7344
|
+
*/
|
|
7345
|
+
export const devopsTestPlansDelete = (options) => (options.client ?? client).delete({
|
|
7346
|
+
security: [{
|
|
7347
|
+
key: 'devops-bearerAuth',
|
|
7348
|
+
scheme: 'bearer',
|
|
7349
|
+
type: 'http'
|
|
7350
|
+
}],
|
|
7351
|
+
url: '/devops/v1/test-plans/{id}',
|
|
7352
|
+
...options
|
|
7353
|
+
});
|
|
7354
|
+
/**
|
|
7355
|
+
* Retrieve a test plan
|
|
7356
|
+
*
|
|
7357
|
+
* Read one plan by the id a plan list returned, to see its selector, gate, repeat count, timeout and pause state before updating or deleting it. A paused plan carries the reason, the actor and the time it resumes, so a pause you did not set is explained here rather than guessed at.
|
|
7358
|
+
*/
|
|
7359
|
+
export const devopsTestPlansGet = (options) => (options.client ?? client).get({
|
|
7360
|
+
security: [{
|
|
7361
|
+
key: 'devops-bearerAuth',
|
|
7362
|
+
scheme: 'bearer',
|
|
7363
|
+
type: 'http'
|
|
7364
|
+
}],
|
|
7365
|
+
url: '/devops/v1/test-plans/{id}',
|
|
7366
|
+
...options
|
|
7367
|
+
});
|
|
7368
|
+
/**
|
|
7369
|
+
* Update a test plan
|
|
7370
|
+
*
|
|
7371
|
+
* Change a plan's title, trigger, selector, gate, repeat count, timeout or enabled flag. Only the fields present in the body are changed, so a body naming one field leaves the rest exactly as they were. Changing a selector does not create a version — the plan is not a published artefact, and runs already started keep the selection they were created with. Read the plan first to know what you are leaving unchanged.
|
|
7372
|
+
*/
|
|
7373
|
+
export const devopsTestPlansUpdate = (options) => (options.client ?? client).patch({
|
|
7374
|
+
security: [{
|
|
7375
|
+
key: 'devops-bearerAuth',
|
|
7376
|
+
scheme: 'bearer',
|
|
7377
|
+
type: 'http'
|
|
7378
|
+
}],
|
|
7379
|
+
url: '/devops/v1/test-plans/{id}',
|
|
7380
|
+
...options,
|
|
7381
|
+
headers: {
|
|
7382
|
+
'Content-Type': 'application/json',
|
|
7383
|
+
...options.headers
|
|
7384
|
+
}
|
|
7385
|
+
});
|
|
7386
|
+
/**
|
|
7387
|
+
* Pause a test plan
|
|
7388
|
+
*
|
|
7389
|
+
* Stop a plan from starting new runs while keeping it and its history. A reason is required and is recorded on the plan, so the next reader learns why it stopped. Give until to resume automatically at a time; omit it to stay paused until someone resumes it. Runs already in flight are not cancelled — cancel those individually.
|
|
7390
|
+
*/
|
|
7391
|
+
export const devopsTestPlansPause = (options) => (options.client ?? client).post({
|
|
7392
|
+
security: [{
|
|
7393
|
+
key: 'devops-bearerAuth',
|
|
7394
|
+
scheme: 'bearer',
|
|
7395
|
+
type: 'http'
|
|
7396
|
+
}],
|
|
7397
|
+
url: '/devops/v1/test-plans/{id}:pause',
|
|
7398
|
+
...options,
|
|
7399
|
+
headers: {
|
|
7400
|
+
'Content-Type': 'application/json',
|
|
7401
|
+
...options.headers
|
|
7402
|
+
}
|
|
7403
|
+
});
|
|
7404
|
+
/**
|
|
7405
|
+
* Resume a test plan
|
|
7406
|
+
*
|
|
7407
|
+
* Clear a plan's pause so it schedules runs again. Resuming an active plan changes nothing and is safe to repeat. The plan keeps its selector, gate and key; only the pause is removed.
|
|
7408
|
+
*/
|
|
7409
|
+
export const devopsTestPlansResume = (options) => (options.client ?? client).post({
|
|
7410
|
+
security: [{
|
|
7411
|
+
key: 'devops-bearerAuth',
|
|
7412
|
+
scheme: 'bearer',
|
|
7413
|
+
type: 'http'
|
|
7414
|
+
}],
|
|
7415
|
+
url: '/devops/v1/test-plans/{id}:resume',
|
|
7416
|
+
...options
|
|
7417
|
+
});
|
|
7418
|
+
/**
|
|
7419
|
+
* List test runs
|
|
7420
|
+
*
|
|
7421
|
+
* List the project's runs newest first, with each run's state, result and counts. Use it to find the run id whose executions you want to read, or to see whether a commit's tests have finished. A run whose result is pending has not reached a verdict yet — read it again rather than treating it as passed. Filter by state or result to watch only the runs still in flight.
|
|
7422
|
+
*/
|
|
7423
|
+
export const devopsTestRunsList = (options) => (options.client ?? client).get({
|
|
7424
|
+
security: [{
|
|
7425
|
+
key: 'devops-bearerAuth',
|
|
7426
|
+
scheme: 'bearer',
|
|
7427
|
+
type: 'http'
|
|
7428
|
+
}],
|
|
7429
|
+
url: '/devops/v1/projects/{project}/test-runs',
|
|
7430
|
+
...options
|
|
7431
|
+
});
|
|
7432
|
+
/**
|
|
7433
|
+
* Create a test run
|
|
7434
|
+
*
|
|
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
|
+
*/
|
|
7437
|
+
export const devopsTestRunsCreate = (options) => (options.client ?? client).post({
|
|
7438
|
+
security: [{
|
|
7439
|
+
key: 'devops-bearerAuth',
|
|
7440
|
+
scheme: 'bearer',
|
|
7441
|
+
type: 'http'
|
|
7442
|
+
}],
|
|
7443
|
+
url: '/devops/v1/projects/{project}/test-runs',
|
|
7444
|
+
...options,
|
|
7445
|
+
headers: {
|
|
7446
|
+
'Content-Type': 'application/json',
|
|
7447
|
+
...options.headers
|
|
7448
|
+
}
|
|
7449
|
+
});
|
|
7450
|
+
/**
|
|
7451
|
+
* Retrieve a test run
|
|
7452
|
+
*
|
|
7453
|
+
* Read one run's current state, result and counts, and ask for its failed executions inline with expand. Poll this after creating a run whose result was pending. A result is monotonic once it reaches a verdict — a failed run never becomes passed by a later report, so read the run rather than the last report to know where it ended.
|
|
7454
|
+
*/
|
|
7455
|
+
export const devopsTestRunsGet = (options) => (options.client ?? client).get({
|
|
7456
|
+
security: [{
|
|
7457
|
+
key: 'devops-bearerAuth',
|
|
7458
|
+
scheme: 'bearer',
|
|
7459
|
+
type: 'http'
|
|
7460
|
+
}],
|
|
7461
|
+
url: '/devops/v1/test-runs/{id}',
|
|
7462
|
+
...options
|
|
7463
|
+
});
|
|
7464
|
+
/**
|
|
7465
|
+
* Cancel a test run
|
|
7466
|
+
*
|
|
7467
|
+
* Stop a run that is still going. A reason is required and is recorded on the run, because a cancelled run is read later as evidence about why a commit was not verified. Cancelling a run that already reached a verdict is refused with RUN_ALREADY_FINISHED: its result is final and cancelling it would erase the verdict. Executions already recorded stay readable.
|
|
7468
|
+
*/
|
|
7469
|
+
export const devopsTestRunsCancel = (options) => (options.client ?? client).post({
|
|
7470
|
+
security: [{
|
|
7471
|
+
key: 'devops-bearerAuth',
|
|
7472
|
+
scheme: 'bearer',
|
|
7473
|
+
type: 'http'
|
|
7474
|
+
}],
|
|
7475
|
+
url: '/devops/v1/test-runs/{id}:cancel',
|
|
7476
|
+
...options,
|
|
7477
|
+
headers: {
|
|
7478
|
+
'Content-Type': 'application/json',
|
|
7479
|
+
...options.headers
|
|
7480
|
+
}
|
|
7481
|
+
});
|
|
7482
|
+
/**
|
|
7483
|
+
* List a run's executions
|
|
7484
|
+
*
|
|
7485
|
+
* List the executions recorded against one run — one entry per case the run selected, with its status, duration, attempts and evidence. Use it to find the case that failed, or to compare a repeat run against the previous one case by case. Reads happen while the run is still going, so a case may still be pending; filter by status to watch only the failures.
|
|
7486
|
+
*/
|
|
7487
|
+
export const devopsTestExecutionsList = (options) => (options.client ?? client).get({
|
|
7488
|
+
security: [{
|
|
7489
|
+
key: 'devops-bearerAuth',
|
|
7490
|
+
scheme: 'bearer',
|
|
7491
|
+
type: 'http'
|
|
7492
|
+
}],
|
|
7493
|
+
url: '/devops/v1/test-runs/{run}/executions',
|
|
7494
|
+
...options
|
|
7495
|
+
});
|
|
7496
|
+
/**
|
|
7497
|
+
* Retrieve one case's execution in a run
|
|
7498
|
+
*
|
|
7499
|
+
* Read one case's execution inside one run, including every attempt with its own duration and message. Use it after a run reports a failure to see whether the case failed once and passed on retry — that is what flaky true means — and to reach the evidence files a triage needs. Both ids come from the run and case reads; an execution that does not exist for that pair is NOT_FOUND rather than an empty answer.
|
|
7500
|
+
*/
|
|
7501
|
+
export const devopsTestExecutionsGet = (options) => (options.client ?? client).get({
|
|
7502
|
+
security: [{
|
|
7503
|
+
key: 'devops-bearerAuth',
|
|
7504
|
+
scheme: 'bearer',
|
|
7505
|
+
type: 'http'
|
|
7506
|
+
}],
|
|
7507
|
+
url: '/devops/v1/test-runs/{run}/executions/{case}',
|
|
7508
|
+
...options
|
|
7509
|
+
});
|
|
7510
|
+
/**
|
|
7511
|
+
* Upload an external test report
|
|
7512
|
+
*
|
|
7513
|
+
* Record the results of a run executed outside Praxis by uploading a CTRF or JUnit report. Nothing has to exist first: a first upload from CI creates the run it reports on (executor external) and catalogues the cases the report names, so there is no setup call before the first result. When the report already belongs to a run, pass ref and the upload joins it; the run's counts and verdict are recomputed from the report. Uploading the same reportId again is idempotent and counts once, so a retry after a timeout is safe — and a reported case is catalogued once, however many reports carry it. The report's bytes are kept as a file (the file field of the answer) rather than in the results database, so the original document stays retrievable.
|
|
7514
|
+
*/
|
|
7515
|
+
export const devopsTestReportsUpload = (options) => (options.client ?? client).post({
|
|
7516
|
+
security: [{
|
|
7517
|
+
key: 'devops-bearerAuth',
|
|
7518
|
+
scheme: 'bearer',
|
|
7519
|
+
type: 'http'
|
|
7520
|
+
}],
|
|
7521
|
+
url: '/devops/v1/projects/{project}/test-reports',
|
|
7522
|
+
...options,
|
|
7523
|
+
headers: {
|
|
7524
|
+
'Content-Type': 'application/json',
|
|
7525
|
+
...options.headers
|
|
7526
|
+
}
|
|
7527
|
+
});
|
|
7143
7528
|
/**
|
|
7144
7529
|
* List knowledge bases
|
|
7145
7530
|
*
|
|
@@ -7613,7 +7998,7 @@ export const mediaListAssets = (options) => (options.client ?? client).get({
|
|
|
7613
7998
|
/**
|
|
7614
7999
|
* Upload asset
|
|
7615
8000
|
*
|
|
7616
|
-
* 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.
|
|
8001
|
+
* For understanding, Media generates proxies for video sources of 25 MB or more or longer than 10 minutes, and for audio-only sources of 100 MB or more; originals remain available unchanged. Long videos are supported. When a video proxy is needed and is still above 95 MB after recompression, the source is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.
|
|
7617
8002
|
*/
|
|
7618
8003
|
export const mediaUploadAsset = (options) => (options.client ?? client).post({
|
|
7619
8004
|
security: [{
|
|
@@ -7631,7 +8016,7 @@ export const mediaUploadAsset = (options) => (options.client ?? client).post({
|
|
|
7631
8016
|
/**
|
|
7632
8017
|
* Import file
|
|
7633
8018
|
*
|
|
7634
|
-
* 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.
|
|
8019
|
+
* 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 or longer than 10 minutes, and for audio-only sources of 100 MB or more; originals remain available unchanged. Long videos are supported. When a video proxy is needed and is still above 95 MB after recompression, the source is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.
|
|
7635
8020
|
*/
|
|
7636
8021
|
export const mediaImportAsset = (options) => (options.client ?? client).post({
|
|
7637
8022
|
security: [{
|
|
@@ -7695,7 +8080,7 @@ export const mediaUpdateAsset = (options) => (options.client ?? client).patch({
|
|
|
7695
8080
|
/**
|
|
7696
8081
|
* Reprocess asset
|
|
7697
8082
|
*
|
|
7698
|
-
* 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.
|
|
8083
|
+
* For understanding, Media generates proxies for video sources of 25 MB or more or longer than 10 minutes, and for audio-only sources of 100 MB or more; originals remain available unchanged. Long videos are supported. When a video proxy is needed and is still above 95 MB after recompression, the source is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.
|
|
7699
8084
|
*/
|
|
7700
8085
|
export const mediaReprocessAsset = (options) => (options.client ?? client).post({
|
|
7701
8086
|
security: [{
|
|
@@ -7813,7 +8198,7 @@ export const mediaListFolders = (options) => (options.client ?? client).get({
|
|
|
7813
8198
|
/**
|
|
7814
8199
|
* Create batch
|
|
7815
8200
|
*
|
|
7816
|
-
* 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.
|
|
8201
|
+
* 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 or longer than 10 minutes, and for audio-only sources of 100 MB or more; originals remain available unchanged. Long videos are supported. When a video proxy is needed and is still above 95 MB after recompression, the source is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.
|
|
7817
8202
|
*/
|
|
7818
8203
|
export const mediaCreateBatch = (options) => (options.client ?? client).post({
|
|
7819
8204
|
security: [{
|
|
@@ -7845,7 +8230,7 @@ export const mediaGetBatch = (options) => (options.client ?? client).get({
|
|
|
7845
8230
|
/**
|
|
7846
8231
|
* Batch assets alias
|
|
7847
8232
|
*
|
|
7848
|
-
* 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.
|
|
8233
|
+
* 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 or longer than 10 minutes, and for audio-only sources of 100 MB or more; originals remain available unchanged. Long videos are supported. When a video proxy is needed and is still above 95 MB after recompression, the source is reported as UNSUPPORTED with the limit in the failure message. Proxy preparation uses the organization’s metered sandbox resources.
|
|
7849
8234
|
*/
|
|
7850
8235
|
export const mediaBatchAssets = (options) => (options.client ?? client).post({
|
|
7851
8236
|
security: [{
|
|
@@ -8012,6 +8397,234 @@ export const mediaGetGenerationCapabilities = (options) => (options?.client ?? c
|
|
|
8012
8397
|
url: '/media/v1/generation/capabilities',
|
|
8013
8398
|
...options
|
|
8014
8399
|
});
|
|
8400
|
+
/**
|
|
8401
|
+
* List types
|
|
8402
|
+
*
|
|
8403
|
+
* Read the node and relation types registered for this organization before writing, so a create names a type the graph accepts. Each entry is one registrant's registration with its owner, version and definitions. Types cannot be created at runtime; they are registered by the owning service at deploy time, so a type missing here is not available to write.
|
|
8404
|
+
*/
|
|
8405
|
+
export const ontologyListTypes = (options) => (options?.client ?? client).get({
|
|
8406
|
+
security: [{
|
|
8407
|
+
key: 'ontology-bearerAuth',
|
|
8408
|
+
scheme: 'bearer',
|
|
8409
|
+
type: 'http'
|
|
8410
|
+
}],
|
|
8411
|
+
url: '/ontology/v1/types',
|
|
8412
|
+
...options
|
|
8413
|
+
});
|
|
8414
|
+
/**
|
|
8415
|
+
* Register type
|
|
8416
|
+
*
|
|
8417
|
+
* Register a node or relation type for this organization. Not open yet — this call currently answers 501 NOT_IMPLEMENTED and writes nothing, because a registration is checked and stored by the deploy gate that ships the registering service, not by a runtime call. Until it opens, read the types already in force with praxis.ontology.types.list and create records only of those types.
|
|
8418
|
+
*/
|
|
8419
|
+
export const ontologyRegisterType = (options) => (options.client ?? client).post({
|
|
8420
|
+
security: [{
|
|
8421
|
+
key: 'ontology-bearerAuth',
|
|
8422
|
+
scheme: 'bearer',
|
|
8423
|
+
type: 'http'
|
|
8424
|
+
}],
|
|
8425
|
+
url: '/ontology/v1/types',
|
|
8426
|
+
...options,
|
|
8427
|
+
headers: {
|
|
8428
|
+
'Content-Type': 'application/json',
|
|
8429
|
+
...options.headers
|
|
8430
|
+
}
|
|
8431
|
+
});
|
|
8432
|
+
/**
|
|
8433
|
+
* Retrieve type
|
|
8434
|
+
*
|
|
8435
|
+
* Read one registered type's definition before writing a record of it, to learn whether it is a node or an edge, which endpoints an edge type admits, and which origins it accepts. The name comes from types.list; a name that is not registered answers ONTOLOGY_TYPE_UNKNOWN, and writes of that type are refused.
|
|
8436
|
+
*/
|
|
8437
|
+
export const ontologyRetrieveType = (options) => (options.client ?? client).get({
|
|
8438
|
+
security: [{
|
|
8439
|
+
key: 'ontology-bearerAuth',
|
|
8440
|
+
scheme: 'bearer',
|
|
8441
|
+
type: 'http'
|
|
8442
|
+
}],
|
|
8443
|
+
url: '/ontology/v1/types/{name}',
|
|
8444
|
+
...options
|
|
8445
|
+
});
|
|
8446
|
+
/**
|
|
8447
|
+
* List nodes
|
|
8448
|
+
*
|
|
8449
|
+
* Discover the entities in this organization's graph and obtain node ids for retrieval, updates and relations. Filter by type, by free text over names, aliases, descriptions and facts, or by owner; limit is 1–100 and defaults to 50. Omit cursor for the first page, then copy next_cursor into the next request until it is null. A node whose content belongs to somebody else comes back as a restricted entry carrying only its id, type and name.
|
|
8450
|
+
*/
|
|
8451
|
+
export const ontologyListNodes = (options) => (options?.client ?? client).get({
|
|
8452
|
+
security: [{
|
|
8453
|
+
key: 'ontology-bearerAuth',
|
|
8454
|
+
scheme: 'bearer',
|
|
8455
|
+
type: 'http'
|
|
8456
|
+
}],
|
|
8457
|
+
url: '/ontology/v1/nodes',
|
|
8458
|
+
...options
|
|
8459
|
+
});
|
|
8460
|
+
/**
|
|
8461
|
+
* Create node
|
|
8462
|
+
*
|
|
8463
|
+
* Record one entity in the graph, for a system mirroring a record it owns. type must already be registered and ref, when given, must match that type's ref_prefix. Send an Idempotency-Key header; repeating the same key with the same content returns the first result instead of creating a second node. This writes structure only — to give an agent something to remember, use POST /agent/v1/agents/{agent_id}/consolidations.
|
|
8464
|
+
*/
|
|
8465
|
+
export const ontologyCreateNode = (options) => (options.client ?? client).post({
|
|
8466
|
+
security: [{
|
|
8467
|
+
key: 'ontology-bearerAuth',
|
|
8468
|
+
scheme: 'bearer',
|
|
8469
|
+
type: 'http'
|
|
8470
|
+
}],
|
|
8471
|
+
url: '/ontology/v1/nodes',
|
|
8472
|
+
...options,
|
|
8473
|
+
headers: {
|
|
8474
|
+
'Content-Type': 'application/json',
|
|
8475
|
+
...options.headers
|
|
8476
|
+
}
|
|
8477
|
+
});
|
|
8478
|
+
/**
|
|
8479
|
+
* Retrieve node
|
|
8480
|
+
*
|
|
8481
|
+
* Read one node's content and, with expand=relations, every relation on and around it. as_of reads the node as it was at that time. A node id from another organization, or one that never existed, answers ONTOLOGY_NODE_NOT_FOUND; a node you may reach but not read returns restricted true with its name only.
|
|
8482
|
+
*/
|
|
8483
|
+
export const ontologyRetrieveNode = (options) => (options.client ?? client).get({
|
|
8484
|
+
security: [{
|
|
8485
|
+
key: 'ontology-bearerAuth',
|
|
8486
|
+
scheme: 'bearer',
|
|
8487
|
+
type: 'http'
|
|
8488
|
+
}],
|
|
8489
|
+
url: '/ontology/v1/nodes/{node_id}',
|
|
8490
|
+
...options
|
|
8491
|
+
});
|
|
8492
|
+
/**
|
|
8493
|
+
* Update node
|
|
8494
|
+
*
|
|
8495
|
+
* Change a node's name, aliases or description when the mirrored record was renamed, without touching its type or identity. Send only the fields to change; omitted fields keep their current values and an explicitly null description clears it. Repeating the same edit converges on the same node, so this needs no Idempotency-Key.
|
|
8496
|
+
*/
|
|
8497
|
+
export const ontologyUpdateNode = (options) => (options.client ?? client).patch({
|
|
8498
|
+
security: [{
|
|
8499
|
+
key: 'ontology-bearerAuth',
|
|
8500
|
+
scheme: 'bearer',
|
|
8501
|
+
type: 'http'
|
|
8502
|
+
}],
|
|
8503
|
+
url: '/ontology/v1/nodes/{node_id}',
|
|
8504
|
+
...options,
|
|
8505
|
+
headers: {
|
|
8506
|
+
'Content-Type': 'application/json',
|
|
8507
|
+
...options.headers
|
|
8508
|
+
}
|
|
8509
|
+
});
|
|
8510
|
+
/**
|
|
8511
|
+
* Merge node
|
|
8512
|
+
*
|
|
8513
|
+
* Fold a duplicate node into the node that should survive, when two records are discovered to be the same entity. The merged node's relations and aliases move to the survivor and later reads of the duplicate resolve to it. Send an Idempotency-Key header; repeating the same key replays the first result. Reversal is a staff operation, not available here.
|
|
8514
|
+
*/
|
|
8515
|
+
export const ontologyMergeNode = (options) => (options.client ?? client).post({
|
|
8516
|
+
security: [{
|
|
8517
|
+
key: 'ontology-bearerAuth',
|
|
8518
|
+
scheme: 'bearer',
|
|
8519
|
+
type: 'http'
|
|
8520
|
+
}],
|
|
8521
|
+
url: '/ontology/v1/nodes/{node_id}/merge',
|
|
8522
|
+
...options,
|
|
8523
|
+
headers: {
|
|
8524
|
+
'Content-Type': 'application/json',
|
|
8525
|
+
...options.headers
|
|
8526
|
+
}
|
|
8527
|
+
});
|
|
8528
|
+
/**
|
|
8529
|
+
* List relations
|
|
8530
|
+
*
|
|
8531
|
+
* Read the facts in the graph and obtain relation ids for retrieval, invalidation or spreading. Filter by endpoint node, by type and by direction; as_of reads the relations as they were then. Invalidated relations are omitted unless include_invalid is true. limit is 1–100 and defaults to 50; follow next_cursor until it is null.
|
|
8532
|
+
*/
|
|
8533
|
+
export const ontologyListRelations = (options) => (options?.client ?? client).get({
|
|
8534
|
+
security: [{
|
|
8535
|
+
key: 'ontology-bearerAuth',
|
|
8536
|
+
scheme: 'bearer',
|
|
8537
|
+
type: 'http'
|
|
8538
|
+
}],
|
|
8539
|
+
url: '/ontology/v1/relations',
|
|
8540
|
+
...options
|
|
8541
|
+
});
|
|
8542
|
+
/**
|
|
8543
|
+
* Create relation
|
|
8544
|
+
*
|
|
8545
|
+
* Record one fact between two existing nodes, for a system mirroring a relationship it owns. type must be registered and must admit these endpoints; fact states the relationship in one sentence. Send an Idempotency-Key header; repeating the same key returns the first result instead of writing a second relation. This writes structure only — to give an agent something to remember, use POST /agent/v1/agents/{agent_id}/consolidations.
|
|
8546
|
+
*/
|
|
8547
|
+
export const ontologyCreateRelation = (options) => (options.client ?? client).post({
|
|
8548
|
+
security: [{
|
|
8549
|
+
key: 'ontology-bearerAuth',
|
|
8550
|
+
scheme: 'bearer',
|
|
8551
|
+
type: 'http'
|
|
8552
|
+
}],
|
|
8553
|
+
url: '/ontology/v1/relations',
|
|
8554
|
+
...options,
|
|
8555
|
+
headers: {
|
|
8556
|
+
'Content-Type': 'application/json',
|
|
8557
|
+
...options.headers
|
|
8558
|
+
}
|
|
8559
|
+
});
|
|
8560
|
+
/**
|
|
8561
|
+
* Retrieve relation
|
|
8562
|
+
*
|
|
8563
|
+
* Read one relation's fact and both of its clocks — valid_at and invalid_at for when it was true in the world, created_at and expired_at for when it was recorded and retired. An id from another organization, or one that never existed, answers ONTOLOGY_EDGE_NOT_FOUND.
|
|
8564
|
+
*/
|
|
8565
|
+
export const ontologyRetrieveRelation = (options) => (options.client ?? client).get({
|
|
8566
|
+
security: [{
|
|
8567
|
+
key: 'ontology-bearerAuth',
|
|
8568
|
+
scheme: 'bearer',
|
|
8569
|
+
type: 'http'
|
|
8570
|
+
}],
|
|
8571
|
+
url: '/ontology/v1/relations/{relation_id}',
|
|
8572
|
+
...options
|
|
8573
|
+
});
|
|
8574
|
+
/**
|
|
8575
|
+
* Invalidate relation
|
|
8576
|
+
*
|
|
8577
|
+
* Mark a relation as no longer true from a world time, when the mirrored record changed. The relation is kept — invalid_at moves and the relation still reads at an earlier as_of, so history stays answerable. Send an Idempotency-Key header; repeating the same key replays the first result. There is no delete.
|
|
8578
|
+
*/
|
|
8579
|
+
export const ontologyInvalidateRelation = (options) => (options.client ?? client).post({
|
|
8580
|
+
security: [{
|
|
8581
|
+
key: 'ontology-bearerAuth',
|
|
8582
|
+
scheme: 'bearer',
|
|
8583
|
+
type: 'http'
|
|
8584
|
+
}],
|
|
8585
|
+
url: '/ontology/v1/relations/{relation_id}/invalidate',
|
|
8586
|
+
...options,
|
|
8587
|
+
headers: {
|
|
8588
|
+
'Content-Type': 'application/json',
|
|
8589
|
+
...options.headers
|
|
8590
|
+
}
|
|
8591
|
+
});
|
|
8592
|
+
/**
|
|
8593
|
+
* Apply changeset
|
|
8594
|
+
*
|
|
8595
|
+
* Apply a batch of node, relation and invalidation operations as one transaction, when a mirror has several records to write together and a partial write would leave the graph inconsistent. Every operation succeeds or none is applied. Send an Idempotency-Key header; the same key with the same content replays the first result, and the same key with different content is ONTOLOGY_CONFLICT.
|
|
8596
|
+
*/
|
|
8597
|
+
export const ontologyApplyChangeset = (options) => (options.client ?? client).post({
|
|
8598
|
+
security: [{
|
|
8599
|
+
key: 'ontology-bearerAuth',
|
|
8600
|
+
scheme: 'bearer',
|
|
8601
|
+
type: 'http'
|
|
8602
|
+
}],
|
|
8603
|
+
url: '/ontology/v1/changesets',
|
|
8604
|
+
...options,
|
|
8605
|
+
headers: {
|
|
8606
|
+
'Content-Type': 'application/json',
|
|
8607
|
+
...options.headers
|
|
8608
|
+
}
|
|
8609
|
+
});
|
|
8610
|
+
/**
|
|
8611
|
+
* Search nodes
|
|
8612
|
+
*
|
|
8613
|
+
* Resolve text to the nodes it most likely names, when a mirror holds a name and needs the node id it corresponds to. Results are ranked candidates, not an answer, each reporting whether the match came from the node's name, an alias, its description or a relation's fact. Narrow with types, and cap the result count with limit (1–50, default 20). This reads structure; it is not an agent recall — agents recall through POST /agent/v1/agents/{agent_id}/consolidations.
|
|
8614
|
+
*/
|
|
8615
|
+
export const ontologySearch = (options) => (options.client ?? client).post({
|
|
8616
|
+
security: [{
|
|
8617
|
+
key: 'ontology-bearerAuth',
|
|
8618
|
+
scheme: 'bearer',
|
|
8619
|
+
type: 'http'
|
|
8620
|
+
}],
|
|
8621
|
+
url: '/ontology/v1/search',
|
|
8622
|
+
...options,
|
|
8623
|
+
headers: {
|
|
8624
|
+
'Content-Type': 'application/json',
|
|
8625
|
+
...options.headers
|
|
8626
|
+
}
|
|
8627
|
+
});
|
|
8015
8628
|
/**
|
|
8016
8629
|
* List sandboxes (v2)
|
|
8017
8630
|
*
|
|
@@ -9112,7 +9725,7 @@ export const vaultListVaults = (options) => (options?.client ?? client).get({
|
|
|
9112
9725
|
/**
|
|
9113
9726
|
* Create vault
|
|
9114
9727
|
*
|
|
9115
|
-
* Create an empty, active vault to hold credentials for your account, with a display name and optional metadata. Use its returned id as vault_id when creating secrets or OAuth authorizations.
|
|
9728
|
+
* Create an empty, active vault to hold credentials for your account, with a display name and optional metadata. Use its returned id as vault_id when creating secrets or OAuth authorizations. Agent sessions and deployments accept up to 50 vault_ids and match their credentials against the session's MCP servers, so a stored static or oauth credential does serve as vault-backed MCP authentication; only environment_variable credentials are not yet placed, because the egress proxy ADR-058 §6 gives them is not built. Application vault references are also unavailable; praxis_vault_ref version bindings and secret writes with a vault source return 501, so creating a vault does not yet enable either consumer.
|
|
9116
9729
|
*/
|
|
9117
9730
|
export const vaultCreateVault = (options) => (options.client ?? client).post({
|
|
9118
9731
|
security: [{
|
|
@@ -9708,7 +10321,7 @@ export const ticketGetLabels = (options) => (options?.client ?? client).get({
|
|
|
9708
10321
|
/**
|
|
9709
10322
|
* Create or add labels
|
|
9710
10323
|
*
|
|
9711
|
-
* Create or add labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result.
|
|
10324
|
+
* Create or add labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.
|
|
9712
10325
|
*/
|
|
9713
10326
|
export const ticketPostLabels = (options) => (options.client ?? client).post({
|
|
9714
10327
|
security: [{
|
|
@@ -9730,7 +10343,7 @@ export const ticketPostLabels = (options) => (options.client ?? client).post({
|
|
|
9730
10343
|
/**
|
|
9731
10344
|
* Remove labels
|
|
9732
10345
|
*
|
|
9733
|
-
* Remove labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result.
|
|
10346
|
+
* Remove labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.
|
|
9734
10347
|
*/
|
|
9735
10348
|
export const ticketDeleteLabelsName = (options) => (options.client ?? client).delete({
|
|
9736
10349
|
security: [{
|
|
@@ -9748,7 +10361,7 @@ export const ticketDeleteLabelsName = (options) => (options.client ?? client).de
|
|
|
9748
10361
|
/**
|
|
9749
10362
|
* Update labels
|
|
9750
10363
|
*
|
|
9751
|
-
* Update labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result.
|
|
10364
|
+
* Update labels within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.
|
|
9752
10365
|
*/
|
|
9753
10366
|
export const ticketPatchLabelsName = (options) => (options.client ?? client).patch({
|
|
9754
10367
|
security: [{
|