@deepraxis/sdk 0.1.1-dev.cc34a92 → 0.1.1-dev.d412c99

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.
@@ -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
  *
@@ -1092,7 +1116,7 @@ export const fileListFiles = (options) => (options?.client ?? client).get({
1092
1116
  /**
1093
1117
  * Upload file
1094
1118
  *
1095
- * Upload a file to reuse in conversations or attach to a knowledge base. Unlike OpenAI Files, uploads must be nonempty and at most 100000000 bytes, and only user_data and vision purposes are accepted. Send file bytes as a multipart file part, not a filename or file ID; in the SDK use a File or Blob, for example new File(["Return within 23 days."], "policy.txt", { type: "text/plain" }). Content determines the MIME type. Supported uploads include PDF, DOCX/XLSX/PPTX, PNG/JPEG/GIF/WebP, MP3/WAV/FLAC/OGG/M4A, MP4/WebM, and UTF-8 JSON/NDJSON/CSV/Markdown/plain text; empty, unsupported, oversized files and unsupported purposes return 400. Use Uploads for larger files. The purpose vision accepts only PNG, JPEG, GIF and WebP, while conversation images require user_data. The returned ID belongs to your tenant; upload alone does not ingest the file into Knowledge. Knowledge attachment has a lower limit of 100000000 bytes. Optionally set expires_after[anchor]=created_at with expires_after[seconds] (3600–7776000). Without expiry, the file persists until deleted.
1119
+ * Upload a file to reuse in conversations or attach to a knowledge base. Unlike OpenAI Files, uploads must be nonempty and at most 100000000 bytes, and only user_data, assistants and vision purposes are accepted. Send file bytes as a multipart file part, not a filename or file ID; in the SDK use a File or Blob, for example new File(["Return within 23 days."], "policy.txt", { type: "text/plain" }). Content determines the MIME type. Supported uploads include PDF, DOCX/XLSX/PPTX, PNG/JPEG/GIF/WebP, MP3/WAV/FLAC/OGG/M4A, MP4/WebM, and UTF-8 JSON/NDJSON/CSV/Markdown/plain text; empty, unsupported, oversized files and unsupported purposes return 400. Use Uploads for larger files. The purpose vision accepts only PNG, JPEG, GIF and WebP, while conversation images require user_data. The returned ID belongs to your tenant; upload alone does not ingest the file into Knowledge. Knowledge attachment has a lower limit of 100000000 bytes. Optionally set expires_after[anchor]=created_at with expires_after[seconds] (3600–7776000). Without expiry, the file persists until deleted.
1096
1120
  */
1097
1121
  export const fileCreateFile = (options) => (options.client ?? client).post({
1098
1122
  ...formDataBodySerializer,
@@ -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 2 GiB (2147483648 bytes) and only user_data and vision purposes. Add parts of at most 64000000 bytes and complete within one hour. Optional part_size enables fixed-size, retryable parts. expires_after applies to the resulting file (3600–7776000 seconds on this own face); without it the file persists until deleted.
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 2 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), PUT each chunk to its numbered parts[].url in any order, then POST 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 3600 for multipart, at most 604800; all multipart URLs 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"}.
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: [{
@@ -1260,7 +1298,7 @@ export const fileCreateSignedUpload = (options) => (options.client ?? client).po
1260
1298
  /**
1261
1299
  * Create a download URL
1262
1300
  *
1263
- * Download a file's bytes to a local disk from a coding agent without sending them through the model. Use file_id from file creation or listing, then run curl -fsSL -o <filename> '<url>' locally with the returned URL; GET needs no Authorization header. The link is reusable until expiry and supports a single byte Range (for example Range: bytes=0-9 returns 206). Revoke it with files.contentLinks.revoke, passing the token after /c/ in the URL. Expired, revoked, invalid or cross-organization URLs return 404. Lifetime defaults to 3600 seconds and is at most 604800 seconds. Issuance requires the same credential and file-read access as files.retrieveContent; a processing file returns 409 FILE_NOT_READY, so poll files.retrieve until active before retrying. A missing, expired or other-organization file returns 404. Each issuance creates a new link. OpenAI Files has no signed download URL; this follows S3 presigned GET semantics. Example body: {"ttl_seconds":3600}.
1301
+ * Download a file's bytes to a local disk from a coding agent without sending them through the model. Use file_id from file creation or listing, then run curl -fsSL -o <filename> '<url>' locally with the returned URL; GET needs no Authorization header. The link is reusable until expiry and supports a single byte Range (for example Range: bytes=0-9 returns 206). Revoke it with files.contentLinks.revoke, passing the token after /c/ in the URL. Expired, revoked, invalid or cross-organization URLs return 404. Lifetime defaults to 900 seconds and is at most 604800 seconds. Issuance requires the same credential and file-read access as files.retrieveContent; a processing file returns 409 FILE_NOT_READY, so poll files.retrieve until active before retrying. A missing, expired or other-organization file returns 404. Each issuance creates a new link. OpenAI Files has no signed download URL; this follows S3 presigned GET semantics. Example body: {"ttl_seconds":3600}.
1264
1302
  */
1265
1303
  export const fileCreateContentUrl = (options) => (options.client ?? client).post({
1266
1304
  security: [{
@@ -1282,7 +1320,7 @@ export const fileCreateContentUrl = (options) => (options.client ?? client).post
1282
1320
  /**
1283
1321
  * Revoke a file content link
1284
1322
  *
1285
- * Stop a previously issued content link from reading a file. Obtain the link with files.contentUrl.create. Use file_id from file creation or listing and the token path component from a content URL (/c/<token>), not the complete URL. The caller must own the file and have write access; a read-only binding is refused. Revocation propagates through the capability deny list within 30 seconds; the file and other links remain available. Only current IAM capability tokens can be revoked; legacy content links expire at the migration deadline. Example body: {"token":"<token from /c/>"}.
1323
+ * Stop a previously issued content link from reading a file. Obtain the link with files.contentUrl.create. Use file_id from file creation or listing and the token path component from a content URL (/c/<token>), not the complete URL. The caller must own the file and have write access; a read-only binding is refused. Revocation propagates through the capability deny list within 15 minutes; the file and other links remain available. Only current IAM capability tokens can be revoked; legacy content links expire at the migration deadline. Example body: {"token":"<token from /c/>"}.
1286
1324
  */
1287
1325
  export const fileRevokeContentLink = (options) => (options.client ?? client).post({
1288
1326
  security: [{
@@ -1988,6 +2026,24 @@ export const countResponseInputTokens = (options) => (options.client ?? client).
1988
2026
  ...options.headers
1989
2027
  }
1990
2028
  });
2029
+ /**
2030
+ * List organization members
2031
+ *
2032
+ * Concepts follow GitHub org members: find a person's user id, for example to assign an approver to an approval task. Lists only members of the organization behind your API key or runtime token, ordered by joined_at ascending (membership id breaks ties). Ask the user who should approve, then use that member's id. Emails are visible only within this organization. The request cannot select another organization. Pass next_page unchanged as page; null means the end. Read-only; no usage charge. Example: GET /organization/v1/members?limit=20.
2033
+ */
2034
+ export const listOrganizationMembers = (options) => (options?.client ?? client).get({
2035
+ security: [{
2036
+ key: 'BearerAuth',
2037
+ scheme: 'bearer',
2038
+ type: 'http'
2039
+ }, {
2040
+ key: 'ApiKeyAuth',
2041
+ name: 'X-API-Key',
2042
+ type: 'apiKey'
2043
+ }],
2044
+ url: '/organization/v1/members',
2045
+ ...options
2046
+ });
1991
2047
  /**
1992
2048
  * List your organization's feedback
1993
2049
  *
@@ -6351,13 +6407,159 @@ export const cutUndeleteProject = (options) => (options.client ?? client).post({
6351
6407
  /**
6352
6408
  * Execute editing script
6353
6409
  *
6354
- * Edit the current timeline atomically using synchronous JavaScript source. Read state or timeline first, then pass its revision as expected_revision to detect concurrent changes. Use AddTrack, Insert, Update, Delete, Split, Trim, Move, RippleDeleteRange, UpdateTrack, DeleteTrack, SetSettings, AddCaptionsFromTranscript and SetMarker for writes; GetTimeline, GetItem, FindItems, GetMedia, GetTranscript and GetAnalysis read editing context; Print emits text and Preview requests frame previews. All script times are seconds; script object fields use camelCase, for example `media: {libraryId, assetId}`. Unlike Shotstack, execute applies script edits to a persistent project in one transaction. Provide script or a saved edit_id with literal edits, never both; failures roll back writes. A revision conflict while preparing the response may follow a committed edit: retrieve state before retrying. Minimal script after creating a project:
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);`
6411
+ *
6412
+ * <!-- cut-reference:start -->
6413
+ * ### Script function, field and error reference
6414
+ *
6415
+ * Every script function, clip field and error code has its own section, read one at a time:
6355
6416
  *
6356
- * ```js
6357
- * const t = AddTrack("video");
6358
- * Insert(t, {type: "color", color: "#123456", start: 0, length: 3});
6359
- * Print(t);
6360
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
+ * ```
6423
+ *
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
+ * - `DRAFT_RENDER_NOT_FOUND` — No such draft render.
6536
+ * - `VERSION_NOT_FOUND` — No saved version has this revision.
6537
+ * - `LIBRARY_NOT_FOUND` — The library is missing or invisible.
6538
+ * - `BINDING_INVALID` — The binding request is malformed.
6539
+ * - `BINDING_IN_USE` — Clips still use this library's assets.
6540
+ * - `NOTHING_TO_UNDO` — No earlier revision to return to.
6541
+ * - `NOTHING_TO_REDO` — No undone revision is waiting.
6542
+ * - `UNDO_CONFLICT` — The revision to undo is no longer head.
6543
+ * - `REVISION_CONFLICT` — The project moved; your revision is stale.
6544
+ * - `CUT_BUSY` — The project is busy; retry.
6545
+ * - `INVALID_CAPTION_FILE` — The subtitle file is malformed or too big.
6546
+ * - `SCRIPT_ERROR` — The script threw or did not parse.
6547
+ * - `SCRIPT_LIMIT` — An execute budget was exceeded.
6548
+ * - `OPS_REJECTED` — An op failed; the whole edit rolled back.
6549
+ * - `EDIT_EXPIRED` — The saved edit id is over ten minutes old.
6550
+ * - `MEDIA_OFFLINE` — The asset cannot be fetched right now.
6551
+ * - `MEDIA_UNAVAILABLE` — The asset is not usable for rendering.
6552
+ * - `MEDIA_IMPORT_FAILED` — Importing media failed.
6553
+ * - `FRAME_OUT_OF_RANGE` — The preview time is outside the project.
6554
+ * - `PROJECT_TOO_LARGE` — The project exceeds the size limit.
6555
+ * - `RESPONSE_TOO_LARGE` — The response would exceed its budget.
6556
+ * - `EXPORT_FAILED` — The render failed; read `error.cause`.
6557
+ * - `INVALID_PARAMS` — The request is malformed.
6558
+ * - `PERMISSION_DENIED` — This credential may not do that here.
6559
+ * - `NOT_IMPLEMENTED` — Not available on this platform yet.
6560
+ * - `INTERNAL` — Unexpected failure; retry with the request id.
6561
+ * <!-- cut-reference:end -->
6562
+ *
6361
6563
  */
6362
6564
  export const cutExecute = (options) => (options.client ?? client).post({
6363
6565
  security: [{
@@ -6415,7 +6617,7 @@ export const cutRetrieveTimeline = (options) => (options.client ?? client).get({
6415
6617
  /**
6416
6618
  * Render preview frames
6417
6619
  *
6418
- * Review the visual result at one or more project times without creating an export. Pass comma-separated seconds in at, such as 12,15.5; scale changes preview size and revision selects a committed project revision. Fetch the returned image URLs before expires_at; render again when they expire.
6620
+ * Review the visual result at one or more project times without creating an export. Pass comma-separated seconds in at, such as 12,15.5; scale changes preview size and revision selects a committed project revision. Request at most eight times. Each returned url is an inline PNG data URL (data:image/png;base64,...), not a hosted HTTP image link. The default scale is 0.25; use 0.5 for subtitle layout inspection (1080×1920 renders at 540×960). The maximum is 0.5; values above it return INVALID_PARAMS. Actual width and height are returned per frame. PNGs above 2 MiB or responses above 4 MiB return RESPONSE_TOO_LARGE without silently lowering resolution. The response always includes warnings; FRAME_UNAVAILABLE means a source preview could not be obtained and an offline tile was drawn. Its message identifies a timeout, delivery capacity limit, or unavailable source and contains no source URL. Decode each image's base64 payload to save it. Codemode returns at most four images per call, so request at most four times when reviewing there.
6419
6621
  */
6420
6622
  export const cutListFrames = (options) => (options.client ?? client).get({
6421
6623
  security: [{
@@ -6431,9 +6633,9 @@ export const cutListFrames = (options) => (options.client ?? client).get({
6431
6633
  ...options
6432
6634
  });
6433
6635
  /**
6434
- * Analyze project media
6636
+ * Analyze project media or measure the project mix
6435
6637
  *
6436
- * Request silence, filler-word or scene analysis for selected bound assets before editing. Omit media to select project sources; ranges returned in segments use source seconds. A pending result is not completion: use retry_after_sec before checking again, and inspect failed or unsupported asset results before deciding which edits are possible.
6638
+ * Request silence, filler-word or scene analysis for selected bound assets before editing, or measure the mix the timeline itself renders with kind mix. That kind is a render job, not a read: it answers pending with retry_after_sec and is polled by the id it returned, because the answer only exists once the audio has been rendered and measured. Omit media to select project sources; ranges returned in segments use source seconds. A pending result is not completion: use retry_after_sec before checking again, and inspect failed or unsupported asset results before deciding which edits are possible. Silence measures transcript-based speech pauses, not music or loudness. A completed transcript without words returns ready with empty segments and reason no_speech; no completed transcript returns unsupported with reason no_transcript. A failed transcription remains failed. kind mix is separate: it reports the project mix loudness, the loudness of each role and where music masks speech, so an editor can fix the mix rather than guess at it.
6437
6639
  */
6438
6640
  export const cutCreateAnalysis = (options) => (options.client ?? client).post({
6439
6641
  security: [{
@@ -6572,6 +6774,46 @@ export const cutCreateExport = (options) => (options.client ?? client).post({
6572
6774
  ...options.headers
6573
6775
  }
6574
6776
  });
6777
+ /**
6778
+ * Create draft range render
6779
+ *
6780
+ * 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.
6781
+ */
6782
+ export const cutCreateRender = (options) => (options.client ?? client).post({
6783
+ security: [{
6784
+ key: 'BearerAuth',
6785
+ scheme: 'bearer',
6786
+ type: 'http'
6787
+ }, {
6788
+ key: 'ApiKeyAuth',
6789
+ name: 'X-API-Key',
6790
+ type: 'apiKey'
6791
+ }],
6792
+ url: '/cut/v1/projects/{project_id}/renders',
6793
+ ...options,
6794
+ headers: {
6795
+ 'Content-Type': 'application/json',
6796
+ ...options.headers
6797
+ }
6798
+ });
6799
+ /**
6800
+ * Retrieve draft range render
6801
+ *
6802
+ * 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.
6803
+ */
6804
+ export const cutRetrieveRender = (options) => (options.client ?? client).get({
6805
+ security: [{
6806
+ key: 'BearerAuth',
6807
+ scheme: 'bearer',
6808
+ type: 'http'
6809
+ }, {
6810
+ key: 'ApiKeyAuth',
6811
+ name: 'X-API-Key',
6812
+ type: 'apiKey'
6813
+ }],
6814
+ url: '/cut/v1/renders/{render_id}',
6815
+ ...options
6816
+ });
6575
6817
  /**
6576
6818
  * Retrieve video export
6577
6819
  *
@@ -6995,95 +7237,101 @@ export const databaseInsert = (options) => (options.client ?? client).post({
6995
7237
  }
6996
7238
  });
6997
7239
  /**
6998
- * List knowledge bases
7240
+ * Read a commit's test catalog
6999
7241
  *
7000
- * Lists knowledge bases visible to the caller, newest first by default. Use last_id as after to read the next page; for example, ?limit=20.
7242
+ * 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.
7001
7243
  */
7002
- export const knowledgeListVectorStores = (options) => (options?.client ?? client).get({
7244
+ export const devopsTestCatalogGet = (options) => (options.client ?? client).get({
7003
7245
  security: [{
7004
- key: 'knowledge-bearerAuth',
7246
+ key: 'devops-bearerAuth',
7005
7247
  scheme: 'bearer',
7006
7248
  type: 'http'
7007
7249
  }],
7008
- url: '/knowledge/v1/vector_stores',
7250
+ url: '/devops/v1/projects/{project}/test-catalog',
7009
7251
  ...options
7010
7252
  });
7011
7253
  /**
7012
- * Create knowledge base
7254
+ * List test suites
7013
7255
  *
7014
- * Create a knowledge base, optionally starting ingestion of uploaded file_ids in the same call; no separate attachment or batch is needed for those files. Use the returned id with vectorStores.files.retrieve to poll each attachment until completed, failed or cancelled; store status=completed alone does not mean every file succeeded. Each file accepts up to 52428800 bytes and 5000000 estimated tokens; each account holds up to 100 active/nondeleted stores. Minimal body: {"name":"Refund policies"}.
7256
+ * 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.
7015
7257
  */
7016
- export const knowledgeCreateVectorStore = (options) => (options.client ?? client).post({
7258
+ export const devopsTestSuitesList = (options) => (options.client ?? client).get({
7017
7259
  security: [{
7018
- key: 'knowledge-bearerAuth',
7260
+ key: 'devops-bearerAuth',
7019
7261
  scheme: 'bearer',
7020
7262
  type: 'http'
7021
7263
  }],
7022
- url: '/knowledge/v1/vector_stores',
7023
- ...options,
7024
- headers: {
7025
- 'Content-Type': 'application/json',
7026
- ...options.headers
7027
- }
7264
+ url: '/devops/v1/projects/{project}/test-suites',
7265
+ ...options
7028
7266
  });
7029
7267
  /**
7030
- * Delete knowledge base
7268
+ * Retrieve a test suite
7031
7269
  *
7032
- * Remove a knowledge base from active use while keeping a recovery window. Unlike OpenAI vector stores, native DELETE returns the store with status=deleting and ISO purge_at, retains it for 7 days and is idempotent on repeat. Retrieve remains 200; object operations return 409. Use restore before purge_at to recover it, or purge to remove it irreversibly.
7270
+ * 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.
7033
7271
  */
7034
- export const knowledgeDeleteVectorStore = (options) => (options.client ?? client).delete({
7272
+ export const devopsTestSuitesGet = (options) => (options.client ?? client).get({
7035
7273
  security: [{
7036
- key: 'knowledge-bearerAuth',
7274
+ key: 'devops-bearerAuth',
7037
7275
  scheme: 'bearer',
7038
7276
  type: 'http'
7039
7277
  }],
7040
- url: '/knowledge/v1/vector_stores/{vector_store_id}',
7278
+ url: '/devops/v1/test-suites/{id}',
7041
7279
  ...options
7042
7280
  });
7043
7281
  /**
7044
- * Retrieve knowledge base
7282
+ * List test cases
7045
7283
  *
7046
- * Retrieves a knowledge base using an id returned by create or list. Add ?expand=files to include the first page of attached files. Soft-deleted stores remain readable with status=deleting until purged.
7284
+ * 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.
7047
7285
  */
7048
- export const knowledgeRetrieveVectorStore = (options) => (options.client ?? client).get({
7286
+ export const devopsTestCasesList = (options) => (options.client ?? client).get({
7049
7287
  security: [{
7050
- key: 'knowledge-bearerAuth',
7288
+ key: 'devops-bearerAuth',
7051
7289
  scheme: 'bearer',
7052
7290
  type: 'http'
7053
7291
  }],
7054
- url: '/knowledge/v1/vector_stores/{vector_store_id}',
7292
+ url: '/devops/v1/projects/{project}/test-cases',
7055
7293
  ...options
7056
7294
  });
7057
7295
  /**
7058
- * Update knowledge base
7296
+ * Retrieve a test case
7059
7297
  *
7060
- * Updates an active knowledge base using its returned id. Omitted fields stay unchanged; metadata replaces the whole map. Example body: {"name":"Refund policies"}.
7298
+ * 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.
7061
7299
  */
7062
- export const knowledgeUpdateVectorStore = (options) => (options.client ?? client).post({
7300
+ export const devopsTestCasesGet = (options) => (options.client ?? client).get({
7063
7301
  security: [{
7064
- key: 'knowledge-bearerAuth',
7302
+ key: 'devops-bearerAuth',
7065
7303
  scheme: 'bearer',
7066
7304
  type: 'http'
7067
7305
  }],
7068
- url: '/knowledge/v1/vector_stores/{vector_store_id}',
7069
- ...options,
7070
- headers: {
7071
- 'Content-Type': 'application/json',
7072
- ...options.headers
7073
- }
7306
+ url: '/devops/v1/test-cases/{id}',
7307
+ ...options
7074
7308
  });
7075
7309
  /**
7076
- * Search knowledge base
7310
+ * List test plans
7077
7311
  *
7078
- * Search ingested text to answer a question or find supporting passages. Native results contain one chunk each, so file_id can repeat; max_num_results counts chunks (1–50, default 10), while the compatible URL groups results by file. Unlike OpenAI vector stores, next_page is always null even when has_more is true. Only completed attachments are searchable. For keyword-only retrieval set ranking_options.hybrid_search to {"embedding_weight":0,"text_weight":1}; omit rewrite_query or set it to false to avoid query rewriting. Unlike OpenAI, ranker auto does not rerank; only default-2024-11-15 requests reranking. Set praxis.explain=true to inspect scores and use returned content[].chunk_id to retrieve a segment.
7312
+ * 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.
7079
7313
  */
7080
- export const knowledgeSearchVectorStore = (options) => (options.client ?? client).post({
7314
+ export const devopsTestPlansList = (options) => (options.client ?? client).get({
7081
7315
  security: [{
7082
- key: 'knowledge-bearerAuth',
7316
+ key: 'devops-bearerAuth',
7083
7317
  scheme: 'bearer',
7084
7318
  type: 'http'
7085
7319
  }],
7086
- url: '/knowledge/v1/vector_stores/{vector_store_id}/search',
7320
+ url: '/devops/v1/projects/{project}/test-plans',
7321
+ ...options
7322
+ });
7323
+ /**
7324
+ * Create a test plan
7325
+ *
7326
+ * 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.
7327
+ */
7328
+ export const devopsTestPlansCreate = (options) => (options.client ?? client).post({
7329
+ security: [{
7330
+ key: 'devops-bearerAuth',
7331
+ scheme: 'bearer',
7332
+ type: 'http'
7333
+ }],
7334
+ url: '/devops/v1/projects/{project}/test-plans',
7087
7335
  ...options,
7088
7336
  headers: {
7089
7337
  'Content-Type': 'application/json',
@@ -7091,31 +7339,45 @@ export const knowledgeSearchVectorStore = (options) => (options.client ?? client
7091
7339
  }
7092
7340
  });
7093
7341
  /**
7094
- * List files
7342
+ * Delete a test plan
7095
7343
  *
7096
- * Lists attached files and their ingestion status, newest attachment first by default. Use last_id as after to continue; ?filter=failed selects files that can be retried.
7344
+ * 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.
7097
7345
  */
7098
- export const knowledgeListFiles = (options) => (options.client ?? client).get({
7346
+ export const devopsTestPlansDelete = (options) => (options.client ?? client).delete({
7099
7347
  security: [{
7100
- key: 'knowledge-bearerAuth',
7348
+ key: 'devops-bearerAuth',
7101
7349
  scheme: 'bearer',
7102
7350
  type: 'http'
7103
7351
  }],
7104
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files',
7352
+ url: '/devops/v1/test-plans/{id}',
7105
7353
  ...options
7106
7354
  });
7107
7355
  /**
7108
- * Add file
7356
+ * Retrieve a test plan
7109
7357
  *
7110
- * Attach an uploaded File for asynchronous ingestion, then poll this attachment until status is completed, failed or cancelled before searching. Each file accepts up to 52428800 bytes and 5000000 estimated tokens; chunk sizes use estimated tokens rather than a model tokenizer. Text, Markdown, CSV, JSON, HTML, PDF, DOCX, PPTX, XLSX and PNG/JPEG/GIF/WebP images can be extracted; audio and video uploads are not knowledge documents. Images may yield generated descriptions rather than verbatim OCR. auto chunking resolves to static 800/400; explicit sizes are 100–4096 with overlap at most half the size. Each store holds at most 10000 attached files. Reattaching the same file returns its existing record without applying new attributes or chunking; inspect last_error after failure.
7358
+ * 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.
7111
7359
  */
7112
- export const knowledgeAttachFile = (options) => (options.client ?? client).post({
7360
+ export const devopsTestPlansGet = (options) => (options.client ?? client).get({
7113
7361
  security: [{
7114
- key: 'knowledge-bearerAuth',
7362
+ key: 'devops-bearerAuth',
7115
7363
  scheme: 'bearer',
7116
7364
  type: 'http'
7117
7365
  }],
7118
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files',
7366
+ url: '/devops/v1/test-plans/{id}',
7367
+ ...options
7368
+ });
7369
+ /**
7370
+ * Update a test plan
7371
+ *
7372
+ * 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.
7373
+ */
7374
+ export const devopsTestPlansUpdate = (options) => (options.client ?? client).patch({
7375
+ security: [{
7376
+ key: 'devops-bearerAuth',
7377
+ scheme: 'bearer',
7378
+ type: 'http'
7379
+ }],
7380
+ url: '/devops/v1/test-plans/{id}',
7119
7381
  ...options,
7120
7382
  headers: {
7121
7383
  'Content-Type': 'application/json',
@@ -7123,45 +7385,63 @@ export const knowledgeAttachFile = (options) => (options.client ?? client).post(
7123
7385
  }
7124
7386
  });
7125
7387
  /**
7126
- * Remove file
7388
+ * Pause a test plan
7127
7389
  *
7128
- * Removes the file from search immediately; does not delete the original File.
7390
+ * 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.
7129
7391
  */
7130
- export const knowledgeRemoveFile = (options) => (options.client ?? client).delete({
7392
+ export const devopsTestPlansPause = (options) => (options.client ?? client).post({
7131
7393
  security: [{
7132
- key: 'knowledge-bearerAuth',
7394
+ key: 'devops-bearerAuth',
7133
7395
  scheme: 'bearer',
7134
7396
  type: 'http'
7135
7397
  }],
7136
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}',
7398
+ url: '/devops/v1/test-plans/{id}:pause',
7399
+ ...options,
7400
+ headers: {
7401
+ 'Content-Type': 'application/json',
7402
+ ...options.headers
7403
+ }
7404
+ });
7405
+ /**
7406
+ * Resume a test plan
7407
+ *
7408
+ * 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.
7409
+ */
7410
+ export const devopsTestPlansResume = (options) => (options.client ?? client).post({
7411
+ security: [{
7412
+ key: 'devops-bearerAuth',
7413
+ scheme: 'bearer',
7414
+ type: 'http'
7415
+ }],
7416
+ url: '/devops/v1/test-plans/{id}:resume',
7137
7417
  ...options
7138
7418
  });
7139
7419
  /**
7140
- * Retrieve file
7420
+ * List test runs
7141
7421
  *
7142
- * Retrieves an attached file using the id returned by attachment or file listing. Poll this operation until status leaves in_progress to observe the ingestion outcome.
7422
+ * 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.
7143
7423
  */
7144
- export const knowledgeRetrieveFile = (options) => (options.client ?? client).get({
7424
+ export const devopsTestRunsList = (options) => (options.client ?? client).get({
7145
7425
  security: [{
7146
- key: 'knowledge-bearerAuth',
7426
+ key: 'devops-bearerAuth',
7147
7427
  scheme: 'bearer',
7148
7428
  type: 'http'
7149
7429
  }],
7150
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}',
7430
+ url: '/devops/v1/projects/{project}/test-runs',
7151
7431
  ...options
7152
7432
  });
7153
7433
  /**
7154
- * Update file attributes
7434
+ * Create a test run
7155
7435
  *
7156
- * Replaces search-filter attributes of an existing attachment without reingesting its content. Use an attached file id. Example body: {"attributes":{"category":"refund"}}; null clears the attributes.
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.
7157
7437
  */
7158
- export const knowledgeUpdateFile = (options) => (options.client ?? client).post({
7438
+ export const devopsTestRunsCreate = (options) => (options.client ?? client).post({
7159
7439
  security: [{
7160
- key: 'knowledge-bearerAuth',
7440
+ key: 'devops-bearerAuth',
7161
7441
  scheme: 'bearer',
7162
7442
  type: 'http'
7163
7443
  }],
7164
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}',
7444
+ url: '/devops/v1/projects/{project}/test-runs',
7165
7445
  ...options,
7166
7446
  headers: {
7167
7447
  'Content-Type': 'application/json',
@@ -7169,31 +7449,31 @@ export const knowledgeUpdateFile = (options) => (options.client ?? client).post(
7169
7449
  }
7170
7450
  });
7171
7451
  /**
7172
- * Read extracted content
7452
+ * Retrieve a test run
7173
7453
  *
7174
- * Extracted text chunks may overlap. Image content can be a generated description rather than verbatim OCR.
7454
+ * 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.
7175
7455
  */
7176
- export const knowledgeRetrieveFileContent = (options) => (options.client ?? client).get({
7456
+ export const devopsTestRunsGet = (options) => (options.client ?? client).get({
7177
7457
  security: [{
7178
- key: 'knowledge-bearerAuth',
7458
+ key: 'devops-bearerAuth',
7179
7459
  scheme: 'bearer',
7180
7460
  type: 'http'
7181
7461
  }],
7182
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}/content',
7462
+ url: '/devops/v1/test-runs/{id}',
7183
7463
  ...options
7184
7464
  });
7185
7465
  /**
7186
- * Create file batch
7466
+ * Cancel a test run
7187
7467
  *
7188
- * Attaches existing Files as a batch for asynchronous ingestion. Supply exactly one of file_ids or files; files allows per-file settings. Existing attachments are reused. Read the returned batch id to monitor status.
7468
+ * 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.
7189
7469
  */
7190
- export const knowledgeCreateFileBatch = (options) => (options.client ?? client).post({
7470
+ export const devopsTestRunsCancel = (options) => (options.client ?? client).post({
7191
7471
  security: [{
7192
- key: 'knowledge-bearerAuth',
7472
+ key: 'devops-bearerAuth',
7193
7473
  scheme: 'bearer',
7194
7474
  type: 'http'
7195
7475
  }],
7196
- url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches',
7476
+ url: '/devops/v1/test-runs/{id}:cancel',
7197
7477
  ...options,
7198
7478
  headers: {
7199
7479
  'Content-Type': 'application/json',
@@ -7201,119 +7481,371 @@ export const knowledgeCreateFileBatch = (options) => (options.client ?? client).
7201
7481
  }
7202
7482
  });
7203
7483
  /**
7204
- * Retrieve file batch
7484
+ * List a run's executions
7205
7485
  *
7206
- * Retrieves a batch created in this knowledge base, including current status and file counts. Use the batch id returned by batch creation to monitor ingestion.
7486
+ * 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.
7207
7487
  */
7208
- export const knowledgeRetrieveFileBatch = (options) => (options.client ?? client).get({
7488
+ export const devopsTestExecutionsList = (options) => (options.client ?? client).get({
7209
7489
  security: [{
7210
- key: 'knowledge-bearerAuth',
7490
+ key: 'devops-bearerAuth',
7211
7491
  scheme: 'bearer',
7212
7492
  type: 'http'
7213
7493
  }],
7214
- url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}',
7494
+ url: '/devops/v1/test-runs/{run}/executions',
7215
7495
  ...options
7216
7496
  });
7217
7497
  /**
7218
- * Cancel file batch
7498
+ * Retrieve one case's execution in a run
7219
7499
  *
7220
- * Cancels only in-progress batches and pending files. Completed, failed and cancelled batches return unchanged (200, idempotent).
7500
+ * 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.
7221
7501
  */
7222
- export const knowledgeCancelFileBatch = (options) => (options.client ?? client).post({
7502
+ export const devopsTestExecutionsGet = (options) => (options.client ?? client).get({
7223
7503
  security: [{
7224
- key: 'knowledge-bearerAuth',
7504
+ key: 'devops-bearerAuth',
7225
7505
  scheme: 'bearer',
7226
7506
  type: 'http'
7227
7507
  }],
7228
- url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel',
7508
+ url: '/devops/v1/test-runs/{run}/executions/{case}',
7229
7509
  ...options
7230
7510
  });
7231
7511
  /**
7232
- * List batch files
7512
+ * Upload an external test report
7233
7513
  *
7234
- * Lists files still attached from the identified batch, newest attachment first by default. Use the batch creation id and ?filter=failed to inspect failures; last_id is the next after cursor.
7514
+ * 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.
7235
7515
  */
7236
- export const knowledgeListBatchFiles = (options) => (options.client ?? client).get({
7516
+ export const devopsTestReportsUpload = (options) => (options.client ?? client).post({
7237
7517
  security: [{
7238
- key: 'knowledge-bearerAuth',
7518
+ key: 'devops-bearerAuth',
7239
7519
  scheme: 'bearer',
7240
7520
  type: 'http'
7241
7521
  }],
7242
- url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files',
7243
- ...options
7522
+ url: '/devops/v1/projects/{project}/test-reports',
7523
+ ...options,
7524
+ headers: {
7525
+ 'Content-Type': 'application/json',
7526
+ ...options.headers
7527
+ }
7244
7528
  });
7245
7529
  /**
7246
- * Restore knowledge base
7530
+ * List knowledge bases
7247
7531
  *
7248
- * Restores a deleting store within 7 days. Active stores return 409 VECTOR_STORE_INVALID_STATE; absent stores return 404. Empty body is allowed.
7532
+ * Lists knowledge bases visible to the caller, newest first by default. Use last_id as after to read the next page; for example, ?limit=20.
7249
7533
  */
7250
- export const knowledgeRestoreVectorStore = (options) => (options.client ?? client).post({
7534
+ export const knowledgeListVectorStores = (options) => (options?.client ?? client).get({
7251
7535
  security: [{
7252
7536
  key: 'knowledge-bearerAuth',
7253
7537
  scheme: 'bearer',
7254
7538
  type: 'http'
7255
7539
  }],
7256
- url: '/knowledge/v1/vector_stores/{vector_store_id}/restore',
7540
+ url: '/knowledge/v1/vector_stores',
7257
7541
  ...options
7258
7542
  });
7259
7543
  /**
7260
- * Permanently purge knowledge base
7544
+ * Create knowledge base
7261
7545
  *
7262
- * Immediately and irreversibly clears a deleting store using the retention cleanup path. Active stores return 409; absent stores return 404. Empty body is allowed.
7546
+ * Create a knowledge base, optionally starting ingestion of uploaded file_ids in the same call; no separate attachment or batch is needed for those files. Use the returned id with vectorStores.files.retrieve to poll each attachment until completed, failed or cancelled; store status=completed alone does not mean every file succeeded. PDF files accept up to 536870912 bytes (512 MiB), while other formats accept up to 52428800 bytes (50 MiB), constrained by Router conversion; every file is limited to 5000000 estimated tokens; each account holds up to 100 active/nondeleted stores. Minimal body: {"name":"Refund policies"}.
7263
7547
  */
7264
- export const knowledgePurgeVectorStore = (options) => (options.client ?? client).post({
7548
+ export const knowledgeCreateVectorStore = (options) => (options.client ?? client).post({
7265
7549
  security: [{
7266
7550
  key: 'knowledge-bearerAuth',
7267
7551
  scheme: 'bearer',
7268
7552
  type: 'http'
7269
7553
  }],
7270
- url: '/knowledge/v1/vector_stores/{vector_store_id}/purge',
7271
- ...options
7554
+ url: '/knowledge/v1/vector_stores',
7555
+ ...options,
7556
+ headers: {
7557
+ 'Content-Type': 'application/json',
7558
+ ...options.headers
7559
+ }
7272
7560
  });
7273
7561
  /**
7274
- * Retry failed file
7562
+ * Delete knowledge base
7275
7563
  *
7276
- * Retries only failed files; other states return 409 FILE_INVALID_STATE. Retry after failure has not yet been observed in the documented run.
7564
+ * Remove a knowledge base from active use while keeping a recovery window. Unlike OpenAI vector stores, native DELETE returns the store with status=deleting and ISO purge_at, retains it for 7 days and is idempotent on repeat. Retrieve remains 200; object operations return 409. Use restore before purge_at to recover it, or purge to remove it irreversibly.
7277
7565
  */
7278
- export const knowledgeRetryFile = (options) => (options.client ?? client).post({
7566
+ export const knowledgeDeleteVectorStore = (options) => (options.client ?? client).delete({
7279
7567
  security: [{
7280
7568
  key: 'knowledge-bearerAuth',
7281
7569
  scheme: 'bearer',
7282
7570
  type: 'http'
7283
7571
  }],
7284
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}/retry',
7572
+ url: '/knowledge/v1/vector_stores/{vector_store_id}',
7285
7573
  ...options
7286
7574
  });
7287
7575
  /**
7288
- * List file segments
7576
+ * Retrieve knowledge base
7289
7577
  *
7290
- * Lists the stored chunks of an attached file, ordered by increasing segment index by default. Use the attachment id and last_id as after to continue; returned chunk ids can be retrieved individually.
7578
+ * Retrieves a knowledge base using an id returned by create or list. Add ?expand=files to include the first page of attached files. Soft-deleted stores remain readable with status=deleting until purged.
7291
7579
  */
7292
- export const knowledgeListSegments = (options) => (options.client ?? client).get({
7580
+ export const knowledgeRetrieveVectorStore = (options) => (options.client ?? client).get({
7293
7581
  security: [{
7294
7582
  key: 'knowledge-bearerAuth',
7295
7583
  scheme: 'bearer',
7296
7584
  type: 'http'
7297
7585
  }],
7298
- url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}/segments',
7586
+ url: '/knowledge/v1/vector_stores/{vector_store_id}',
7299
7587
  ...options
7300
7588
  });
7301
7589
  /**
7302
- * Retrieve segment
7590
+ * Update knowledge base
7303
7591
  *
7304
- * Retrieves one chunk and its term statistics. Take chunk_id from segment listing or native search content; the chunk must belong to this knowledge base.
7592
+ * Updates an active knowledge base using its returned id. Omitted fields stay unchanged; metadata replaces the whole map. Example body: {"name":"Refund policies"}.
7305
7593
  */
7306
- export const knowledgeRetrieveSegment = (options) => (options.client ?? client).get({
7594
+ export const knowledgeUpdateVectorStore = (options) => (options.client ?? client).post({
7307
7595
  security: [{
7308
7596
  key: 'knowledge-bearerAuth',
7309
7597
  scheme: 'bearer',
7310
7598
  type: 'http'
7311
7599
  }],
7312
- url: '/knowledge/v1/vector_stores/{vector_store_id}/segments/{chunk_id}',
7313
- ...options
7314
- });
7315
- /**
7316
- * List events
7600
+ url: '/knowledge/v1/vector_stores/{vector_store_id}',
7601
+ ...options,
7602
+ headers: {
7603
+ 'Content-Type': 'application/json',
7604
+ ...options.headers
7605
+ }
7606
+ });
7607
+ /**
7608
+ * Search knowledge base
7609
+ *
7610
+ * Search ingested text to answer a question or find supporting passages. Native results contain one chunk each, so file_id can repeat; max_num_results counts chunks (1–50, default 10), while the compatible URL groups results by file. Unlike OpenAI vector stores, next_page is always null even when has_more is true. Only completed attachments are searchable. For keyword-only retrieval set ranking_options.hybrid_search to {"embedding_weight":0,"text_weight":1}; omit rewrite_query or set it to false to avoid query rewriting. Unlike OpenAI, ranker auto does not rerank; only default-2024-11-15 requests reranking. Set praxis.explain=true to inspect scores and use returned content[].chunk_id to retrieve a segment.
7611
+ */
7612
+ export const knowledgeSearchVectorStore = (options) => (options.client ?? client).post({
7613
+ security: [{
7614
+ key: 'knowledge-bearerAuth',
7615
+ scheme: 'bearer',
7616
+ type: 'http'
7617
+ }],
7618
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/search',
7619
+ ...options,
7620
+ headers: {
7621
+ 'Content-Type': 'application/json',
7622
+ ...options.headers
7623
+ }
7624
+ });
7625
+ /**
7626
+ * List files
7627
+ *
7628
+ * Lists attached files and their ingestion status, newest attachment first by default. Use last_id as after to continue; ?filter=failed selects files that can be retried.
7629
+ */
7630
+ export const knowledgeListFiles = (options) => (options.client ?? client).get({
7631
+ security: [{
7632
+ key: 'knowledge-bearerAuth',
7633
+ scheme: 'bearer',
7634
+ type: 'http'
7635
+ }],
7636
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files',
7637
+ ...options
7638
+ });
7639
+ /**
7640
+ * Add file
7641
+ *
7642
+ * Attach an uploaded File for asynchronous ingestion, then poll this attachment until status is completed, failed or cancelled before searching. PDF files accept up to 536870912 bytes (512 MiB), while other formats accept up to 52428800 bytes (50 MiB), constrained by Router conversion; every file is limited to 5000000 estimated tokens; chunk sizes use estimated tokens rather than a model tokenizer. Text, Markdown, CSV, JSON, HTML, PDF, DOCX, PPTX, XLSX and PNG/JPEG/GIF/WebP images can be extracted; audio and video uploads are not knowledge documents. Images may yield generated descriptions rather than verbatim OCR. auto chunking resolves to static 800/400; explicit sizes are 100–4096 with overlap at most half the size. Each store holds at most 10000 attached files. Reattaching the same file returns its existing record without applying new attributes or chunking; inspect last_error after failure.
7643
+ */
7644
+ export const knowledgeAttachFile = (options) => (options.client ?? client).post({
7645
+ security: [{
7646
+ key: 'knowledge-bearerAuth',
7647
+ scheme: 'bearer',
7648
+ type: 'http'
7649
+ }],
7650
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files',
7651
+ ...options,
7652
+ headers: {
7653
+ 'Content-Type': 'application/json',
7654
+ ...options.headers
7655
+ }
7656
+ });
7657
+ /**
7658
+ * Remove file
7659
+ *
7660
+ * Removes the file from search immediately; does not delete the original File.
7661
+ */
7662
+ export const knowledgeRemoveFile = (options) => (options.client ?? client).delete({
7663
+ security: [{
7664
+ key: 'knowledge-bearerAuth',
7665
+ scheme: 'bearer',
7666
+ type: 'http'
7667
+ }],
7668
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}',
7669
+ ...options
7670
+ });
7671
+ /**
7672
+ * Retrieve file
7673
+ *
7674
+ * Retrieves an attached file using the id returned by attachment or file listing. Poll this operation until status leaves in_progress to observe the ingestion outcome.
7675
+ */
7676
+ export const knowledgeRetrieveFile = (options) => (options.client ?? client).get({
7677
+ security: [{
7678
+ key: 'knowledge-bearerAuth',
7679
+ scheme: 'bearer',
7680
+ type: 'http'
7681
+ }],
7682
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}',
7683
+ ...options
7684
+ });
7685
+ /**
7686
+ * Update file attributes
7687
+ *
7688
+ * Replaces search-filter attributes of an existing attachment without reingesting its content. Use an attached file id. Example body: {"attributes":{"category":"refund"}}; null clears the attributes.
7689
+ */
7690
+ export const knowledgeUpdateFile = (options) => (options.client ?? client).post({
7691
+ security: [{
7692
+ key: 'knowledge-bearerAuth',
7693
+ scheme: 'bearer',
7694
+ type: 'http'
7695
+ }],
7696
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}',
7697
+ ...options,
7698
+ headers: {
7699
+ 'Content-Type': 'application/json',
7700
+ ...options.headers
7701
+ }
7702
+ });
7703
+ /**
7704
+ * Read extracted content
7705
+ *
7706
+ * Extracted text chunks may overlap. Image content can be a generated description rather than verbatim OCR.
7707
+ */
7708
+ export const knowledgeRetrieveFileContent = (options) => (options.client ?? client).get({
7709
+ security: [{
7710
+ key: 'knowledge-bearerAuth',
7711
+ scheme: 'bearer',
7712
+ type: 'http'
7713
+ }],
7714
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}/content',
7715
+ ...options
7716
+ });
7717
+ /**
7718
+ * Create file batch
7719
+ *
7720
+ * Attaches existing Files as a batch for asynchronous ingestion. Supply exactly one of file_ids or files; files allows per-file settings. Existing attachments are reused. Read the returned batch id to monitor status.
7721
+ */
7722
+ export const knowledgeCreateFileBatch = (options) => (options.client ?? client).post({
7723
+ security: [{
7724
+ key: 'knowledge-bearerAuth',
7725
+ scheme: 'bearer',
7726
+ type: 'http'
7727
+ }],
7728
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches',
7729
+ ...options,
7730
+ headers: {
7731
+ 'Content-Type': 'application/json',
7732
+ ...options.headers
7733
+ }
7734
+ });
7735
+ /**
7736
+ * Retrieve file batch
7737
+ *
7738
+ * Retrieves a batch created in this knowledge base, including current status and file counts. Use the batch id returned by batch creation to monitor ingestion.
7739
+ */
7740
+ export const knowledgeRetrieveFileBatch = (options) => (options.client ?? client).get({
7741
+ security: [{
7742
+ key: 'knowledge-bearerAuth',
7743
+ scheme: 'bearer',
7744
+ type: 'http'
7745
+ }],
7746
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}',
7747
+ ...options
7748
+ });
7749
+ /**
7750
+ * Cancel file batch
7751
+ *
7752
+ * Cancels only in-progress batches and pending files. Completed, failed and cancelled batches return unchanged (200, idempotent).
7753
+ */
7754
+ export const knowledgeCancelFileBatch = (options) => (options.client ?? client).post({
7755
+ security: [{
7756
+ key: 'knowledge-bearerAuth',
7757
+ scheme: 'bearer',
7758
+ type: 'http'
7759
+ }],
7760
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/cancel',
7761
+ ...options
7762
+ });
7763
+ /**
7764
+ * List batch files
7765
+ *
7766
+ * Lists files still attached from the identified batch, newest attachment first by default. Use the batch creation id and ?filter=failed to inspect failures; last_id is the next after cursor.
7767
+ */
7768
+ export const knowledgeListBatchFiles = (options) => (options.client ?? client).get({
7769
+ security: [{
7770
+ key: 'knowledge-bearerAuth',
7771
+ scheme: 'bearer',
7772
+ type: 'http'
7773
+ }],
7774
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/file_batches/{batch_id}/files',
7775
+ ...options
7776
+ });
7777
+ /**
7778
+ * Restore knowledge base
7779
+ *
7780
+ * Restores a deleting store within 7 days. Active stores return 409 VECTOR_STORE_INVALID_STATE; absent stores return 404. Empty body is allowed.
7781
+ */
7782
+ export const knowledgeRestoreVectorStore = (options) => (options.client ?? client).post({
7783
+ security: [{
7784
+ key: 'knowledge-bearerAuth',
7785
+ scheme: 'bearer',
7786
+ type: 'http'
7787
+ }],
7788
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/restore',
7789
+ ...options
7790
+ });
7791
+ /**
7792
+ * Permanently purge knowledge base
7793
+ *
7794
+ * Immediately and irreversibly clears a deleting store using the retention cleanup path. Active stores return 409; absent stores return 404. Empty body is allowed.
7795
+ */
7796
+ export const knowledgePurgeVectorStore = (options) => (options.client ?? client).post({
7797
+ security: [{
7798
+ key: 'knowledge-bearerAuth',
7799
+ scheme: 'bearer',
7800
+ type: 'http'
7801
+ }],
7802
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/purge',
7803
+ ...options
7804
+ });
7805
+ /**
7806
+ * Retry failed file
7807
+ *
7808
+ * Retries only failed files; other states return 409 FILE_INVALID_STATE. Retry after failure has not yet been observed in the documented run.
7809
+ */
7810
+ export const knowledgeRetryFile = (options) => (options.client ?? client).post({
7811
+ security: [{
7812
+ key: 'knowledge-bearerAuth',
7813
+ scheme: 'bearer',
7814
+ type: 'http'
7815
+ }],
7816
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}/retry',
7817
+ ...options
7818
+ });
7819
+ /**
7820
+ * List file segments
7821
+ *
7822
+ * Lists the stored chunks of an attached file, ordered by increasing segment index by default. Use the attachment id and last_id as after to continue; returned chunk ids can be retrieved individually.
7823
+ */
7824
+ export const knowledgeListSegments = (options) => (options.client ?? client).get({
7825
+ security: [{
7826
+ key: 'knowledge-bearerAuth',
7827
+ scheme: 'bearer',
7828
+ type: 'http'
7829
+ }],
7830
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/files/{file_id}/segments',
7831
+ ...options
7832
+ });
7833
+ /**
7834
+ * Retrieve segment
7835
+ *
7836
+ * Retrieves one chunk and its term statistics. Take chunk_id from segment listing or native search content; the chunk must belong to this knowledge base.
7837
+ */
7838
+ export const knowledgeRetrieveSegment = (options) => (options.client ?? client).get({
7839
+ security: [{
7840
+ key: 'knowledge-bearerAuth',
7841
+ scheme: 'bearer',
7842
+ type: 'http'
7843
+ }],
7844
+ url: '/knowledge/v1/vector_stores/{vector_store_id}/segments/{chunk_id}',
7845
+ ...options
7846
+ });
7847
+ /**
7848
+ * List events
7317
7849
  *
7318
7850
  * Reads events for this knowledge base in increasing sequence order, including while soft-deleted. Pass next_seq as after_seq to continue; null next_seq marks the current end. Example: ?after_seq=0&limit=20.
7319
7851
  */
@@ -7329,7 +7861,7 @@ export const knowledgeListEvents = (options) => (options.client ?? client).get({
7329
7861
  /**
7330
7862
  * List libraries
7331
7863
  *
7332
- * List libraries owned by the caller, newest first. By default, deleting and deleted libraries are excluded; use status=deleting to find libraries awaiting purge. All supplied label pairs must match.
7864
+ * Read a caller-owned library’s current settings, usage and lifecycle status. A deleting library remains readable; missing, foreign or purged libraries return LIBRARY_NOT_FOUND.
7333
7865
  */
7334
7866
  export const mediaListLibraries = (options) => (options?.client ?? client).get({
7335
7867
  security: [{
@@ -7358,10 +7890,28 @@ export const mediaCreateLibrary = (options) => (options.client ?? client).post({
7358
7890
  ...options.headers
7359
7891
  }
7360
7892
  });
7893
+ /**
7894
+ * Create frame URLs
7895
+ *
7896
+ * Media creates JPEG frame URLs for inspecting one or more moments in a video without downloading the original. Obtain library_id from libraries and asset_id plus duration from assets. Send 1–20 integer microsecond timestamps strictly below duration, for example {"at_micros":[0,1000000],"width":640}. Only video assets are supported; audio and images return INVALID_PARAMS. Width defaults to 640 and accepts 160, 320 or 640. This read operation does not store a new asset or rerun understanding. Fetch each returned URL to obtain the frame; delivery usage follows media pricing. Authenticated links expire after 300 seconds; upload links remain public and permanent. Reissue expired links. Foreign libraries and assets return 404 without revealing their existence.
7897
+ */
7898
+ export const mediaCreateFrameUrls = (options) => (options.client ?? client).post({
7899
+ security: [{
7900
+ key: 'media-BearerAuth',
7901
+ scheme: 'bearer',
7902
+ type: 'http'
7903
+ }],
7904
+ url: '/media/v1/libraries/{library_id}/assets/{asset_id}/frames',
7905
+ ...options,
7906
+ headers: {
7907
+ 'Content-Type': 'application/json',
7908
+ ...options.headers
7909
+ }
7910
+ });
7361
7911
  /**
7362
7912
  * Delete library
7363
7913
  *
7364
- * Soft-delete an active library, returning its deleting status and purge_at deadline. Asset operations and delivery become unavailable; the library can be restored before purge_at. Repeated deletion while deleting returns the current library.
7914
+ * Restore a deleting library before its purge_at deadline. The library becomes active again and deleted_at and purge_at are cleared; expired or non-deleting libraries cannot be restored.
7365
7915
  */
7366
7916
  export const mediaDeleteLibrary = (options) => (options.client ?? client).delete({
7367
7917
  security: [{
@@ -7375,7 +7925,7 @@ export const mediaDeleteLibrary = (options) => (options.client ?? client).delete
7375
7925
  /**
7376
7926
  * Get library
7377
7927
  *
7378
- * Read a caller-owned library’s current settings, usage and lifecycle status. A deleting library remains readable; missing, foreign or purged libraries return LIBRARY_NOT_FOUND.
7928
+ * Update an active library’s supplied settings. Labels replace the complete map; understanding settings and model roles merge with current values. Changing the embedding model is rejected while assets exist.
7379
7929
  */
7380
7930
  export const mediaGetLibrary = (options) => (options.client ?? client).get({
7381
7931
  security: [{
@@ -7389,7 +7939,7 @@ export const mediaGetLibrary = (options) => (options.client ?? client).get({
7389
7939
  /**
7390
7940
  * Update library
7391
7941
  *
7392
- * Update an active library’s supplied settings. Labels replace the complete map; understanding settings and model roles merge with current values. Changing the embedding model is rejected while assets exist.
7942
+ * Update an active library. Set hotwords for spelling evidence in subsequent transcripts; [] disables inferred vocabulary. Transcript understanding calls the timestamped ASR, optional reference ASR and correction model through the existing metered model path. Reprocess assets to apply new settings to existing transcripts.
7393
7943
  */
7394
7944
  export const mediaUpdateLibrary = (options) => (options.client ?? client).patch({
7395
7945
  security: [{
@@ -7407,7 +7957,7 @@ export const mediaUpdateLibrary = (options) => (options.client ?? client).patch(
7407
7957
  /**
7408
7958
  * Restore library
7409
7959
  *
7410
- * Restore a deleting library before its purge_at deadline. The library becomes active again and deleted_at and purge_at are cleared; expired or non-deleting libraries cannot be restored.
7960
+ * Permanently remove a library that is already deleting, without waiting for purge_at. Its assets and related resources are removed and cannot be restored; first soft-delete an active library.
7411
7961
  */
7412
7962
  export const mediaRestoreLibrary = (options) => (options.client ?? client).post({
7413
7963
  security: [{
@@ -7421,7 +7971,7 @@ export const mediaRestoreLibrary = (options) => (options.client ?? client).post(
7421
7971
  /**
7422
7972
  * Purge library
7423
7973
  *
7424
- * Permanently remove a library that is already deleting, without waiting for purge_at. Its assets and related resources are removed and cannot be restored; first soft-delete an active library.
7974
+ * List assets in an active library, newest first, optionally filtering by exact folder and stored resource type. Continue using next_cursor; video includes audio-only assets.
7425
7975
  */
7426
7976
  export const mediaPurgeLibrary = (options) => (options.client ?? client).post({
7427
7977
  security: [{
@@ -7435,7 +7985,7 @@ export const mediaPurgeLibrary = (options) => (options.client ?? client).post({
7435
7985
  /**
7436
7986
  * List assets
7437
7987
  *
7438
- * List assets in an active library, newest first, optionally filtering by exact folder and stored resource type. Continue using next_cursor; video includes audio-only assets.
7988
+ * Upload content into an active library and return a Cloudinary-compatible resource. Use file for a multipart file, data URI, public HTTPS URL or same-owner file identifier. Reusing public_id overwrites by default; overwrite=false returns the existing resource. Chunk uploads require both chunk headers.
7439
7989
  */
7440
7990
  export const mediaListAssets = (options) => (options.client ?? client).get({
7441
7991
  security: [{
@@ -7449,7 +7999,7 @@ export const mediaListAssets = (options) => (options.client ?? client).get({
7449
7999
  /**
7450
8000
  * Upload asset
7451
8001
  *
7452
- * Upload content into an active library and return a Cloudinary-compatible resource. Use file for a multipart file, data URI, public HTTPS URL or same-owner file identifier. Reusing public_id overwrites by default; overwrite=false returns the existing resource. Chunk uploads require both chunk headers.
8002
+ * 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.
7453
8003
  */
7454
8004
  export const mediaUploadAsset = (options) => (options.client ?? client).post({
7455
8005
  security: [{
@@ -7467,7 +8017,7 @@ export const mediaUploadAsset = (options) => (options.client ?? client).post({
7467
8017
  /**
7468
8018
  * Import file
7469
8019
  *
7470
- * Copy source content into an active library using upload options and return the full native Asset. The imported asset is independent of the source after copying. Reusing public_id follows overwrite semantics.
8020
+ * 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.
7471
8021
  */
7472
8022
  export const mediaImportAsset = (options) => (options.client ?? client).post({
7473
8023
  security: [{
@@ -7485,7 +8035,7 @@ export const mediaImportAsset = (options) => (options.client ?? client).post({
7485
8035
  /**
7486
8036
  * Delete asset
7487
8037
  *
7488
- * Delete an asset from the library so it is no longer readable, searchable or deliverable. This removes the asset rather than placing it in the library’s restoration window; a missing asset returns ASSET_NOT_FOUND.
8038
+ * Queue reprocessing of the asset’s current version and return its updated state immediately. Omit kinds to retry failed tasks and legacy source-size unsupported tasks; explicit kinds rerun applicable completed tasks and recoverable source-size unsupported tasks. Other unsupported causes remain unchanged. Replaced understandings become superseded, and processing finishes asynchronously.
7489
8039
  */
7490
8040
  export const mediaDeleteAsset = (options) => (options.client ?? client).delete({
7491
8041
  security: [{
@@ -7499,7 +8049,7 @@ export const mediaDeleteAsset = (options) => (options.client ?? client).delete({
7499
8049
  /**
7500
8050
  * Get asset
7501
8051
  *
7502
- * Read a non-deleted asset by its asset_id in an active library, including content hashes, processing progress and available previews. Missing or deleted assets return ASSET_NOT_FOUND.
8052
+ * Update an asset’s supplied metadata fields. Tags and context replace their current collections; an empty collection clears them. Moving asset_folder or changing display_name preserves public_id and delivery URLs.
7503
8053
  */
7504
8054
  export const mediaGetAsset = (options) => (options.client ?? client).get({
7505
8055
  security: [{
@@ -7513,7 +8063,7 @@ export const mediaGetAsset = (options) => (options.client ?? client).get({
7513
8063
  /**
7514
8064
  * Update asset
7515
8065
  *
7516
- * Update an asset’s supplied metadata fields. Tags and context replace their current collections; an empty collection clears them. Moving asset_folder or changing display_name preserves public_id and delivery URLs.
8066
+ * Delete an asset from the library so it is no longer readable, searchable or deliverable. This removes the asset rather than placing it in the library’s restoration window; a missing asset returns ASSET_NOT_FOUND.
7517
8067
  */
7518
8068
  export const mediaUpdateAsset = (options) => (options.client ?? client).patch({
7519
8069
  security: [{
@@ -7531,7 +8081,7 @@ export const mediaUpdateAsset = (options) => (options.client ?? client).patch({
7531
8081
  /**
7532
8082
  * Reprocess asset
7533
8083
  *
7534
- * Queue reprocessing of the asset’s current version and return its updated state immediately. Omit kinds to retry failed tasks; explicit kinds rerun applicable completed tasks. Replaced understandings become superseded, and processing finishes asynchronously.
8084
+ * 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.
7535
8085
  */
7536
8086
  export const mediaReprocessAsset = (options) => (options.client ?? client).post({
7537
8087
  security: [{
@@ -7549,7 +8099,7 @@ export const mediaReprocessAsset = (options) => (options.client ?? client).post(
7549
8099
  /**
7550
8100
  * List understandings
7551
8101
  *
7552
- * List an asset’s understanding results in creation order. By default only current, non-superseded results are returned; use include_superseded=true for history or kind to select an output type.
8102
+ * List understanding results for an asset, ordered by creation time. Use the cursor to continue; include_superseded also returns replaced records. The optional shots array contains current-version shot boundaries and per-shot captions, scene, location guesses, visible text and confidence flags; it is absent on legacy records. Location guesses and folder mismatch are unverified hints. Correction-enabled transcripts expose text_original, corrected text and a correction audit. Their timed data array remains suitable for subtitles. Reference failure is marked missing; correction failure returns the original verbatim. Model inference uses the existing metered model path.
7553
8103
  */
7554
8104
  export const mediaListUnderstandings = (options) => (options.client ?? client).get({
7555
8105
  security: [{
@@ -7563,7 +8113,7 @@ export const mediaListUnderstandings = (options) => (options.client ?? client).g
7563
8113
  /**
7564
8114
  * Expression search
7565
8115
  *
7566
- * Search active assets using the supported filter-expression syntax, sorting and cursor pagination. Empty expression matches all assets. Tags and context require with_field; inspect the exactness flags before treating counts as complete.
8116
+ * Find visually similar assets using exactly one of asset_id or an inline base64 image. The library must support image search; an asset query needs a current image embedding and excludes that source asset from results.
7567
8117
  */
7568
8118
  export const mediaExpressionSearch = (options) => (options.client ?? client).post({
7569
8119
  security: [{
@@ -7581,7 +8131,7 @@ export const mediaExpressionSearch = (options) => (options.client ?? client).pos
7581
8131
  /**
7582
8132
  * Visual search
7583
8133
  *
7584
- * Find visually similar assets using exactly one of asset_id or an inline base64 image. The library must support image search; an asset query needs a current image embedding and excludes that source asset from results.
8134
+ * Search assets with a nonblank text query and optional expression filter. Hybrid mode combines semantic and keyword matches; semantic mode uses vector similarity only. Results are ranked and limited by top_k.
7585
8135
  */
7586
8136
  export const mediaVisualSearch = (options) => (options.client ?? client).post({
7587
8137
  security: [{
@@ -7599,7 +8149,7 @@ export const mediaVisualSearch = (options) => (options.client ?? client).post({
7599
8149
  /**
7600
8150
  * Semantic search
7601
8151
  *
7602
- * Search assets with a nonblank text query and optional expression filter. Hybrid mode combines semantic and keyword matches; semantic mode uses vector similarity only. Results are ranked and limited by top_k.
8152
+ * Alias of semantic search. Search assets with a nonblank text query, optional expression filter and top_k; hybrid combines semantic and keyword matches, while semantic uses vector similarity only.
7603
8153
  */
7604
8154
  export const mediaSemanticSearch = (options) => (options.client ?? client).post({
7605
8155
  security: [{
@@ -7617,7 +8167,7 @@ export const mediaSemanticSearch = (options) => (options.client ?? client).post(
7617
8167
  /**
7618
8168
  * Semantic search alias
7619
8169
  *
7620
- * Alias of semantic search. Search assets with a nonblank text query, optional expression filter and top_k; hybrid combines semantic and keyword matches, while semantic uses vector similarity only.
8170
+ * List all immediate child folders under parent, or under the root when parent is omitted. Counts include descendant assets. The result is unpaginated; limit and cursor are rejected.
7621
8171
  */
7622
8172
  export const mediaSearch = (options) => (options.client ?? client).post({
7623
8173
  security: [{
@@ -7635,7 +8185,7 @@ export const mediaSearch = (options) => (options.client ?? client).post({
7635
8185
  /**
7636
8186
  * List folders
7637
8187
  *
7638
- * List all immediate child folders under parent, or under the root when parent is omitted. Counts include descendant assets. The result is unpaginated; limit and cursor are rejected.
8188
+ * undefined understood_count includes ready and partial assets; failed_count includes failed assets. Both accumulate descendants. counts_complete is false during historical backfill.
7639
8189
  */
7640
8190
  export const mediaListFolders = (options) => (options.client ?? client).get({
7641
8191
  security: [{
@@ -7649,7 +8199,7 @@ export const mediaListFolders = (options) => (options.client ?? client).get({
7649
8199
  /**
7650
8200
  * Create batch
7651
8201
  *
7652
- * Create an asynchronous batch for tagging, untagging, replacing context, moving or deleting assets. Select ids or an expression; selection is frozen at creation. Poll the returned job id for completion and per-item failures.
8202
+ * 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.
7653
8203
  */
7654
8204
  export const mediaCreateBatch = (options) => (options.client ?? client).post({
7655
8205
  security: [{
@@ -7667,7 +8217,7 @@ export const mediaCreateBatch = (options) => (options.client ?? client).post({
7667
8217
  /**
7668
8218
  * Get batch
7669
8219
  *
7670
- * Read a batch job’s status, successful and failed item counts, and a bounded list of failed items. Use the id returned by batch creation; a job outside this library is not found.
8220
+ * Alias of batch creation. Apply one metadata or deletion action to ids or a frozen expression selection asynchronously; poll the returned job id to inspect completion and item failures.
7671
8221
  */
7672
8222
  export const mediaGetBatch = (options) => (options.client ?? client).get({
7673
8223
  security: [{
@@ -7681,7 +8231,7 @@ export const mediaGetBatch = (options) => (options.client ?? client).get({
7681
8231
  /**
7682
8232
  * Batch assets alias
7683
8233
  *
7684
- * Alias of batch creation. Apply one metadata or deletion action to ids or a frozen expression selection asynchronously; poll the returned job id to inspect completion and item failures.
8234
+ * 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.
7685
8235
  */
7686
8236
  export const mediaBatchAssets = (options) => (options.client ?? client).post({
7687
8237
  security: [{
@@ -7697,9 +8247,9 @@ export const mediaBatchAssets = (options) => (options.client ?? client).post({
7697
8247
  }
7698
8248
  });
7699
8249
  /**
7700
- * Get job alias
8250
+ * Get job
7701
8251
  *
7702
- * Alias of batch retrieval. Read the job returned by a batch request, including terminal status, successful and failed counts, and individual failure codes.
8252
+ * Read the current batch or video-generation Job status and progress. For generation, inspect outputs and failures, then save successful candidates before their preview and save window expires after 7 days.
7703
8253
  */
7704
8254
  export const mediaGetJob = (options) => (options.client ?? client).get({
7705
8255
  security: [{
@@ -7713,7 +8263,7 @@ export const mediaGetJob = (options) => (options.client ?? client).get({
7713
8263
  /**
7714
8264
  * List events
7715
8265
  *
7716
- * Read library events in sequence order, including while the library is deleting. Page forward with asc and after_seq, or backward with desc and before_seq; never combine the two sequence cursors.
8266
+ * Read library events in sequence order for observing asset writes and understanding progress. Obtain library_id from creation or listing; continue with after_seq for asc or before_seq for desc, without combining both. Use next_cursor when supplied. Reads do not start or retry understanding.
7717
8267
  */
7718
8268
  export const mediaListEvents = (options) => (options.client ?? client).get({
7719
8269
  security: [{
@@ -7727,7 +8277,7 @@ export const mediaListEvents = (options) => (options.client ?? client).get({
7727
8277
  /**
7728
8278
  * Create delivery token
7729
8279
  *
7730
- * Issue a time-limited bearer token for originals and transformed authenticated assets in an active library. Use library_id from library creation or listing; read access is sufficient. Append token as the __cld_token__ query parameter on a matching delivery URL. The default ACL covers this library and the default lifetime is 3600 seconds; narrow acl and expires_in before sharing. Anyone holding the token can read matching paths until expires_at.
8280
+ * Issue a time-limited bearer token for originals and transformed authenticated assets in an active library. Use library_id from library creation or listing; read access is sufficient. Append token as the __cld_token__ query parameter on a matching delivery URL. The default ACL covers this library and the default lifetime is 900 seconds; narrow acl and expires_in before sharing. Anyone holding the token can read matching paths until expires_at.
7731
8281
  */
7732
8282
  export const mediaCreateDeliveryToken = (options) => (options.client ?? client).post({
7733
8283
  security: [{
@@ -7742,6 +8292,340 @@ export const mediaCreateDeliveryToken = (options) => (options.client ?? client).
7742
8292
  ...options.headers
7743
8293
  }
7744
8294
  });
8295
+ /**
8296
+ * Summarize understanding failures
8297
+ *
8298
+ * Inspect current understanding failures before retrying. Use library_id from library creation or listing. Groups include code, output kind, actual producer model, retryability and up to five sample asset IDs. At most 1024 detailed groups plus two overflow groups are returned; overflow groups separate retryable and unrecoverable entries and mark overflow=true. Unknown failure codes remain retryable. Historical counts are provisional while counts_complete is false. Example: GET /media/v1/libraries/lib_example/understandings/failure_summary.
8299
+ */
8300
+ export const mediaUnderstandingFailureSummary = (options) => (options.client ?? client).get({
8301
+ security: [{
8302
+ key: 'media-BearerAuth',
8303
+ scheme: 'bearer',
8304
+ type: 'http'
8305
+ }],
8306
+ url: '/media/v1/libraries/{library_id}/understandings/failure_summary',
8307
+ ...options
8308
+ });
8309
+ /**
8310
+ * List understanding results across a library
8311
+ *
8312
+ * Read current understanding entries across one library without fetching every asset separately. Use library_id from creation or listing. folder includes descendants; kinds is a comma-separated list of output kinds. Entries are ordered by asset_id and then understanding id. Continue with next_cursor and the same folder and kinds; limit defaults to 100 and cannot exceed 100. Superseded, deleted and old-version entries are excluded. During historical backfill, this method returns 503 CAPACITY rather than incomplete pages; poll failureSummary until counts_complete is true, then start pagination. Example: GET /media/v1/libraries/lib_example/understandings?folder=travel&kinds=caption,transcript&limit=100.
8313
+ */
8314
+ export const mediaListUnderstandingsByLibrary = (options) => (options.client ?? client).get({
8315
+ security: [{
8316
+ key: 'media-BearerAuth',
8317
+ scheme: 'bearer',
8318
+ type: 'http'
8319
+ }],
8320
+ url: '/media/v1/libraries/{library_id}/understandings',
8321
+ ...options
8322
+ });
8323
+ /**
8324
+ * Create video generation
8325
+ *
8326
+ * Create a video.generate job. Generation is charged per second. The response is 202 with a queued Job; poll GET /media/v1/libraries/{library_id}/jobs/{job_id} until terminal, then save successful outputs. Unsaved candidate Files expire after 7 days.
8327
+ */
8328
+ export const mediaCreateGeneration = (options) => (options.client ?? client).post({
8329
+ security: [{
8330
+ key: 'media-BearerAuth',
8331
+ scheme: 'bearer',
8332
+ type: 'http'
8333
+ }],
8334
+ url: '/media/v1/libraries/{library_id}/generations',
8335
+ ...options,
8336
+ headers: {
8337
+ 'Content-Type': 'application/json',
8338
+ ...options.headers
8339
+ }
8340
+ });
8341
+ /**
8342
+ * List jobs
8343
+ *
8344
+ * List batch and video-generation jobs in a library. Filter by status and continue with next_cursor. Poll a generation Job until terminal, then save successful candidate outputs before they expire after 7 days.
8345
+ */
8346
+ export const mediaListJobs = (options) => (options.client ?? client).get({
8347
+ security: [{
8348
+ key: 'media-BearerAuth',
8349
+ scheme: 'bearer',
8350
+ type: 'http'
8351
+ }],
8352
+ url: '/media/v1/libraries/{library_id}/jobs',
8353
+ ...options
8354
+ });
8355
+ /**
8356
+ * Cancel job
8357
+ *
8358
+ * Cancel a queued or running generation job. Already completed outputs remain available to save; poll or read the returned Job to confirm its status.
8359
+ */
8360
+ export const mediaCancelJob = (options) => (options.client ?? client).post({
8361
+ security: [{
8362
+ key: 'media-BearerAuth',
8363
+ scheme: 'bearer',
8364
+ type: 'http'
8365
+ }],
8366
+ url: '/media/v1/libraries/{library_id}/jobs/{job_id}/cancel',
8367
+ ...options
8368
+ });
8369
+ /**
8370
+ * Save generation output
8371
+ *
8372
+ * Save a successful candidate as a library asset. Candidate outputs expire after 7 days; save before expiry. Generation is charged per second when the job runs, not when an output is saved.
8373
+ */
8374
+ export const mediaSaveGenerationOutput = (options) => (options.client ?? client).post({
8375
+ security: [{
8376
+ key: 'media-BearerAuth',
8377
+ scheme: 'bearer',
8378
+ type: 'http'
8379
+ }],
8380
+ url: '/media/v1/libraries/{library_id}/jobs/{job_id}/outputs/{index}/save',
8381
+ ...options,
8382
+ headers: {
8383
+ 'Content-Type': 'application/json',
8384
+ ...options.headers
8385
+ }
8386
+ });
8387
+ /**
8388
+ * Get generation capabilities
8389
+ *
8390
+ * Read supported text-to-video intent, default model, duration and aspect-ratio limits, per-library concurrency and candidate retention. Generation is charged per second; unsaved candidates expire after 7 days.
8391
+ */
8392
+ export const mediaGetGenerationCapabilities = (options) => (options?.client ?? client).get({
8393
+ security: [{
8394
+ key: 'media-BearerAuth',
8395
+ scheme: 'bearer',
8396
+ type: 'http'
8397
+ }],
8398
+ url: '/media/v1/generation/capabilities',
8399
+ ...options
8400
+ });
8401
+ /**
8402
+ * List types
8403
+ *
8404
+ * 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.
8405
+ */
8406
+ export const ontologyListTypes = (options) => (options?.client ?? client).get({
8407
+ security: [{
8408
+ key: 'ontology-bearerAuth',
8409
+ scheme: 'bearer',
8410
+ type: 'http'
8411
+ }],
8412
+ url: '/ontology/v1/types',
8413
+ ...options
8414
+ });
8415
+ /**
8416
+ * Register type
8417
+ *
8418
+ * 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.
8419
+ */
8420
+ export const ontologyRegisterType = (options) => (options.client ?? client).post({
8421
+ security: [{
8422
+ key: 'ontology-bearerAuth',
8423
+ scheme: 'bearer',
8424
+ type: 'http'
8425
+ }],
8426
+ url: '/ontology/v1/types',
8427
+ ...options,
8428
+ headers: {
8429
+ 'Content-Type': 'application/json',
8430
+ ...options.headers
8431
+ }
8432
+ });
8433
+ /**
8434
+ * Retrieve type
8435
+ *
8436
+ * 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.
8437
+ */
8438
+ export const ontologyRetrieveType = (options) => (options.client ?? client).get({
8439
+ security: [{
8440
+ key: 'ontology-bearerAuth',
8441
+ scheme: 'bearer',
8442
+ type: 'http'
8443
+ }],
8444
+ url: '/ontology/v1/types/{name}',
8445
+ ...options
8446
+ });
8447
+ /**
8448
+ * List nodes
8449
+ *
8450
+ * 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.
8451
+ */
8452
+ export const ontologyListNodes = (options) => (options?.client ?? client).get({
8453
+ security: [{
8454
+ key: 'ontology-bearerAuth',
8455
+ scheme: 'bearer',
8456
+ type: 'http'
8457
+ }],
8458
+ url: '/ontology/v1/nodes',
8459
+ ...options
8460
+ });
8461
+ /**
8462
+ * Create node
8463
+ *
8464
+ * 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.
8465
+ */
8466
+ export const ontologyCreateNode = (options) => (options.client ?? client).post({
8467
+ security: [{
8468
+ key: 'ontology-bearerAuth',
8469
+ scheme: 'bearer',
8470
+ type: 'http'
8471
+ }],
8472
+ url: '/ontology/v1/nodes',
8473
+ ...options,
8474
+ headers: {
8475
+ 'Content-Type': 'application/json',
8476
+ ...options.headers
8477
+ }
8478
+ });
8479
+ /**
8480
+ * Retrieve node
8481
+ *
8482
+ * 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.
8483
+ */
8484
+ export const ontologyRetrieveNode = (options) => (options.client ?? client).get({
8485
+ security: [{
8486
+ key: 'ontology-bearerAuth',
8487
+ scheme: 'bearer',
8488
+ type: 'http'
8489
+ }],
8490
+ url: '/ontology/v1/nodes/{node_id}',
8491
+ ...options
8492
+ });
8493
+ /**
8494
+ * Update node
8495
+ *
8496
+ * 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.
8497
+ */
8498
+ export const ontologyUpdateNode = (options) => (options.client ?? client).patch({
8499
+ security: [{
8500
+ key: 'ontology-bearerAuth',
8501
+ scheme: 'bearer',
8502
+ type: 'http'
8503
+ }],
8504
+ url: '/ontology/v1/nodes/{node_id}',
8505
+ ...options,
8506
+ headers: {
8507
+ 'Content-Type': 'application/json',
8508
+ ...options.headers
8509
+ }
8510
+ });
8511
+ /**
8512
+ * Merge node
8513
+ *
8514
+ * 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.
8515
+ */
8516
+ export const ontologyMergeNode = (options) => (options.client ?? client).post({
8517
+ security: [{
8518
+ key: 'ontology-bearerAuth',
8519
+ scheme: 'bearer',
8520
+ type: 'http'
8521
+ }],
8522
+ url: '/ontology/v1/nodes/{node_id}/merge',
8523
+ ...options,
8524
+ headers: {
8525
+ 'Content-Type': 'application/json',
8526
+ ...options.headers
8527
+ }
8528
+ });
8529
+ /**
8530
+ * List relations
8531
+ *
8532
+ * 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.
8533
+ */
8534
+ export const ontologyListRelations = (options) => (options?.client ?? client).get({
8535
+ security: [{
8536
+ key: 'ontology-bearerAuth',
8537
+ scheme: 'bearer',
8538
+ type: 'http'
8539
+ }],
8540
+ url: '/ontology/v1/relations',
8541
+ ...options
8542
+ });
8543
+ /**
8544
+ * Create relation
8545
+ *
8546
+ * 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.
8547
+ */
8548
+ export const ontologyCreateRelation = (options) => (options.client ?? client).post({
8549
+ security: [{
8550
+ key: 'ontology-bearerAuth',
8551
+ scheme: 'bearer',
8552
+ type: 'http'
8553
+ }],
8554
+ url: '/ontology/v1/relations',
8555
+ ...options,
8556
+ headers: {
8557
+ 'Content-Type': 'application/json',
8558
+ ...options.headers
8559
+ }
8560
+ });
8561
+ /**
8562
+ * Retrieve relation
8563
+ *
8564
+ * 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.
8565
+ */
8566
+ export const ontologyRetrieveRelation = (options) => (options.client ?? client).get({
8567
+ security: [{
8568
+ key: 'ontology-bearerAuth',
8569
+ scheme: 'bearer',
8570
+ type: 'http'
8571
+ }],
8572
+ url: '/ontology/v1/relations/{relation_id}',
8573
+ ...options
8574
+ });
8575
+ /**
8576
+ * Invalidate relation
8577
+ *
8578
+ * 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.
8579
+ */
8580
+ export const ontologyInvalidateRelation = (options) => (options.client ?? client).post({
8581
+ security: [{
8582
+ key: 'ontology-bearerAuth',
8583
+ scheme: 'bearer',
8584
+ type: 'http'
8585
+ }],
8586
+ url: '/ontology/v1/relations/{relation_id}/invalidate',
8587
+ ...options,
8588
+ headers: {
8589
+ 'Content-Type': 'application/json',
8590
+ ...options.headers
8591
+ }
8592
+ });
8593
+ /**
8594
+ * Apply changeset
8595
+ *
8596
+ * 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.
8597
+ */
8598
+ export const ontologyApplyChangeset = (options) => (options.client ?? client).post({
8599
+ security: [{
8600
+ key: 'ontology-bearerAuth',
8601
+ scheme: 'bearer',
8602
+ type: 'http'
8603
+ }],
8604
+ url: '/ontology/v1/changesets',
8605
+ ...options,
8606
+ headers: {
8607
+ 'Content-Type': 'application/json',
8608
+ ...options.headers
8609
+ }
8610
+ });
8611
+ /**
8612
+ * Search nodes
8613
+ *
8614
+ * 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.
8615
+ */
8616
+ export const ontologySearch = (options) => (options.client ?? client).post({
8617
+ security: [{
8618
+ key: 'ontology-bearerAuth',
8619
+ scheme: 'bearer',
8620
+ type: 'http'
8621
+ }],
8622
+ url: '/ontology/v1/search',
8623
+ ...options,
8624
+ headers: {
8625
+ 'Content-Type': 'application/json',
8626
+ ...options.headers
8627
+ }
8628
+ });
7745
8629
  /**
7746
8630
  * List sandboxes (v2)
7747
8631
  *
@@ -8842,7 +9726,7 @@ export const vaultListVaults = (options) => (options?.client ?? client).get({
8842
9726
  /**
8843
9727
  * Create vault
8844
9728
  *
8845
- * 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. Unlike Anthropic, Agent sessions do not accept nonempty vault_ids; storing a credential or adding its ID to metadata does not enable vault-backed MCP authentication. 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.
9729
+ * 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.
8846
9730
  */
8847
9731
  export const vaultCreateVault = (options) => (options.client ?? client).post({
8848
9732
  security: [{
@@ -9438,7 +10322,7 @@ export const ticketGetLabels = (options) => (options?.client ?? client).get({
9438
10322
  /**
9439
10323
  * Create or add labels
9440
10324
  *
9441
- * 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. Organization owner or admin authority is required for this write; API keys without role information act as members.
10325
+ * 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.
9442
10326
  */
9443
10327
  export const ticketPostLabels = (options) => (options.client ?? client).post({
9444
10328
  security: [{
@@ -9460,7 +10344,7 @@ export const ticketPostLabels = (options) => (options.client ?? client).post({
9460
10344
  /**
9461
10345
  * Remove labels
9462
10346
  *
9463
- * 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. Organization owner or admin authority is required for this write; API keys without role information act as members.
10347
+ * 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.
9464
10348
  */
9465
10349
  export const ticketDeleteLabelsName = (options) => (options.client ?? client).delete({
9466
10350
  security: [{
@@ -9478,7 +10362,7 @@ export const ticketDeleteLabelsName = (options) => (options.client ?? client).de
9478
10362
  /**
9479
10363
  * Update labels
9480
10364
  *
9481
- * 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. Organization owner or admin authority is required for this write; API keys without role information act as members.
10365
+ * 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.
9482
10366
  */
9483
10367
  export const ticketPatchLabelsName = (options) => (options.client ?? client).patch({
9484
10368
  security: [{