@nodaro/sdk 2.43.0 → 2.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/{chunk-ETX3TLNB.cjs → chunk-22P4X3N5.cjs} +16 -5
  2. package/dist/chunk-22P4X3N5.cjs.map +1 -0
  3. package/dist/{chunk-JUON5NXA.js → chunk-33HT46A3.js} +13 -2
  4. package/dist/chunk-33HT46A3.js.map +1 -0
  5. package/dist/{chunk-V3KMBQMK.js → chunk-3Y5TV37H.js} +3 -3
  6. package/dist/{chunk-V3KMBQMK.js.map → chunk-3Y5TV37H.js.map} +1 -1
  7. package/dist/{chunk-F6GENF6R.cjs → chunk-55ZX6TE3.cjs} +12 -9
  8. package/dist/chunk-55ZX6TE3.cjs.map +1 -0
  9. package/dist/{chunk-2VJOHJUZ.cjs → chunk-5IXZLQNT.cjs} +2 -2
  10. package/dist/chunk-5IXZLQNT.cjs.map +1 -0
  11. package/dist/{chunk-IGMWFEFB.js → chunk-5MOJSYHI.js} +2 -2
  12. package/dist/chunk-5MOJSYHI.js.map +1 -0
  13. package/dist/{chunk-FQNCIP6K.js → chunk-7LODCIQK.js} +2 -2
  14. package/dist/chunk-7LODCIQK.js.map +1 -0
  15. package/dist/{chunk-OSX2GVZ2.cjs → chunk-7YHIFCJ4.cjs} +2 -2
  16. package/dist/chunk-7YHIFCJ4.cjs.map +1 -0
  17. package/dist/{chunk-6QFTWAQQ.cjs → chunk-A7HOOWKS.cjs} +26 -26
  18. package/dist/{chunk-6QFTWAQQ.cjs.map → chunk-A7HOOWKS.cjs.map} +1 -1
  19. package/dist/{chunk-DQAYIVVS.js → chunk-BQAW4RX2.js} +16 -5
  20. package/dist/chunk-BQAW4RX2.js.map +1 -0
  21. package/dist/{chunk-WK7C7TP6.js → chunk-CKHCSZCV.js} +2 -2
  22. package/dist/chunk-CKHCSZCV.js.map +1 -0
  23. package/dist/{chunk-PQ7OKM3E.cjs → chunk-FIMBPKIH.cjs} +2 -2
  24. package/dist/chunk-FIMBPKIH.cjs.map +1 -0
  25. package/dist/{chunk-RQH6IKDC.js → chunk-HKDIIFG2.js} +12 -9
  26. package/dist/chunk-HKDIIFG2.js.map +1 -0
  27. package/dist/{chunk-YSZM3N7Q.js → chunk-HPXE3NZW.js} +2 -2
  28. package/dist/{chunk-YSZM3N7Q.js.map → chunk-HPXE3NZW.js.map} +1 -1
  29. package/dist/{chunk-VADPSFLS.cjs → chunk-J6FHBQ4Z.cjs} +2 -2
  30. package/dist/chunk-J6FHBQ4Z.cjs.map +1 -0
  31. package/dist/{chunk-ZWPDWFN2.js → chunk-JB4GVP4Q.js} +2 -2
  32. package/dist/chunk-JB4GVP4Q.js.map +1 -0
  33. package/dist/{chunk-OIYMTGYN.cjs → chunk-JOXZ4ZIF.cjs} +2 -2
  34. package/dist/chunk-JOXZ4ZIF.cjs.map +1 -0
  35. package/dist/{chunk-BLA44UCM.js → chunk-KFZOJBI5.js} +2 -2
  36. package/dist/chunk-KFZOJBI5.js.map +1 -0
  37. package/dist/{chunk-FHVNTS4E.cjs → chunk-KMNSPC72.cjs} +2 -2
  38. package/dist/{chunk-FHVNTS4E.cjs.map → chunk-KMNSPC72.cjs.map} +1 -1
  39. package/dist/{chunk-ILG5DHQQ.js → chunk-M7VSFZMV.js} +2 -2
  40. package/dist/chunk-M7VSFZMV.js.map +1 -0
  41. package/dist/{chunk-Z7UZ3FD3.js → chunk-RBX3QTKB.js} +2 -2
  42. package/dist/{chunk-Z7UZ3FD3.js.map → chunk-RBX3QTKB.js.map} +1 -1
  43. package/dist/{chunk-VACAWIZT.js → chunk-RQY2WJD3.js} +14 -14
  44. package/dist/{chunk-VACAWIZT.js.map → chunk-RQY2WJD3.js.map} +1 -1
  45. package/dist/{chunk-7XOK277W.cjs → chunk-SF2CMKWA.cjs} +2 -2
  46. package/dist/{chunk-7XOK277W.cjs.map → chunk-SF2CMKWA.cjs.map} +1 -1
  47. package/dist/{chunk-EK672FFM.cjs → chunk-UIBYZNDR.cjs} +2 -2
  48. package/dist/chunk-UIBYZNDR.cjs.map +1 -0
  49. package/dist/{chunk-TMRRXQQL.cjs → chunk-WFWZBYBS.cjs} +3 -3
  50. package/dist/{chunk-TMRRXQQL.cjs.map → chunk-WFWZBYBS.cjs.map} +1 -1
  51. package/dist/{chunk-VHSMOBU7.cjs → chunk-WUM6CWTE.cjs} +13 -2
  52. package/dist/chunk-WUM6CWTE.cjs.map +1 -0
  53. package/dist/entries/apps.cjs +2 -2
  54. package/dist/entries/apps.d.cts +1 -1
  55. package/dist/entries/apps.d.ts +1 -1
  56. package/dist/entries/apps.js +1 -1
  57. package/dist/entries/cast-swap.cjs +2 -2
  58. package/dist/entries/cast-swap.d.cts +104 -30
  59. package/dist/entries/cast-swap.d.ts +104 -30
  60. package/dist/entries/cast-swap.js +1 -1
  61. package/dist/entries/characters.d.cts +1 -1
  62. package/dist/entries/characters.d.ts +1 -1
  63. package/dist/entries/client.cjs +18 -18
  64. package/dist/entries/client.d.cts +1 -1
  65. package/dist/entries/client.d.ts +1 -1
  66. package/dist/entries/client.js +13 -13
  67. package/dist/entries/core.cjs +5 -5
  68. package/dist/entries/core.js +1 -1
  69. package/dist/entries/creatures.d.cts +1 -1
  70. package/dist/entries/creatures.d.ts +1 -1
  71. package/dist/entries/credits.cjs +2 -2
  72. package/dist/entries/credits.d.cts +2 -2
  73. package/dist/entries/credits.d.ts +2 -2
  74. package/dist/entries/credits.js +1 -1
  75. package/dist/entries/edit.cjs +6 -6
  76. package/dist/entries/edit.d.cts +1 -1
  77. package/dist/entries/edit.d.ts +1 -1
  78. package/dist/entries/edit.js +1 -1
  79. package/dist/entries/locations.d.cts +1 -1
  80. package/dist/entries/locations.d.ts +1 -1
  81. package/dist/entries/media.cjs +2 -2
  82. package/dist/entries/media.d.cts +14 -3
  83. package/dist/entries/media.d.ts +14 -3
  84. package/dist/entries/media.js +1 -1
  85. package/dist/entries/nodes.cjs +2 -2
  86. package/dist/entries/nodes.d.cts +1 -1
  87. package/dist/entries/nodes.d.ts +1 -1
  88. package/dist/entries/nodes.js +1 -1
  89. package/dist/entries/objects.d.cts +1 -1
  90. package/dist/entries/objects.d.ts +1 -1
  91. package/dist/entries/picker-catalogs.cjs +2 -2
  92. package/dist/entries/picker-catalogs.d.cts +8 -0
  93. package/dist/entries/picker-catalogs.d.ts +8 -0
  94. package/dist/entries/picker-catalogs.js +1 -1
  95. package/dist/entries/scene3d.d.cts +2 -2
  96. package/dist/entries/scene3d.d.ts +2 -2
  97. package/dist/entries/templates.cjs +2 -2
  98. package/dist/entries/templates.d.cts +1 -1
  99. package/dist/entries/templates.d.ts +1 -1
  100. package/dist/entries/templates.js +1 -1
  101. package/dist/entries/trends.cjs +2 -2
  102. package/dist/entries/trends.d.cts +87 -12
  103. package/dist/entries/trends.d.ts +87 -12
  104. package/dist/entries/trends.js +1 -1
  105. package/dist/entries/tutorials.cjs +2 -2
  106. package/dist/entries/tutorials.d.cts +1 -1
  107. package/dist/entries/tutorials.d.ts +1 -1
  108. package/dist/entries/tutorials.js +1 -1
  109. package/dist/entries/workflows.cjs +2 -2
  110. package/dist/entries/workflows.d.cts +76 -5
  111. package/dist/entries/workflows.d.ts +76 -5
  112. package/dist/entries/workflows.js +1 -1
  113. package/dist/index.cjs +34 -34
  114. package/dist/index.d.cts +4 -4
  115. package/dist/index.d.ts +4 -4
  116. package/dist/index.js +13 -13
  117. package/dist/{nodes-B4ZEqx2V.d.ts → nodes-MThDit8l.d.ts} +1 -1
  118. package/dist/{nodes-DzBGNOUV.d.cts → nodes-Szl6HrZ_.d.cts} +1 -1
  119. package/package.json +3 -3
  120. package/dist/chunk-2VJOHJUZ.cjs.map +0 -1
  121. package/dist/chunk-BLA44UCM.js.map +0 -1
  122. package/dist/chunk-DQAYIVVS.js.map +0 -1
  123. package/dist/chunk-EK672FFM.cjs.map +0 -1
  124. package/dist/chunk-ETX3TLNB.cjs.map +0 -1
  125. package/dist/chunk-F6GENF6R.cjs.map +0 -1
  126. package/dist/chunk-FQNCIP6K.js.map +0 -1
  127. package/dist/chunk-IGMWFEFB.js.map +0 -1
  128. package/dist/chunk-ILG5DHQQ.js.map +0 -1
  129. package/dist/chunk-JUON5NXA.js.map +0 -1
  130. package/dist/chunk-OIYMTGYN.cjs.map +0 -1
  131. package/dist/chunk-OSX2GVZ2.cjs.map +0 -1
  132. package/dist/chunk-PQ7OKM3E.cjs.map +0 -1
  133. package/dist/chunk-RQH6IKDC.js.map +0 -1
  134. package/dist/chunk-VADPSFLS.cjs.map +0 -1
  135. package/dist/chunk-VHSMOBU7.cjs.map +0 -1
  136. package/dist/chunk-WK7C7TP6.js.map +0 -1
  137. package/dist/chunk-ZWPDWFN2.js.map +0 -1
@@ -14,6 +14,12 @@ import '@nodaro/shared/organizations';
14
14
  * photos if it fails, and is turned off with `prepareReferences: false`.
15
15
  * Locations are not prepared.
16
16
  *
17
+ * Engines: a run is made on Seedance 2.5 (`engine` left out, or
18
+ * `"seedance-2-5"`) or Kling 4 (`"kling-4"`). Kling 4 renders 720p (its
19
+ * default) or 1080p and has no draft; it makes a new take guided by the clip
20
+ * and pictures, so its Full Quality is a new take at 1080p rather than the
21
+ * same take re-rendered (`CastSwapFullQualityEstimate.kind`).
22
+ *
17
23
  * Cloud edition only: `/v1/cast-swap` is served by the cloud plugin and 404s
18
24
  * on self-hosted installs. `run()` answers 202 with a job id; follow it with
19
25
  * `client.jobs.get(jobId)` / `client.jobs.getStatus(jobId)` like any other job.
@@ -29,18 +35,39 @@ import '@nodaro/shared/organizations';
29
35
  * no reference and no `prePrompt` or `postPrompt`, more roles of a kind
30
36
  * than allowed, more than 30 images in all, `draft: true` above 480p, a
31
37
  * `prePrompt` or `postPrompt` over 4,000 characters, a `faceMasking` setting
32
- * out of range), `raw_reference_token` (also in a reference's `line`),
38
+ * out of range); on Kling 4, `draft_unsupported` (`draft: true`),
39
+ * `resolution_unsupported` (480p), `output_format_unsupported` (a MOV edit
40
+ * output) and `too_many_images` (more than 10 images in the run, across every
41
+ * role and fixed reference); `raw_reference_token` (also in a reference's `line`),
33
42
  * `invalid_role_mention` (also any `{role:N}` in a reference's `line`),
34
43
  * `unsafe_url`, `video_unreadable`, `clip_out_of_range` (4–30 s),
35
44
  * `preview_out_of_range`, `no_roles_in_preview` (a preview with every role
36
45
  * `inPreview: false`, always refused even with a prompt, or with no role kept
37
46
  * in it that has images and no `prePrompt` or `postPrompt`), `prompt_too_long`
38
47
  * (the prompt would build too long: a `{role:N}` reads as the role's name when
39
- * it sends no images); 401; 402 `insufficient_credits` (`run()` only); 404
48
+ * it sends no images; Kling 4's cap is 8,000 characters); 401; 402 `insufficient_credits` (`run()` only); 404
40
49
  * (a `sessionId` you may not use, `run()` only); 422 `job_blocked` (`run()`
41
50
  * only); 503 `host_too_old` (both); 503 `estimate_unavailable` (`estimate()`
42
51
  * only).
43
52
  */
53
+ /**
54
+ * The video engine a Cast Swap run is made on. Left out = `"seedance-2-5"`.
55
+ *
56
+ * - `"seedance-2-5"`: 480p (the default, a draft unless `draft: false`), 720p
57
+ * or 1080p; Full Quality re-renders a draft's own take at 1080p.
58
+ * - `"kling-4"`: 720p (the default) or 1080p, never a draft (`draft: true`
59
+ * answers 400 `draft_unsupported`); Full Quality makes a new take at 1080p
60
+ * from a completed 720p run's inputs. A preview is still 4 s from
61
+ * `previewStart`.
62
+ */
63
+ type CastSwapEngine = "seedance-2-5" | "kling-4";
64
+ /**
65
+ * Where a Kling 4 run cuts the clip to whole seconds (Kling renders whole
66
+ * seconds; asked for more than the clip, it would stretch the motion):
67
+ * - `"cut-end"` (the default): drop the fraction of a second at its end;
68
+ * - `"cut-start"`: drop it at its start.
69
+ */
70
+ type CastSwapKlingLength = "cut-end" | "cut-start";
44
71
  /** Whether a swapped subject takes this trait from the references (`"new"`) or keeps the video's (`"original"`). */
45
72
  type CastSwapTraitSource = "new" | "original";
46
73
  /**
@@ -220,11 +247,28 @@ interface CastSwapParams {
220
247
  preview?: boolean;
221
248
  /** Where the preview starts, in seconds. Default 0. */
222
249
  previewStart?: number;
223
- /** The output resolution. Default `"480p"`. */
250
+ /**
251
+ * The video engine (see {@link CastSwapEngine}). Default `"seedance-2-5"`.
252
+ * The job records it in `input_data.engine`, and a completed job's output
253
+ * in its `engine`. A Cast Swap engine older than Kling 4 support ignores
254
+ * the field and runs Seedance 2.5: a Kling 4 quote names `engine:
255
+ * "kling-4"`, so check the estimate's `engine` before running.
256
+ */
257
+ engine?: CastSwapEngine;
258
+ /**
259
+ * Kling 4 only (Seedance 2.5 ignores it): which end of the clip is cut to
260
+ * whole seconds (see {@link CastSwapKlingLength}). Default `"cut-end"`.
261
+ */
262
+ klingLength?: CastSwapKlingLength;
263
+ /**
264
+ * The output resolution. Seedance 2.5: `"480p"` (default), `"720p"` or
265
+ * `"1080p"`. Kling 4: `"720p"` (default) or `"1080p"`; `"480p"` answers 400.
266
+ */
224
267
  resolution?: "480p" | "720p" | "1080p";
225
268
  /**
226
- * Render as a draft. Defaults to `true` at 480p and `false` above it; `true`
227
- * with `"720p"` or `"1080p"` answers 400 (draft is 480p only).
269
+ * Render as a draft (Seedance 2.5 only). Defaults to `true` at 480p and
270
+ * `false` above it; `true` with `"720p"` or `"1080p"` answers 400 (draft is
271
+ * 480p only). Kling 4 has no draft: `true` answers 400 `draft_unsupported`.
228
272
  */
229
273
  draft?: boolean;
230
274
  /**
@@ -248,10 +292,16 @@ interface CastSwapParams {
248
292
  }
249
293
  /** What a run would cost, in credits. */
250
294
  interface CastSwapEstimate {
295
+ /**
296
+ * The engine the run would use. Sent by an engine that knows Kling 4 on a
297
+ * Kling 4 quote (`"kling-4"`); absent = Seedance 2.5.
298
+ */
299
+ engine?: CastSwapEngine;
251
300
  /**
252
301
  * What is held when the run starts: `breakdown.castSwap +
253
- * breakdown.seedance + breakdown.references`, plus `breakdown.masking` with
254
- * face masking `"always"`. The run is charged what it actually costs, which
302
+ * breakdown.seedance + breakdown.references` (on Kling 4,
303
+ * `breakdown.kling` in place of `breakdown.seedance`), plus
304
+ * `breakdown.masking` with face masking `"always"`. The run is charged what it actually costs, which
255
305
  * is expected to be `expectedCredits`.
256
306
  */
257
307
  totalCredits: number;
@@ -264,7 +314,9 @@ interface CastSwapEstimate {
264
314
  * `totalCredits` is what is held when the run starts; the run is charged
265
315
  * what it actually costs.
266
316
  *
267
- * Absent from an older Cast Swap engine: read `totalCredits` then.
317
+ * Absent from an older Cast Swap engine: read `totalCredits` then. On
318
+ * Kling 4 it equals `totalCredits` (Kling renders exactly the length asked
319
+ * for, so the hold is what it settles at).
268
320
  */
269
321
  expectedCredits?: number;
270
322
  /**
@@ -276,6 +328,8 @@ interface CastSwapEstimate {
276
328
  * clip in and about as much out), never above `seedance`. It takes
277
329
  * `seedance`'s place in `expectedCredits`; it is not added to it. Absent
278
330
  * from an older Cast Swap engine, like `expectedCredits`;
331
+ * - `kling`: Kling 4 only, in place of `seedance` and `seedanceExpected`:
332
+ * what the Kling take costs (held and charged alike);
279
333
  * - `references`: preparing the reference pictures (0 when
280
334
  * `prepareReferences` is off or there is nothing to prepare);
281
335
  * - `masking`: masking the faces, present only when `faceMasking` is on.
@@ -287,9 +341,10 @@ interface CastSwapEstimate {
287
341
  */
288
342
  breakdown: {
289
343
  castSwap: number;
290
- seedance: number;
344
+ seedance?: number;
291
345
  references: number;
292
346
  seedanceExpected?: number;
347
+ kling?: number;
293
348
  masking?: number;
294
349
  };
295
350
  /**
@@ -300,9 +355,9 @@ interface CastSwapEstimate {
300
355
  */
301
356
  maskingCredits?: number;
302
357
  /**
303
- * `true` when the video is made at Auto length (every run today): the final
304
- * charge is expected to come out lower than `totalCredits`, at about
305
- * `expectedCredits`.
358
+ * `true` when the video is made at Auto length (every Seedance 2.5 run): the
359
+ * final charge is expected to come out lower than `totalCredits`, at about
360
+ * `expectedCredits`. `false` on Kling 4.
306
361
  */
307
362
  settlesLower: boolean;
308
363
  }
@@ -319,22 +374,37 @@ interface CastSwapRunOptions {
319
374
  idempotencyKey?: string;
320
375
  }
321
376
  /**
322
- * What finishing a draft at Full Quality would cost
323
- * (`POST /v1/cast-swap/:jobId/full-quality/estimate`).
377
+ * What a Full Quality version would be: `"same-take"` re-renders a Seedance
378
+ * 2.5 draft's own take at 1080p; `"new-take"` makes a new Kling 4 take at
379
+ * 1080p from a 720p run's inputs (it will not match the 720p run frame for
380
+ * frame). The 720p run or draft stays either way.
381
+ */
382
+ type CastSwapFullQualityKind = "same-take" | "new-take";
383
+ /**
384
+ * What a Full Quality version of a run would cost
385
+ * (`POST /v1/cast-swap/:jobId/full-quality/estimate`): a Seedance 2.5 draft,
386
+ * or a completed Kling 4 run at 720p.
324
387
  */
325
388
  interface CastSwapFullQualityEstimate {
326
- /** The quote in credits: `breakdown.castSwap + breakdown.seedanceHd`. */
389
+ /**
390
+ * Which Full Quality this is ({@link CastSwapFullQualityKind}), so it can
391
+ * be worded right. Absent from an older Cast Swap engine: `"same-take"`.
392
+ */
393
+ kind?: CastSwapFullQualityKind;
394
+ /** The quote in credits: `breakdown.castSwap` + `breakdown.seedanceHd` (same take) or `breakdown.kling` (new take). */
327
395
  totalCredits: number;
328
396
  /**
329
- * `castSwap`: the Full Quality job's own steps; `seedanceHd`: the 1080p
330
- * render of the draft's take (0 when an earlier try of this draft already
331
- * finished that render, which is then reused).
397
+ * `castSwap`: the Full Quality job's own steps; `seedanceHd` (a same take):
398
+ * the 1080p render of the draft's take (0 when an earlier try of this draft
399
+ * already finished that render, which is then reused); `kling` (a new take,
400
+ * in place of `seedanceHd`): the new Kling 4 take at 1080p.
332
401
  */
333
402
  breakdown: {
334
403
  castSwap: number;
335
- seedanceHd: number;
404
+ seedanceHd?: number;
405
+ kling?: number;
336
406
  };
337
- /** ISO time until which the draft can be finished at Full Quality (7 days after it completed). */
407
+ /** ISO time until which the run can be finished at Full Quality (7 days after it completed). */
338
408
  availableUntil: string;
339
409
  }
340
410
  /** Options for {@link CastSwapResource.fullQuality}. */
@@ -345,7 +415,7 @@ interface CastSwapFullQualityParams {
345
415
  /** The Full Quality job (`POST /v1/cast-swap/:jobId/full-quality`). */
346
416
  interface CastSwapFullQualityResult {
347
417
  jobId: string;
348
- /** `true` when this draft's Full Quality was already running or done: that job is answered, nothing new is started or charged. */
418
+ /** `true` when this run's Full Quality was already running or done: that job is answered, nothing new is started or charged. */
349
419
  existing?: boolean;
350
420
  }
351
421
  /**
@@ -355,7 +425,8 @@ interface CastSwapFullQualityResult {
355
425
  * - `not_found` (404): not your job, or not a Cast Swap run; also a
356
426
  * `sessionId` you may not use;
357
427
  * - `not_completed` (409): the run has not finished;
358
- * - `not_a_draft` (409): the run was not made as a draft;
428
+ * - `not_a_draft` (409): the run is neither a Seedance 2.5 draft nor a
429
+ * Kling 4 run at 720p (a Kling 4 run at 1080p is already Full Quality);
359
430
  * - `draft_expired` (410): more than 7 days after the draft completed, or
360
431
  * the draft can no longer be finished at Full Quality;
361
432
  * - `full_quality_pending` (409, `details.retryable: true`): not final — an
@@ -392,21 +463,24 @@ declare class CastSwapResource {
392
463
  /** Quote a run before starting it (`POST /v1/cast-swap/estimate`); spends nothing. */
393
464
  estimate(params: CastSwapParams): Promise<CastSwapEstimate>;
394
465
  /**
395
- * Quote finishing a draft at Full Quality (`POST
466
+ * Quote finishing a run at Full Quality (`POST
396
467
  * /v1/cast-swap/:jobId/full-quality/estimate`); spends nothing. `jobId` is a
397
- * finished DRAFT run (a Cast Swap or trend run made as a draft). The quote
468
+ * finished Seedance 2.5 DRAFT run, or a finished Kling 4 run at 720p (a Cast
469
+ * Swap or trend run); the quote's `kind` says whether it is the same take
470
+ * re-rendered or a new take. The quote
398
471
  * does not look for a Full Quality already running: when one is,
399
472
  * {@link fullQuality} answers it (`existing: true`) and charges nothing.
400
473
  * Refusals: {@link CastSwapFullQualityRefusalCode}.
401
474
  */
402
475
  fullQualityEstimate(jobId: string): Promise<CastSwapFullQualityEstimate>;
403
476
  /**
404
- * Finish a draft at Full Quality (`POST /v1/cast-swap/:jobId/full-quality`):
405
- * the same take re-rendered at 1080p, with the clip's audio, as a new job
406
- * linked to the draft. SPENDS CREDITS: quote it first with
477
+ * Finish a run at Full Quality (`POST /v1/cast-swap/:jobId/full-quality`):
478
+ * at 1080p, with the clip's audio, as a new job linked to the run — a
479
+ * Seedance 2.5 draft's own take re-rendered, or a new Kling 4 take from a
480
+ * 720p run's inputs (the quote's `kind`). SPENDS CREDITS: quote it first with
407
481
  * {@link fullQualityEstimate}. Answers 202 `{ jobId }`, or 200
408
- * `{ jobId, existing: true }` when this draft's Full Quality is already
409
- * running or done (one per draft; a failed one may be asked again). Follow
482
+ * `{ jobId, existing: true }` when this run's Full Quality is already
483
+ * running or done (one per run; a failed one may be asked again). Follow
410
484
  * the job with `client.jobs.get(jobId)`. No `Idempotency-Key` is taken: the
411
485
  * server keys the job by the draft. The new job keeps the draft's origin.
412
486
  * Refusals: {@link CastSwapFullQualityRefusalCode}.
@@ -414,4 +488,4 @@ declare class CastSwapResource {
414
488
  fullQuality(jobId: string, params?: CastSwapFullQualityParams): Promise<CastSwapFullQualityResult>;
415
489
  }
416
490
 
417
- export { type CastSwapEstimate, type CastSwapFaceMasking, type CastSwapFaceMaskingZone, type CastSwapFullQualityEstimate, type CastSwapFullQualityParams, type CastSwapFullQualityRefusalCode, type CastSwapFullQualityResult, type CastSwapLocationRole, type CastSwapParams, type CastSwapPersonRole, type CastSwapPetRole, type CastSwapProductRole, type CastSwapReference, CastSwapResource, type CastSwapRole, type CastSwapRolePreviewSettings, type CastSwapRunOptions, type CastSwapTraitSource };
491
+ export { type CastSwapEngine, type CastSwapEstimate, type CastSwapFaceMasking, type CastSwapFaceMaskingZone, type CastSwapFullQualityEstimate, type CastSwapFullQualityKind, type CastSwapFullQualityParams, type CastSwapFullQualityRefusalCode, type CastSwapFullQualityResult, type CastSwapKlingLength, type CastSwapLocationRole, type CastSwapParams, type CastSwapPersonRole, type CastSwapPetRole, type CastSwapProductRole, type CastSwapReference, CastSwapResource, type CastSwapRole, type CastSwapRolePreviewSettings, type CastSwapRunOptions, type CastSwapTraitSource };
@@ -1,4 +1,4 @@
1
1
  import '../chunk-KARJ7P7Y.js';
2
- export { CastSwapResource } from '../chunk-RQH6IKDC.js';
2
+ export { CastSwapResource } from '../chunk-HKDIIFG2.js';
3
3
  //# sourceMappingURL=cast-swap.js.map
4
4
  //# sourceMappingURL=cast-swap.js.map
@@ -4,7 +4,7 @@ import { EntityStyle, CharacterAspectRatio, CharacterAttachColumn } from '@nodar
4
4
  export { CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_STYLES, CharacterAspectRatio, EntityStyle } from '@nodaro/shared/entities';
5
5
  import { TtsProvider } from '@nodaro/shared/models';
6
6
  import { N as NodaroClientCore } from '../developer-apps-zSQXWmEG.cjs';
7
- import { l as GenerationSessionParams } from '../nodes-DzBGNOUV.cjs';
7
+ import { l as GenerationSessionParams } from '../nodes-Szl6HrZ_.cjs';
8
8
  import '@nodaro/shared/apps';
9
9
  import '@nodaro/shared/organizations';
10
10
  import '@nodaro/shared/types';
@@ -4,7 +4,7 @@ import { EntityStyle, CharacterAspectRatio, CharacterAttachColumn } from '@nodar
4
4
  export { CHARACTER_ASPECT_DEFAULTS, CHARACTER_ASPECT_OPTIONS, CHARACTER_STYLES, CharacterAspectRatio, EntityStyle } from '@nodaro/shared/entities';
5
5
  import { TtsProvider } from '@nodaro/shared/models';
6
6
  import { N as NodaroClientCore } from '../developer-apps-zSQXWmEG.js';
7
- import { l as GenerationSessionParams } from '../nodes-B4ZEqx2V.js';
7
+ import { l as GenerationSessionParams } from '../nodes-MThDit8l.js';
8
8
  import '@nodaro/shared/apps';
9
9
  import '@nodaro/shared/organizations';
10
10
  import '@nodaro/shared/types';
@@ -1,36 +1,36 @@
1
1
  'use strict';
2
2
 
3
- var chunk6QFTWAQQ_cjs = require('../chunk-6QFTWAQQ.cjs');
3
+ var chunkA7HOOWKS_cjs = require('../chunk-A7HOOWKS.cjs');
4
4
  require('../chunk-W5VHATSR.cjs');
5
5
  require('../chunk-R63TTR35.cjs');
6
6
  require('../chunk-3B47IHB3.cjs');
7
- require('../chunk-VHSMOBU7.cjs');
7
+ require('../chunk-WUM6CWTE.cjs');
8
8
  require('../chunk-LKH5M44B.cjs');
9
9
  require('../chunk-YDRXBRW2.cjs');
10
10
  require('../chunk-PEMLIAPZ.cjs');
11
11
  require('../chunk-MBFUMWI5.cjs');
12
12
  require('../chunk-NKH2UFSD.cjs');
13
- require('../chunk-EK672FFM.cjs');
14
- require('../chunk-VADPSFLS.cjs');
15
- require('../chunk-FHVNTS4E.cjs');
13
+ require('../chunk-UIBYZNDR.cjs');
14
+ require('../chunk-J6FHBQ4Z.cjs');
15
+ require('../chunk-KMNSPC72.cjs');
16
16
  require('../chunk-JTOEHQQJ.cjs');
17
17
  require('../chunk-NBVARNVA.cjs');
18
- require('../chunk-OSX2GVZ2.cjs');
18
+ require('../chunk-7YHIFCJ4.cjs');
19
19
  require('../chunk-COCKKMNP.cjs');
20
20
  require('../chunk-LAWYFC4G.cjs');
21
21
  require('../chunk-TCLNSVYA.cjs');
22
22
  require('../chunk-KXEWTYS4.cjs');
23
23
  require('../chunk-GB6C5OEZ.cjs');
24
24
  require('../chunk-SYVNY3AH.cjs');
25
- require('../chunk-ETX3TLNB.cjs');
25
+ require('../chunk-22P4X3N5.cjs');
26
26
  require('../chunk-7QOCWJKD.cjs');
27
27
  require('../chunk-ZCWKX4V6.cjs');
28
28
  require('../chunk-34PU2DAT.cjs');
29
- require('../chunk-2VJOHJUZ.cjs');
29
+ require('../chunk-5IXZLQNT.cjs');
30
30
  require('../chunk-GVIFLUYZ.cjs');
31
31
  require('../chunk-CR5E2SF3.cjs');
32
32
  require('../chunk-J5LGGCAS.cjs');
33
- require('../chunk-7XOK277W.cjs');
33
+ require('../chunk-SF2CMKWA.cjs');
34
34
  require('../chunk-SBV5MWEL.cjs');
35
35
  require('../chunk-WUKIJJG2.cjs');
36
36
  require('../chunk-34JMD6ZO.cjs');
@@ -42,15 +42,15 @@ require('../chunk-43FVH6LJ.cjs');
42
42
  require('../chunk-YFS2LMG4.cjs');
43
43
  require('../chunk-OSMKIRKI.cjs');
44
44
  require('../chunk-FRQJNGJS.cjs');
45
- var chunkTMRRXQQL_cjs = require('../chunk-TMRRXQQL.cjs');
45
+ var chunkWFWZBYBS_cjs = require('../chunk-WFWZBYBS.cjs');
46
46
  require('../chunk-FM2KM5TY.cjs');
47
47
  require('../chunk-HGCVWOGK.cjs');
48
- require('../chunk-PQ7OKM3E.cjs');
48
+ require('../chunk-FIMBPKIH.cjs');
49
49
  require('../chunk-A3S55XGF.cjs');
50
- require('../chunk-OIYMTGYN.cjs');
50
+ require('../chunk-JOXZ4ZIF.cjs');
51
51
  require('../chunk-GA4LZZKQ.cjs');
52
52
  require('../chunk-NGKODS3J.cjs');
53
- require('../chunk-F6GENF6R.cjs');
53
+ require('../chunk-55ZX6TE3.cjs');
54
54
  require('../chunk-BPWUWUZ3.cjs');
55
55
  require('../chunk-HAKYPZLB.cjs');
56
56
 
@@ -58,23 +58,23 @@ require('../chunk-HAKYPZLB.cjs');
58
58
 
59
59
  Object.defineProperty(exports, "NodaroClient", {
60
60
  enumerable: true,
61
- get: function () { return chunk6QFTWAQQ_cjs.NodaroClient; }
61
+ get: function () { return chunkA7HOOWKS_cjs.NodaroClient; }
62
62
  });
63
63
  Object.defineProperty(exports, "createClient", {
64
64
  enumerable: true,
65
- get: function () { return chunk6QFTWAQQ_cjs.createClient; }
65
+ get: function () { return chunkA7HOOWKS_cjs.createClient; }
66
66
  });
67
67
  Object.defineProperty(exports, "CallbackAuth", {
68
68
  enumerable: true,
69
- get: function () { return chunkTMRRXQQL_cjs.CallbackAuth; }
69
+ get: function () { return chunkWFWZBYBS_cjs.CallbackAuth; }
70
70
  });
71
71
  Object.defineProperty(exports, "StaticTokenAuth", {
72
72
  enumerable: true,
73
- get: function () { return chunkTMRRXQQL_cjs.StaticTokenAuth; }
73
+ get: function () { return chunkWFWZBYBS_cjs.StaticTokenAuth; }
74
74
  });
75
75
  Object.defineProperty(exports, "supabaseAuth", {
76
76
  enumerable: true,
77
- get: function () { return chunkTMRRXQQL_cjs.supabaseAuth; }
77
+ get: function () { return chunkWFWZBYBS_cjs.supabaseAuth; }
78
78
  });
79
79
  //# sourceMappingURL=client.cjs.map
80
80
  //# sourceMappingURL=client.cjs.map
@@ -4,7 +4,7 @@ import { SessionsResource } from './sessions.cjs';
4
4
  import { JobsResource } from './jobs.cjs';
5
5
  import { VideoProResource } from './video-pro.cjs';
6
6
  import { ExecutionsResource } from './executions.cjs';
7
- import { t as NodesResource } from '../nodes-DzBGNOUV.cjs';
7
+ import { t as NodesResource } from '../nodes-Szl6HrZ_.cjs';
8
8
  import { Scene3DResource } from './scene3d.cjs';
9
9
  import { N as NodaroClientCore, h as DeveloperAppsResource, a as ClientOptions } from '../developer-apps-zSQXWmEG.cjs';
10
10
  export { A as Auth, C as CallbackAuth, b as ConnectedApp, S as StaticTokenAuth, i as UserIdentity, s as supabaseAuth } from '../developer-apps-zSQXWmEG.cjs';
@@ -4,7 +4,7 @@ import { SessionsResource } from './sessions.js';
4
4
  import { JobsResource } from './jobs.js';
5
5
  import { VideoProResource } from './video-pro.js';
6
6
  import { ExecutionsResource } from './executions.js';
7
- import { t as NodesResource } from '../nodes-B4ZEqx2V.js';
7
+ import { t as NodesResource } from '../nodes-MThDit8l.js';
8
8
  import { Scene3DResource } from './scene3d.js';
9
9
  import { N as NodaroClientCore, h as DeveloperAppsResource, a as ClientOptions } from '../developer-apps-zSQXWmEG.js';
10
10
  export { A as Auth, C as CallbackAuth, b as ConnectedApp, S as StaticTokenAuth, i as UserIdentity, s as supabaseAuth } from '../developer-apps-zSQXWmEG.js';
@@ -1,34 +1,34 @@
1
- export { NodaroClient, createClient } from '../chunk-VACAWIZT.js';
1
+ export { NodaroClient, createClient } from '../chunk-RQY2WJD3.js';
2
2
  import '../chunk-ERLXU47J.js';
3
3
  import '../chunk-T7N7DFQJ.js';
4
4
  import '../chunk-YN6CBIIB.js';
5
- import '../chunk-JUON5NXA.js';
5
+ import '../chunk-33HT46A3.js';
6
6
  import '../chunk-Z5GLY4R3.js';
7
7
  import '../chunk-NNHWH7ER.js';
8
8
  import '../chunk-Y6VDCZPB.js';
9
9
  import '../chunk-WVFAQBS7.js';
10
10
  import '../chunk-AUKHMT53.js';
11
- import '../chunk-ILG5DHQQ.js';
12
- import '../chunk-WK7C7TP6.js';
13
- import '../chunk-YSZM3N7Q.js';
11
+ import '../chunk-M7VSFZMV.js';
12
+ import '../chunk-CKHCSZCV.js';
13
+ import '../chunk-HPXE3NZW.js';
14
14
  import '../chunk-WY4QRJZW.js';
15
15
  import '../chunk-WEQWU2IC.js';
16
- import '../chunk-BLA44UCM.js';
16
+ import '../chunk-KFZOJBI5.js';
17
17
  import '../chunk-K4RQOSJH.js';
18
18
  import '../chunk-H7VQTG4M.js';
19
19
  import '../chunk-OIPPTBW4.js';
20
20
  import '../chunk-AJVSMNPZ.js';
21
21
  import '../chunk-IHKIYVZQ.js';
22
22
  import '../chunk-NCCBS6GU.js';
23
- import '../chunk-DQAYIVVS.js';
23
+ import '../chunk-BQAW4RX2.js';
24
24
  import '../chunk-Y6V6CBY5.js';
25
25
  import '../chunk-YVU2M7MI.js';
26
26
  import '../chunk-JTAW54UM.js';
27
- import '../chunk-ZWPDWFN2.js';
27
+ import '../chunk-JB4GVP4Q.js';
28
28
  import '../chunk-Z7LGWNI7.js';
29
29
  import '../chunk-7LSFG2AF.js';
30
30
  import '../chunk-ALSLZG3U.js';
31
- import '../chunk-Z7UZ3FD3.js';
31
+ import '../chunk-RBX3QTKB.js';
32
32
  import '../chunk-Z3ZKFI2M.js';
33
33
  import '../chunk-JDEZHITT.js';
34
34
  import '../chunk-6MQ2LTJZ.js';
@@ -40,15 +40,15 @@ import '../chunk-SFB4YLCS.js';
40
40
  import '../chunk-BU5A6K4C.js';
41
41
  import '../chunk-D2ILCSOQ.js';
42
42
  import '../chunk-7CUWAVWB.js';
43
- export { CallbackAuth, StaticTokenAuth, supabaseAuth } from '../chunk-V3KMBQMK.js';
43
+ export { CallbackAuth, StaticTokenAuth, supabaseAuth } from '../chunk-3Y5TV37H.js';
44
44
  import '../chunk-L6T44A3G.js';
45
45
  import '../chunk-CK3AMMSC.js';
46
- import '../chunk-IGMWFEFB.js';
46
+ import '../chunk-5MOJSYHI.js';
47
47
  import '../chunk-65E3JBFZ.js';
48
- import '../chunk-FQNCIP6K.js';
48
+ import '../chunk-7LODCIQK.js';
49
49
  import '../chunk-3QFTP5P5.js';
50
50
  import '../chunk-J4WFSKY6.js';
51
- import '../chunk-RQH6IKDC.js';
51
+ import '../chunk-HKDIIFG2.js';
52
52
  import '../chunk-KG4R454Z.js';
53
53
  import '../chunk-EJSGJDZY.js';
54
54
  //# sourceMappingURL=client.js.map
@@ -1,26 +1,26 @@
1
1
  'use strict';
2
2
 
3
3
  require('../chunk-X7XP5WBP.cjs');
4
- var chunkTMRRXQQL_cjs = require('../chunk-TMRRXQQL.cjs');
4
+ var chunkWFWZBYBS_cjs = require('../chunk-WFWZBYBS.cjs');
5
5
  require('../chunk-FM2KM5TY.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "CallbackAuth", {
10
10
  enumerable: true,
11
- get: function () { return chunkTMRRXQQL_cjs.CallbackAuth; }
11
+ get: function () { return chunkWFWZBYBS_cjs.CallbackAuth; }
12
12
  });
13
13
  Object.defineProperty(exports, "NodaroClientCore", {
14
14
  enumerable: true,
15
- get: function () { return chunkTMRRXQQL_cjs.NodaroClientCore; }
15
+ get: function () { return chunkWFWZBYBS_cjs.NodaroClientCore; }
16
16
  });
17
17
  Object.defineProperty(exports, "StaticTokenAuth", {
18
18
  enumerable: true,
19
- get: function () { return chunkTMRRXQQL_cjs.StaticTokenAuth; }
19
+ get: function () { return chunkWFWZBYBS_cjs.StaticTokenAuth; }
20
20
  });
21
21
  Object.defineProperty(exports, "supabaseAuth", {
22
22
  enumerable: true,
23
- get: function () { return chunkTMRRXQQL_cjs.supabaseAuth; }
23
+ get: function () { return chunkWFWZBYBS_cjs.supabaseAuth; }
24
24
  });
25
25
  //# sourceMappingURL=core.cjs.map
26
26
  //# sourceMappingURL=core.cjs.map
@@ -1,5 +1,5 @@
1
1
  import '../chunk-AUDHV3OE.js';
2
- export { CallbackAuth, NodaroClientCore, StaticTokenAuth, supabaseAuth } from '../chunk-V3KMBQMK.js';
2
+ export { CallbackAuth, NodaroClientCore, StaticTokenAuth, supabaseAuth } from '../chunk-3Y5TV37H.js';
3
3
  import '../chunk-L6T44A3G.js';
4
4
  //# sourceMappingURL=core.js.map
5
5
  //# sourceMappingURL=core.js.map
@@ -2,7 +2,7 @@ import { CreatureAttachColumn, ObjectAspectRatio } from '@nodaro/shared/entities
2
2
  export { OBJECT_ASPECT_DEFAULTS as CREATURE_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS as CREATURE_ASPECT_OPTIONS, CREATURE_ATTACH_COLUMNS, ObjectAspectRatio as CreatureAspectRatio, CreatureAttachColumn } from '@nodaro/shared/entities';
3
3
  import { TtsProvider } from '@nodaro/shared/models';
4
4
  import { N as NodaroClientCore } from '../developer-apps-zSQXWmEG.cjs';
5
- import { l as GenerationSessionParams } from '../nodes-DzBGNOUV.cjs';
5
+ import { l as GenerationSessionParams } from '../nodes-Szl6HrZ_.cjs';
6
6
  import '@nodaro/shared/apps';
7
7
  import '@nodaro/shared/organizations';
8
8
  import '@nodaro/shared/types';
@@ -2,7 +2,7 @@ import { CreatureAttachColumn, ObjectAspectRatio } from '@nodaro/shared/entities
2
2
  export { OBJECT_ASPECT_DEFAULTS as CREATURE_ASPECT_DEFAULTS, OBJECT_ASPECT_OPTIONS as CREATURE_ASPECT_OPTIONS, CREATURE_ATTACH_COLUMNS, ObjectAspectRatio as CreatureAspectRatio, CreatureAttachColumn } from '@nodaro/shared/entities';
3
3
  import { TtsProvider } from '@nodaro/shared/models';
4
4
  import { N as NodaroClientCore } from '../developer-apps-zSQXWmEG.js';
5
- import { l as GenerationSessionParams } from '../nodes-B4ZEqx2V.js';
5
+ import { l as GenerationSessionParams } from '../nodes-MThDit8l.js';
6
6
  import '@nodaro/shared/apps';
7
7
  import '@nodaro/shared/organizations';
8
8
  import '@nodaro/shared/types';
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  require('../chunk-ALUUBPDG.cjs');
4
- var chunkPQ7OKM3E_cjs = require('../chunk-PQ7OKM3E.cjs');
4
+ var chunkFIMBPKIH_cjs = require('../chunk-FIMBPKIH.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "CreditsResource", {
9
9
  enumerable: true,
10
- get: function () { return chunkPQ7OKM3E_cjs.CreditsResource; }
10
+ get: function () { return chunkFIMBPKIH_cjs.CreditsResource; }
11
11
  });
12
12
  //# sourceMappingURL=credits.cjs.map
13
13
  //# sourceMappingURL=credits.cjs.map
@@ -118,7 +118,7 @@ interface ModelCostsResult {
118
118
  * The identifiers in `data` whose figure is an ESTIMATE, not a fixed price:
119
119
  * metered LLM price keys (`llmPriceKey` from `@nodaro/shared/llm-models`,
120
120
  * `<feature>:<model>[:direct]`), charged on what the call actually uses.
121
- * Show these as `~N`. Omitted when there are none, so a batch of fixed ids
121
+ * Show these as `≈N`. Omitted when there are none, so a batch of fixed ids
122
122
  * answers exactly as it always has. A metered key that lands in `missing`
123
123
  * instead means the server is not pricing LLM calls per model — show no
124
124
  * price for it.
@@ -135,7 +135,7 @@ interface ModelCostError {
135
135
  /**
136
136
  * Result of `GET /v1/credits/model-cost?model=<id>` (`data`): the credits one
137
137
  * identifier is charged. `estimate: true` marks a metered LLM price key's
138
- * figure as an estimate (show it as `~N`); such an answer is never cached.
138
+ * figure as an estimate (show it as `≈N`); such an answer is never cached.
139
139
  */
140
140
  interface ModelCostResult {
141
141
  model: string;
@@ -118,7 +118,7 @@ interface ModelCostsResult {
118
118
  * The identifiers in `data` whose figure is an ESTIMATE, not a fixed price:
119
119
  * metered LLM price keys (`llmPriceKey` from `@nodaro/shared/llm-models`,
120
120
  * `<feature>:<model>[:direct]`), charged on what the call actually uses.
121
- * Show these as `~N`. Omitted when there are none, so a batch of fixed ids
121
+ * Show these as `≈N`. Omitted when there are none, so a batch of fixed ids
122
122
  * answers exactly as it always has. A metered key that lands in `missing`
123
123
  * instead means the server is not pricing LLM calls per model — show no
124
124
  * price for it.
@@ -135,7 +135,7 @@ interface ModelCostError {
135
135
  /**
136
136
  * Result of `GET /v1/credits/model-cost?model=<id>` (`data`): the credits one
137
137
  * identifier is charged. `estimate: true` marks a metered LLM price key's
138
- * figure as an estimate (show it as `~N`); such an answer is never cached.
138
+ * figure as an estimate (show it as `≈N`); such an answer is never cached.
139
139
  */
140
140
  interface ModelCostResult {
141
141
  model: string;
@@ -1,4 +1,4 @@
1
1
  import '../chunk-V4GPQ6Y2.js';
2
- export { CreditsResource } from '../chunk-IGMWFEFB.js';
2
+ export { CreditsResource } from '../chunk-5MOJSYHI.js';
3
3
  //# sourceMappingURL=credits.js.map
4
4
  //# sourceMappingURL=credits.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk6T54F65Q_cjs = require('../chunk-6T54F65Q.cjs');
4
- var chunk7XOK277W_cjs = require('../chunk-7XOK277W.cjs');
4
+ var chunkSF2CMKWA_cjs = require('../chunk-SF2CMKWA.cjs');
5
5
  require('../chunk-FM2KM5TY.cjs');
6
6
 
7
7
 
@@ -12,23 +12,23 @@ Object.defineProperty(exports, "unwrapEditPlanOutput", {
12
12
  });
13
13
  Object.defineProperty(exports, "CLIP_PACK_MAX_TARGET_SEC", {
14
14
  enumerable: true,
15
- get: function () { return chunk7XOK277W_cjs.CLIP_PACK_MAX_TARGET_SEC; }
15
+ get: function () { return chunkSF2CMKWA_cjs.CLIP_PACK_MAX_TARGET_SEC; }
16
16
  });
17
17
  Object.defineProperty(exports, "CLIP_PACK_MIN_TARGET_SEC", {
18
18
  enumerable: true,
19
- get: function () { return chunk7XOK277W_cjs.CLIP_PACK_MIN_TARGET_SEC; }
19
+ get: function () { return chunkSF2CMKWA_cjs.CLIP_PACK_MIN_TARGET_SEC; }
20
20
  });
21
21
  Object.defineProperty(exports, "EditResource", {
22
22
  enumerable: true,
23
- get: function () { return chunk7XOK277W_cjs.EditResource; }
23
+ get: function () { return chunkSF2CMKWA_cjs.EditResource; }
24
24
  });
25
25
  Object.defineProperty(exports, "TRAILER_FORMATS", {
26
26
  enumerable: true,
27
- get: function () { return chunk7XOK277W_cjs.TRAILER_FORMATS; }
27
+ get: function () { return chunkSF2CMKWA_cjs.TRAILER_FORMATS; }
28
28
  });
29
29
  Object.defineProperty(exports, "USE_CASE_NODE_TYPES", {
30
30
  enumerable: true,
31
- get: function () { return chunk7XOK277W_cjs.USE_CASE_NODE_TYPES; }
31
+ get: function () { return chunkSF2CMKWA_cjs.USE_CASE_NODE_TYPES; }
32
32
  });
33
33
  //# sourceMappingURL=edit.cjs.map
34
34
  //# sourceMappingURL=edit.cjs.map
@@ -546,7 +546,7 @@ interface UseCaseEstimate {
546
546
  /** The per-run fee. */
547
547
  feeCredits: number;
548
548
  /** A step is a metered LLM call's ESTIMATE (charged its actual usage), so the
549
- * total is one: show it `~N`. Absent for a fixed figure. */
549
+ * total is one: show it `≈N`. Absent for a fixed figure. */
550
550
  estimate?: true;
551
551
  /** The recording's length, in seconds. */
552
552
  durationSec: number | null;
@@ -546,7 +546,7 @@ interface UseCaseEstimate {
546
546
  /** The per-run fee. */
547
547
  feeCredits: number;
548
548
  /** A step is a metered LLM call's ESTIMATE (charged its actual usage), so the
549
- * total is one: show it `~N`. Absent for a fixed figure. */
549
+ * total is one: show it `≈N`. Absent for a fixed figure. */
550
550
  estimate?: true;
551
551
  /** The recording's length, in seconds. */
552
552
  durationSec: number | null;