codai-sdk 0.69.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1003 -308
- package/dist/index.js +290 -193
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/http.ts
|
|
2
2
|
var CodaiError = class extends Error {
|
|
3
3
|
status;
|
|
4
4
|
body;
|
|
@@ -258,16 +258,14 @@ function sleep(ms) {
|
|
|
258
258
|
return new Promise((r) => setTimeout(r, ms));
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
-
|
|
262
|
-
//#region src/resources/_shared.ts
|
|
261
|
+
// src/resources/_shared.ts
|
|
263
262
|
function stripUndefined(obj) {
|
|
264
263
|
const out = {};
|
|
265
264
|
for (const [k, v] of Object.entries(obj)) if (v !== void 0) out[k] = v;
|
|
266
265
|
return out;
|
|
267
266
|
}
|
|
268
267
|
|
|
269
|
-
|
|
270
|
-
//#region src/resources/account.ts
|
|
268
|
+
// src/resources/account.ts
|
|
271
269
|
var Account = class {
|
|
272
270
|
http;
|
|
273
271
|
constructor(http) {
|
|
@@ -341,8 +339,7 @@ var PhoneModels = class {
|
|
|
341
339
|
}
|
|
342
340
|
};
|
|
343
341
|
|
|
344
|
-
|
|
345
|
-
//#region src/resources/agents.ts
|
|
342
|
+
// src/resources/agents.ts
|
|
346
343
|
/** `/v1/agents/*` — synchronous runs and the persisted async run lifecycle. */
|
|
347
344
|
var AgentRuns = class {
|
|
348
345
|
http;
|
|
@@ -436,8 +433,7 @@ var Agents = class {
|
|
|
436
433
|
}
|
|
437
434
|
};
|
|
438
435
|
|
|
439
|
-
|
|
440
|
-
//#region src/resources/audio.ts
|
|
436
|
+
// src/resources/audio.ts
|
|
441
437
|
/** `POST /v1/audio/transcriptions`, `POST /v1/audio/speech` and `POST /v1/audio/speech/stream`. */
|
|
442
438
|
function base64ToBytes$1(b64) {
|
|
443
439
|
const bin = atob(b64);
|
|
@@ -564,8 +560,7 @@ var Audio = class {
|
|
|
564
560
|
}
|
|
565
561
|
};
|
|
566
562
|
|
|
567
|
-
|
|
568
|
-
//#region src/resources/billing.ts
|
|
563
|
+
// src/resources/billing.ts
|
|
569
564
|
var Billing = class {
|
|
570
565
|
http;
|
|
571
566
|
constructor(http) {
|
|
@@ -637,8 +632,7 @@ var Billing = class {
|
|
|
637
632
|
}
|
|
638
633
|
};
|
|
639
634
|
|
|
640
|
-
|
|
641
|
-
//#region src/resources/cards.ts
|
|
635
|
+
// src/resources/cards.ts
|
|
642
636
|
var Cards = class {
|
|
643
637
|
http;
|
|
644
638
|
constructor(http) {
|
|
@@ -765,8 +759,7 @@ var Cards = class {
|
|
|
765
759
|
}
|
|
766
760
|
};
|
|
767
761
|
|
|
768
|
-
|
|
769
|
-
//#region src/resources/chat.ts
|
|
762
|
+
// src/resources/chat.ts
|
|
770
763
|
/** `POST /v1/chat/completions` — OpenAI-compatible completions (JSON + SSE). */
|
|
771
764
|
function toUsage(u) {
|
|
772
765
|
if (!u) return null;
|
|
@@ -905,8 +898,7 @@ var Chat = class {
|
|
|
905
898
|
}
|
|
906
899
|
};
|
|
907
900
|
|
|
908
|
-
|
|
909
|
-
//#region src/resources/devices.ts
|
|
901
|
+
// src/resources/devices.ts
|
|
910
902
|
var Devices = class {
|
|
911
903
|
http;
|
|
912
904
|
constructor(http) {
|
|
@@ -960,8 +952,7 @@ var Devices = class {
|
|
|
960
952
|
}
|
|
961
953
|
};
|
|
962
954
|
|
|
963
|
-
|
|
964
|
-
//#region src/resources/embeddings.ts
|
|
955
|
+
// src/resources/embeddings.ts
|
|
965
956
|
var Embeddings = class {
|
|
966
957
|
http;
|
|
967
958
|
constructor(http) {
|
|
@@ -987,8 +978,7 @@ var Embeddings = class {
|
|
|
987
978
|
}
|
|
988
979
|
};
|
|
989
980
|
|
|
990
|
-
|
|
991
|
-
//#region src/resources/environments.ts
|
|
981
|
+
// src/resources/environments.ts
|
|
992
982
|
const envPath = (id, suffix = "") => `/v1/environments/${encodeURIComponent(id)}${suffix}`;
|
|
993
983
|
/** Absolute environment path → `/files/<each segment URL-encoded>`. */
|
|
994
984
|
const filePath$1 = (path) => path.replace(/^\/+/, "").split("/").map((s) => encodeURIComponent(s)).join("/");
|
|
@@ -1332,8 +1322,7 @@ var Environments = class {
|
|
|
1332
1322
|
}
|
|
1333
1323
|
};
|
|
1334
1324
|
|
|
1335
|
-
|
|
1336
|
-
//#region src/resources/health.ts
|
|
1325
|
+
// src/resources/health.ts
|
|
1337
1326
|
var Health = class {
|
|
1338
1327
|
http;
|
|
1339
1328
|
constructor(http) {
|
|
@@ -1370,8 +1359,7 @@ var Health = class {
|
|
|
1370
1359
|
}
|
|
1371
1360
|
};
|
|
1372
1361
|
|
|
1373
|
-
|
|
1374
|
-
//#region src/resources/hosts.ts
|
|
1362
|
+
// src/resources/hosts.ts
|
|
1375
1363
|
/** `/v1/hosts/*` — host relay (desktop announces itself; clients exec ops on it). */
|
|
1376
1364
|
var Hosts = class {
|
|
1377
1365
|
http;
|
|
@@ -1438,8 +1426,7 @@ var Hosts = class {
|
|
|
1438
1426
|
}
|
|
1439
1427
|
};
|
|
1440
1428
|
|
|
1441
|
-
|
|
1442
|
-
//#region src/resources/assets.ts
|
|
1429
|
+
// src/resources/assets.ts
|
|
1443
1430
|
/** True for a `data` item that is a stored asset rather than inline base64. */
|
|
1444
1431
|
function isAssetDto(item) {
|
|
1445
1432
|
return typeof item === "object" && item !== null && "asset_id" in item;
|
|
@@ -1514,8 +1501,7 @@ var Assets = class {
|
|
|
1514
1501
|
}
|
|
1515
1502
|
};
|
|
1516
1503
|
|
|
1517
|
-
|
|
1518
|
-
//#region src/resources/images.ts
|
|
1504
|
+
// src/resources/images.ts
|
|
1519
1505
|
/** Image generation typically takes 5–30 s; the gateway allows 120 s upstream. */
|
|
1520
1506
|
const MIN_IMAGE_TIMEOUT_MS = 15e4;
|
|
1521
1507
|
function decodeBase64$1(b64) {
|
|
@@ -1573,8 +1559,7 @@ var Images = class {
|
|
|
1573
1559
|
}
|
|
1574
1560
|
};
|
|
1575
1561
|
|
|
1576
|
-
|
|
1577
|
-
//#region src/resources/media.ts
|
|
1562
|
+
// src/resources/media.ts
|
|
1578
1563
|
/** Lyria 3 Pro can take minutes for a long song; the gateway allows 240 s upstream (+ lyrics check). */
|
|
1579
1564
|
const MIN_MUSIC_TIMEOUT_MS = 3e5;
|
|
1580
1565
|
function decodeBase64(b64) {
|
|
@@ -1583,7 +1568,7 @@ function decodeBase64(b64) {
|
|
|
1583
1568
|
for (let i = 0; i < bin.length; i++) out[i] = bin.charCodeAt(i);
|
|
1584
1569
|
return out;
|
|
1585
1570
|
}
|
|
1586
|
-
function abortableSleep$
|
|
1571
|
+
function abortableSleep$8(ms, signal) {
|
|
1587
1572
|
return new Promise((resolve, reject) => {
|
|
1588
1573
|
if (signal?.aborted) return reject(signal.reason ?? /* @__PURE__ */ new Error("Aborted"));
|
|
1589
1574
|
const t = setTimeout(() => {
|
|
@@ -1698,7 +1683,7 @@ var Videos = class {
|
|
|
1698
1683
|
}
|
|
1699
1684
|
if (st.status === "failed" || st.status === "filtered") throw new Error(`codai video job ${st.status}: ${st.error ?? "no details"}`);
|
|
1700
1685
|
if (Date.now() + pollIntervalMs > deadline) throw new Error(`codai video job ${job.id} did not finish within ${timeoutMs} ms`);
|
|
1701
|
-
await abortableSleep$
|
|
1686
|
+
await abortableSleep$8(pollIntervalMs, signal);
|
|
1702
1687
|
}
|
|
1703
1688
|
}
|
|
1704
1689
|
};
|
|
@@ -1797,14 +1782,13 @@ var Renders = class {
|
|
|
1797
1782
|
}
|
|
1798
1783
|
if (st.status === "failed") throw new Error(`codai render failed: ${st.error ?? "no details"}`);
|
|
1799
1784
|
if (Date.now() + pollIntervalMs > deadline) throw new Error(`codai render ${job.id} did not finish within ${timeoutMs} ms`);
|
|
1800
|
-
await abortableSleep$
|
|
1785
|
+
await abortableSleep$8(pollIntervalMs, signal);
|
|
1801
1786
|
}
|
|
1802
1787
|
}
|
|
1803
1788
|
};
|
|
1804
1789
|
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
function abortableSleep$6(ms, signal) {
|
|
1790
|
+
// src/resources/documents.ts
|
|
1791
|
+
function abortableSleep$7(ms, signal) {
|
|
1808
1792
|
return new Promise((resolve, reject) => {
|
|
1809
1793
|
if (signal?.aborted) return reject(signal.reason ?? /* @__PURE__ */ new Error("Aborted"));
|
|
1810
1794
|
const t = setTimeout(() => {
|
|
@@ -1897,7 +1881,7 @@ var Documents = class {
|
|
|
1897
1881
|
if (st.status === "succeeded") return st;
|
|
1898
1882
|
if (st.status === "failed") throw new Error(`codai document preview failed: ${st.error ?? "no details"}`);
|
|
1899
1883
|
if (Date.now() + pollIntervalMs > deadline) throw new Error(`codai document preview ${job.id} did not finish within ${timeoutMs} ms`);
|
|
1900
|
-
await abortableSleep$
|
|
1884
|
+
await abortableSleep$7(pollIntervalMs, signal);
|
|
1901
1885
|
}
|
|
1902
1886
|
}
|
|
1903
1887
|
/** Queue a deck video and poll `renders.retrieve` until it succeeds. Throws on `failed` or timeout. */
|
|
@@ -1929,15 +1913,14 @@ var Documents = class {
|
|
|
1929
1913
|
}
|
|
1930
1914
|
if (st.status === "failed") throw new Error(`codai deck video failed: ${st.error ?? "no details"}`);
|
|
1931
1915
|
if (Date.now() + pollIntervalMs > deadline) throw new Error(`codai deck video ${accepted.id} did not finish within ${timeoutMs} ms`);
|
|
1932
|
-
await abortableSleep$
|
|
1916
|
+
await abortableSleep$7(pollIntervalMs, signal);
|
|
1933
1917
|
}
|
|
1934
1918
|
}
|
|
1935
1919
|
};
|
|
1936
1920
|
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
function abortableSleep$5(ms, signal) {
|
|
1921
|
+
// src/resources/exports.ts
|
|
1922
|
+
const path$7 = (id) => `/v1/studio/exports/${encodeURIComponent(id)}`;
|
|
1923
|
+
function abortableSleep$6(ms, signal) {
|
|
1941
1924
|
return new Promise((resolve, reject) => {
|
|
1942
1925
|
if (signal?.aborted) return reject(signal.reason ?? /* @__PURE__ */ new Error("Aborted"));
|
|
1943
1926
|
const t = setTimeout(() => {
|
|
@@ -1958,7 +1941,7 @@ var Exports = class {
|
|
|
1958
1941
|
}
|
|
1959
1942
|
/** The export: `queued` / `running`, then `succeeded` (signed `url`, valid 1 h) or `failed` (`error`). Free. */
|
|
1960
1943
|
retrieve(id, opts = {}) {
|
|
1961
|
-
return this.http.json(path$
|
|
1944
|
+
return this.http.json(path$7(id), {
|
|
1962
1945
|
ext: opts.ext,
|
|
1963
1946
|
signal: opts.signal
|
|
1964
1947
|
});
|
|
@@ -1978,16 +1961,15 @@ var Exports = class {
|
|
|
1978
1961
|
});
|
|
1979
1962
|
if (st.status === "succeeded" || st.status === "failed") return st;
|
|
1980
1963
|
if (Date.now() + intervalMs > deadline) throw new Error(`codai export ${id} did not finish within ${timeoutMs} ms`);
|
|
1981
|
-
await abortableSleep$
|
|
1964
|
+
await abortableSleep$6(intervalMs, signal);
|
|
1982
1965
|
}
|
|
1983
1966
|
}
|
|
1984
1967
|
};
|
|
1985
1968
|
|
|
1986
|
-
|
|
1987
|
-
//#region src/resources/creatives.ts
|
|
1969
|
+
// src/resources/creatives.ts
|
|
1988
1970
|
/** True when a `build` answer is the 202 carousel / print export job (poll `exports.wait(r.export.id)`). */
|
|
1989
1971
|
const isPagedBuild = (r) => "export" in r && r.export != null;
|
|
1990
|
-
const path$
|
|
1972
|
+
const path$6 = (id, tail = "") => `/v1/studio/creatives/${encodeURIComponent(id)}${tail}`;
|
|
1991
1973
|
const lottieQuery = (q) => ({
|
|
1992
1974
|
format: q.format,
|
|
1993
1975
|
formats: q.formats,
|
|
@@ -2027,7 +2009,7 @@ var Creatives = class {
|
|
|
2027
2009
|
}
|
|
2028
2010
|
/** The document at the head (or `seq`) with signed `assets` (1 h URLs). */
|
|
2029
2011
|
retrieve(id, query = {}, opts = {}) {
|
|
2030
|
-
return this.http.json(path$
|
|
2012
|
+
return this.http.json(path$6(id), {
|
|
2031
2013
|
query: { seq: query.seq },
|
|
2032
2014
|
ext: opts.ext,
|
|
2033
2015
|
signal: opts.signal
|
|
@@ -2035,14 +2017,14 @@ var Creatives = class {
|
|
|
2035
2017
|
}
|
|
2036
2018
|
/** Compact text outline (+ formats and vars) — the cheapest structure for a prompt. */
|
|
2037
2019
|
outline(id, opts = {}) {
|
|
2038
|
-
return this.http.json(path$
|
|
2020
|
+
return this.http.json(path$6(id, "/outline"), {
|
|
2039
2021
|
ext: opts.ext,
|
|
2040
2022
|
signal: opts.signal
|
|
2041
2023
|
});
|
|
2042
2024
|
}
|
|
2043
2025
|
/** Node ids matching `query` (a string = text/name/id substring, or `{ text, type, sceneId, assetId, locked }`). */
|
|
2044
2026
|
find(id, query, opts = {}) {
|
|
2045
|
-
return this.http.json(path$
|
|
2027
|
+
return this.http.json(path$6(id, "/find"), {
|
|
2046
2028
|
method: "POST",
|
|
2047
2029
|
body: { query },
|
|
2048
2030
|
ext: opts.ext,
|
|
@@ -2051,7 +2033,7 @@ var Creatives = class {
|
|
|
2051
2033
|
}
|
|
2052
2034
|
/** Full JSON of `ids` (scene ids return whole scenes) or of one `sceneId`. */
|
|
2053
2035
|
subtree(id, body, opts = {}) {
|
|
2054
|
-
return this.http.json(path$
|
|
2036
|
+
return this.http.json(path$6(id, "/subtree"), {
|
|
2055
2037
|
method: "POST",
|
|
2056
2038
|
body,
|
|
2057
2039
|
ext: opts.ext,
|
|
@@ -2064,7 +2046,7 @@ var Creatives = class {
|
|
|
2064
2046
|
* ops throw 400 with `code` (`invalid`, `not_found`, `locked`, `duplicate_id`).
|
|
2065
2047
|
*/
|
|
2066
2048
|
edit(id, body, opts = {}) {
|
|
2067
|
-
return this.http.json(path$
|
|
2049
|
+
return this.http.json(path$6(id, "/ops"), {
|
|
2068
2050
|
method: "POST",
|
|
2069
2051
|
body: {
|
|
2070
2052
|
base_seq: body.baseSeq,
|
|
@@ -2080,7 +2062,7 @@ var Creatives = class {
|
|
|
2080
2062
|
}
|
|
2081
2063
|
/** Version history, newest first (`beforeSeq` pages). */
|
|
2082
2064
|
versions(id, query = {}, opts = {}) {
|
|
2083
|
-
return this.http.json(path$
|
|
2065
|
+
return this.http.json(path$6(id, "/versions"), {
|
|
2084
2066
|
query: {
|
|
2085
2067
|
before_seq: query.beforeSeq,
|
|
2086
2068
|
limit: query.limit
|
|
@@ -2091,7 +2073,7 @@ var Creatives = class {
|
|
|
2091
2073
|
}
|
|
2092
2074
|
/** New head whose document is version `seq`'s (undo / redo). */
|
|
2093
2075
|
revert(id, seq, opts = {}) {
|
|
2094
|
-
return this.http.json(path$
|
|
2076
|
+
return this.http.json(path$6(id, "/revert"), {
|
|
2095
2077
|
method: "POST",
|
|
2096
2078
|
body: { seq },
|
|
2097
2079
|
ext: opts.ext,
|
|
@@ -2101,7 +2083,7 @@ var Creatives = class {
|
|
|
2101
2083
|
}
|
|
2102
2084
|
/** New creative from version `seq` (default the head). */
|
|
2103
2085
|
fork(id, body = {}, opts = {}) {
|
|
2104
|
-
return this.http.json(path$
|
|
2086
|
+
return this.http.json(path$6(id, "/fork"), {
|
|
2105
2087
|
method: "POST",
|
|
2106
2088
|
body,
|
|
2107
2089
|
ext: opts.ext,
|
|
@@ -2111,7 +2093,7 @@ var Creatives = class {
|
|
|
2111
2093
|
}
|
|
2112
2094
|
/** Soft-delete the creative. */
|
|
2113
2095
|
delete(id, opts = {}) {
|
|
2114
|
-
return this.http.json(path$
|
|
2096
|
+
return this.http.json(path$6(id), {
|
|
2115
2097
|
method: "DELETE",
|
|
2116
2098
|
ext: opts.ext,
|
|
2117
2099
|
signal: opts.signal
|
|
@@ -2124,7 +2106,7 @@ var Creatives = class {
|
|
|
2124
2106
|
* `text_overflow_locale`); 404 `Locale not found.` for an unknown locale.
|
|
2125
2107
|
*/
|
|
2126
2108
|
lint(id, body = {}, opts = {}) {
|
|
2127
|
-
return this.http.json(path$
|
|
2109
|
+
return this.http.json(path$6(id, "/lint"), {
|
|
2128
2110
|
method: "POST",
|
|
2129
2111
|
...body.locale !== void 0 ? { body: { locale: body.locale } } : {},
|
|
2130
2112
|
ext: opts.ext,
|
|
@@ -2133,7 +2115,7 @@ var Creatives = class {
|
|
|
2133
2115
|
}
|
|
2134
2116
|
/** Preview HTML (signed asset URLs) for `format` / one `scene` / a translation (`locale`). */
|
|
2135
2117
|
compiled(id, query = {}, opts = {}) {
|
|
2136
|
-
return this.http.json(path$
|
|
2118
|
+
return this.http.json(path$6(id, "/compiled"), {
|
|
2137
2119
|
query: {
|
|
2138
2120
|
format: query.format,
|
|
2139
2121
|
scene: query.scene,
|
|
@@ -2152,7 +2134,7 @@ var Creatives = class {
|
|
|
2152
2134
|
* `corner` when the creative uses TTS narration or AI images, else `none` (`none` with narration: 400 `ai_label_required`).
|
|
2153
2135
|
*/
|
|
2154
2136
|
render(id, body = {}, opts = {}) {
|
|
2155
|
-
return this.http.json(path$
|
|
2137
|
+
return this.http.json(path$6(id, "/render"), {
|
|
2156
2138
|
method: "POST",
|
|
2157
2139
|
body,
|
|
2158
2140
|
ext: opts.ext,
|
|
@@ -2169,7 +2151,7 @@ var Creatives = class {
|
|
|
2169
2151
|
* 400 `empty_audio` / `too_long` (20 min) / `no_lyrics`; video creatives use `render`.
|
|
2170
2152
|
*/
|
|
2171
2153
|
renderAudio(id, body = {}, opts = {}) {
|
|
2172
|
-
return this.http.json(path$
|
|
2154
|
+
return this.http.json(path$6(id, "/render"), {
|
|
2173
2155
|
method: "POST",
|
|
2174
2156
|
body,
|
|
2175
2157
|
headers: opts.idempotencyKey ? { "Idempotency-Key": opts.idempotencyKey } : void 0,
|
|
@@ -2185,7 +2167,7 @@ var Creatives = class {
|
|
|
2185
2167
|
* jobs per UTC day are free, then billed (`billed_micro_usd`).
|
|
2186
2168
|
*/
|
|
2187
2169
|
frame(id, body, opts = {}) {
|
|
2188
|
-
return this.http.json(path$
|
|
2170
|
+
return this.http.json(path$6(id, "/frame"), {
|
|
2189
2171
|
method: "POST",
|
|
2190
2172
|
body,
|
|
2191
2173
|
ext: opts.ext,
|
|
@@ -2200,7 +2182,7 @@ var Creatives = class {
|
|
|
2200
2182
|
* Token-metered like any `codai` text call.
|
|
2201
2183
|
*/
|
|
2202
2184
|
comment(id, body, opts = {}) {
|
|
2203
|
-
return this.http.json(path$
|
|
2185
|
+
return this.http.json(path$6(id, "/comments"), {
|
|
2204
2186
|
method: "POST",
|
|
2205
2187
|
body,
|
|
2206
2188
|
ext: opts.ext,
|
|
@@ -2215,7 +2197,7 @@ var Creatives = class {
|
|
|
2215
2197
|
* until `pickVariant`. 422 `no_edit` when no valid variant came back, 504 `timeout` after 90 s. Token-metered.
|
|
2216
2198
|
*/
|
|
2217
2199
|
variants(id, body, opts = {}) {
|
|
2218
|
-
return this.http.json(path$
|
|
2200
|
+
return this.http.json(path$6(id, "/variants"), {
|
|
2219
2201
|
method: "POST",
|
|
2220
2202
|
body,
|
|
2221
2203
|
ext: opts.ext,
|
|
@@ -2225,7 +2207,7 @@ var Creatives = class {
|
|
|
2225
2207
|
}
|
|
2226
2208
|
/** The latest variant group of a creative (`group_id: null` when none) with statuses and stored render state. */
|
|
2227
2209
|
listVariants(id, opts = {}) {
|
|
2228
|
-
return this.http.json(path$
|
|
2210
|
+
return this.http.json(path$6(id, "/variants"), {
|
|
2229
2211
|
ext: opts.ext,
|
|
2230
2212
|
signal: opts.signal
|
|
2231
2213
|
});
|
|
@@ -2235,7 +2217,7 @@ var Creatives = class {
|
|
|
2235
2217
|
* else); the winner is marked `winner`, the rest of its group `rejected`.
|
|
2236
2218
|
*/
|
|
2237
2219
|
pickVariant(id, variantId, body, opts = {}) {
|
|
2238
|
-
return this.http.json(path$
|
|
2220
|
+
return this.http.json(path$6(id, `/variants/${encodeURIComponent(variantId)}/pick`), {
|
|
2239
2221
|
method: "POST",
|
|
2240
2222
|
body,
|
|
2241
2223
|
ext: opts.ext,
|
|
@@ -2249,7 +2231,7 @@ var Creatives = class {
|
|
|
2249
2231
|
* 400 `node_not_found` / `invalid_pick` / `duplicate_key`. Free.
|
|
2250
2232
|
*/
|
|
2251
2233
|
saveTemplate(id, body, opts = {}) {
|
|
2252
|
-
return this.http.json(path$
|
|
2234
|
+
return this.http.json(path$6(id, "/template"), {
|
|
2253
2235
|
method: "POST",
|
|
2254
2236
|
body,
|
|
2255
2237
|
ext: opts.ext,
|
|
@@ -2264,7 +2246,7 @@ var Creatives = class {
|
|
|
2264
2246
|
* rendered seconds are billed (final render price). 400 `unsupported_kind` / `unsupported_format` / `too_long`.
|
|
2265
2247
|
*/
|
|
2266
2248
|
exportFcpxml(id, query = {}, opts = {}) {
|
|
2267
|
-
return this.http.json(path$
|
|
2249
|
+
return this.http.json(path$6(id, "/export.fcpxml"), {
|
|
2268
2250
|
query: {
|
|
2269
2251
|
format: query.format,
|
|
2270
2252
|
seq: query.seq
|
|
@@ -2282,7 +2264,7 @@ var Creatives = class {
|
|
|
2282
2264
|
* 400 `unsupported_kind` / `invalid_request`, 413 `too_large` (over 20 MB).
|
|
2283
2265
|
*/
|
|
2284
2266
|
exportLottie(id, query = {}, opts = {}) {
|
|
2285
|
-
return this.http.json(path$
|
|
2267
|
+
return this.http.json(path$6(id, "/export.lottie"), {
|
|
2286
2268
|
query: lottieQuery(query),
|
|
2287
2269
|
ext: opts.ext,
|
|
2288
2270
|
signal: opts.signal,
|
|
@@ -2294,7 +2276,7 @@ var Creatives = class {
|
|
|
2294
2276
|
* for a dotLottie archive or a zip of JSON files (`formats: 'all'`). Same options and errors as `exportLottie`. Free.
|
|
2295
2277
|
*/
|
|
2296
2278
|
async downloadLottie(id, query = {}, opts = {}) {
|
|
2297
|
-
const res = await this.http.request(path$
|
|
2279
|
+
const res = await this.http.request(path$6(id, "/export.lottie"), {
|
|
2298
2280
|
query: {
|
|
2299
2281
|
...lottieQuery(query),
|
|
2300
2282
|
download: "1"
|
|
@@ -2335,7 +2317,7 @@ var Creatives = class {
|
|
|
2335
2317
|
* `buildAndWait`.
|
|
2336
2318
|
*/
|
|
2337
2319
|
build(id, body = {}, opts = {}) {
|
|
2338
|
-
return this.http.json(path$
|
|
2320
|
+
return this.http.json(path$6(id, "/build"), {
|
|
2339
2321
|
method: "POST",
|
|
2340
2322
|
body: stripUndefined(body),
|
|
2341
2323
|
ext: opts.ext,
|
|
@@ -2365,7 +2347,7 @@ var Creatives = class {
|
|
|
2365
2347
|
* `not_supported_for_kind`, 422 `no_post_copy`, 504 `timeout`. `idempotencyKey` replays a retry (24 h).
|
|
2366
2348
|
*/
|
|
2367
2349
|
postCopy(id, body = {}, opts = {}) {
|
|
2368
|
-
return this.http.json(path$
|
|
2350
|
+
return this.http.json(path$6(id, "/post-copy"), {
|
|
2369
2351
|
method: "POST",
|
|
2370
2352
|
body: stripUndefined(body),
|
|
2371
2353
|
headers: opts.idempotencyKey ? { "Idempotency-Key": opts.idempotencyKey } : void 0,
|
|
@@ -2381,7 +2363,7 @@ var Creatives = class {
|
|
|
2381
2363
|
* (run `captions` on that clip first) or `stale`; video creatives only.
|
|
2382
2364
|
*/
|
|
2383
2365
|
transcriptCut(id, body, opts = {}) {
|
|
2384
|
-
return this.http.json(path$
|
|
2366
|
+
return this.http.json(path$6(id, "/transcript-cut"), {
|
|
2385
2367
|
method: "POST",
|
|
2386
2368
|
body: stripUndefined(body),
|
|
2387
2369
|
ext: opts.ext,
|
|
@@ -2397,7 +2379,7 @@ var Creatives = class {
|
|
|
2397
2379
|
* replays a retry (24 h).
|
|
2398
2380
|
*/
|
|
2399
2381
|
regenerateNode(id, nodeId, body, opts = {}) {
|
|
2400
|
-
return this.http.json(path$
|
|
2382
|
+
return this.http.json(path$6(id, `/nodes/${encodeURIComponent(nodeId)}/regenerate`), {
|
|
2401
2383
|
method: "POST",
|
|
2402
2384
|
body: stripUndefined(body),
|
|
2403
2385
|
headers: opts.idempotencyKey ? { "Idempotency-Key": opts.idempotencyKey } : void 0,
|
|
@@ -2413,7 +2395,7 @@ var Creatives = class {
|
|
|
2413
2395
|
* logo is registered too. `base_seq` defaults to the head (rebased like `edit`, 409 `stale` else). Free.
|
|
2414
2396
|
*/
|
|
2415
2397
|
restyle(id, body, opts = {}) {
|
|
2416
|
-
return this.http.json(path$
|
|
2398
|
+
return this.http.json(path$6(id, "/restyle"), {
|
|
2417
2399
|
method: "POST",
|
|
2418
2400
|
body: stripUndefined(body),
|
|
2419
2401
|
ext: opts.ext,
|
|
@@ -2429,7 +2411,7 @@ var Creatives = class {
|
|
|
2429
2411
|
* `unsupported_kind`); 403 `residency_unavailable`, 503 `transcription_unavailable`.
|
|
2430
2412
|
*/
|
|
2431
2413
|
captions(id, body = {}, opts = {}) {
|
|
2432
|
-
return this.http.json(path$
|
|
2414
|
+
return this.http.json(path$6(id, "/captions"), {
|
|
2433
2415
|
method: "POST",
|
|
2434
2416
|
body: stripUndefined(body),
|
|
2435
2417
|
ext: opts.ext,
|
|
@@ -2439,7 +2421,7 @@ var Creatives = class {
|
|
|
2439
2421
|
}
|
|
2440
2422
|
/** The captions as SubRip text on the document timeline (`node_id`, `seq` optional); 404 without captions. Free. */
|
|
2441
2423
|
async captionsSrt(id, query = {}, opts = {}) {
|
|
2442
|
-
return (await this.http.request(path$
|
|
2424
|
+
return (await this.http.request(path$6(id, "/captions.srt"), {
|
|
2443
2425
|
query: {
|
|
2444
2426
|
node_id: query.node_id,
|
|
2445
2427
|
seq: query.seq,
|
|
@@ -2451,7 +2433,7 @@ var Creatives = class {
|
|
|
2451
2433
|
}
|
|
2452
2434
|
/** The captions as WebVTT text on the document timeline (`node_id`, `seq` optional); 404 without captions. Free. */
|
|
2453
2435
|
async captionsVtt(id, query = {}, opts = {}) {
|
|
2454
|
-
return (await this.http.request(path$
|
|
2436
|
+
return (await this.http.request(path$6(id, "/captions.vtt"), {
|
|
2455
2437
|
query: {
|
|
2456
2438
|
node_id: query.node_id,
|
|
2457
2439
|
seq: query.seq,
|
|
@@ -2467,7 +2449,7 @@ var Creatives = class {
|
|
|
2467
2449
|
* `focal: 'vision'` (token-metered) finds the focal point of full-bleed images; it fails open. Free otherwise.
|
|
2468
2450
|
*/
|
|
2469
2451
|
adapt(id, body, opts = {}) {
|
|
2470
|
-
return this.http.json(path$
|
|
2452
|
+
return this.http.json(path$6(id, "/adapt"), {
|
|
2471
2453
|
method: "POST",
|
|
2472
2454
|
body: stripUndefined(body),
|
|
2473
2455
|
ext: opts.ext,
|
|
@@ -2481,7 +2463,7 @@ var Creatives = class {
|
|
|
2481
2463
|
* to one `codai` turn. Nothing to fix: the current `seq`, empty `fixed`, no new version.
|
|
2482
2464
|
*/
|
|
2483
2465
|
lintFix(id, body = {}, opts = {}) {
|
|
2484
|
-
return this.http.json(path$
|
|
2466
|
+
return this.http.json(path$6(id, "/lint/fix"), {
|
|
2485
2467
|
method: "POST",
|
|
2486
2468
|
body: stripUndefined(body),
|
|
2487
2469
|
ext: opts.ext,
|
|
@@ -2494,7 +2476,7 @@ var Creatives = class {
|
|
|
2494
2476
|
* values with a `setVar` op and controls with a `setControl` op (`edit`). Free.
|
|
2495
2477
|
*/
|
|
2496
2478
|
controls(id, opts = {}) {
|
|
2497
|
-
return this.http.json(path$
|
|
2479
|
+
return this.http.json(path$6(id, "/controls"), {
|
|
2498
2480
|
ext: opts.ext,
|
|
2499
2481
|
signal: opts.signal
|
|
2500
2482
|
});
|
|
@@ -2504,7 +2486,7 @@ var Creatives = class {
|
|
|
2504
2486
|
* With `locale` (+ `units`, default 1) also the units of that locale (paged with `offset` / `limit` ≤ 500). Free.
|
|
2505
2487
|
*/
|
|
2506
2488
|
locales(id, query = {}, opts = {}) {
|
|
2507
|
-
return this.http.json(path$
|
|
2489
|
+
return this.http.json(path$6(id, "/locales"), {
|
|
2508
2490
|
query: {
|
|
2509
2491
|
locale: query.locale,
|
|
2510
2492
|
units: query.units,
|
|
@@ -2522,7 +2504,7 @@ var Creatives = class {
|
|
|
2522
2504
|
* 400 `nothing_to_translate`; 503 `localize_unavailable` when every locale failed.
|
|
2523
2505
|
*/
|
|
2524
2506
|
localize(id, body, opts = {}) {
|
|
2525
|
-
return this.http.json(path$
|
|
2507
|
+
return this.http.json(path$6(id, "/localize"), {
|
|
2526
2508
|
method: "POST",
|
|
2527
2509
|
body: stripUndefined(body),
|
|
2528
2510
|
ext: opts.ext,
|
|
@@ -2535,7 +2517,7 @@ var Creatives = class {
|
|
|
2535
2517
|
* title `<title> (<locale>)`). 404 `Locale not found.`. Free (HTTP 201).
|
|
2536
2518
|
*/
|
|
2537
2519
|
forkLocale(id, locale, body = {}, opts = {}) {
|
|
2538
|
-
return this.http.json(path$
|
|
2520
|
+
return this.http.json(path$6(id, `/locales/${encodeURIComponent(locale)}/fork`), {
|
|
2539
2521
|
method: "POST",
|
|
2540
2522
|
body: stripUndefined(body),
|
|
2541
2523
|
ext: opts.ext,
|
|
@@ -2549,7 +2531,7 @@ var Creatives = class {
|
|
|
2549
2531
|
* only in this answer (HTTP 201). 400 `unknown_seq`; 409 `too_many_shares` (20 active links). Free.
|
|
2550
2532
|
*/
|
|
2551
2533
|
createShare(id, body, opts = {}) {
|
|
2552
|
-
return this.http.json(path$
|
|
2534
|
+
return this.http.json(path$6(id, "/shares"), {
|
|
2553
2535
|
method: "POST",
|
|
2554
2536
|
body: stripUndefined(body),
|
|
2555
2537
|
ext: opts.ext,
|
|
@@ -2559,14 +2541,14 @@ var Creatives = class {
|
|
|
2559
2541
|
}
|
|
2560
2542
|
/** The active links (not revoked, not expired), newest first; `url` is always null. Free. */
|
|
2561
2543
|
listShares(id, opts = {}) {
|
|
2562
|
-
return this.http.json(path$
|
|
2544
|
+
return this.http.json(path$6(id, "/shares"), {
|
|
2563
2545
|
ext: opts.ext,
|
|
2564
2546
|
signal: opts.signal
|
|
2565
2547
|
});
|
|
2566
2548
|
}
|
|
2567
2549
|
/** Revoke a link: it answers 404 from now on. 404 when unknown or already revoked. Free. */
|
|
2568
2550
|
async revokeShare(id, shareId, opts = {}) {
|
|
2569
|
-
await this.http.request(path$
|
|
2551
|
+
await this.http.request(path$6(id, `/shares/${encodeURIComponent(shareId)}`), {
|
|
2570
2552
|
method: "DELETE",
|
|
2571
2553
|
ext: opts.ext,
|
|
2572
2554
|
signal: opts.signal
|
|
@@ -2577,14 +2559,14 @@ var Creatives = class {
|
|
|
2577
2559
|
* version (`approved_is_head` false once the creative changed), decider and thread counts. Free.
|
|
2578
2560
|
*/
|
|
2579
2561
|
review(id, opts = {}) {
|
|
2580
|
-
return this.http.json(path$
|
|
2562
|
+
return this.http.json(path$6(id, "/review"), {
|
|
2581
2563
|
ext: opts.ext,
|
|
2582
2564
|
signal: opts.signal
|
|
2583
2565
|
});
|
|
2584
2566
|
}
|
|
2585
2567
|
/** Send the head to review (`in_review`, earlier decision cleared) so approver links can decide. Free. */
|
|
2586
2568
|
requestReview(id, opts = {}) {
|
|
2587
|
-
return this.http.json(path$
|
|
2569
|
+
return this.http.json(path$6(id, "/review"), {
|
|
2588
2570
|
method: "POST",
|
|
2589
2571
|
body: { action: "request" },
|
|
2590
2572
|
ext: opts.ext,
|
|
@@ -2593,7 +2575,7 @@ var Creatives = class {
|
|
|
2593
2575
|
}
|
|
2594
2576
|
/** Back to `draft` (decision cleared, comments kept). Free. */
|
|
2595
2577
|
resetReview(id, opts = {}) {
|
|
2596
|
-
return this.http.json(path$
|
|
2578
|
+
return this.http.json(path$6(id, "/review"), {
|
|
2597
2579
|
method: "POST",
|
|
2598
2580
|
body: { action: "reset" },
|
|
2599
2581
|
ext: opts.ext,
|
|
@@ -2602,7 +2584,7 @@ var Creatives = class {
|
|
|
2602
2584
|
}
|
|
2603
2585
|
/** Comment threads, newest first (≤ 200), replies oldest first; `status` `open` | `resolved` | `all`. Free. */
|
|
2604
2586
|
reviewThreads(id, query = {}, opts = {}) {
|
|
2605
|
-
return this.http.json(path$
|
|
2587
|
+
return this.http.json(path$6(id, "/review/threads"), {
|
|
2606
2588
|
query: { status: query.status },
|
|
2607
2589
|
ext: opts.ext,
|
|
2608
2590
|
signal: opts.signal
|
|
@@ -2613,7 +2595,7 @@ var Creatives = class {
|
|
|
2613
2595
|
* 400 `unknown_node` / `unknown_scene`; HTTP 201). 409 `too_many_comments`. Free.
|
|
2614
2596
|
*/
|
|
2615
2597
|
createReviewThread(id, body, opts = {}) {
|
|
2616
|
-
return this.http.json(path$
|
|
2598
|
+
return this.http.json(path$6(id, "/review/threads"), {
|
|
2617
2599
|
method: "POST",
|
|
2618
2600
|
body: stripUndefined(body),
|
|
2619
2601
|
ext: opts.ext,
|
|
@@ -2623,7 +2605,7 @@ var Creatives = class {
|
|
|
2623
2605
|
}
|
|
2624
2606
|
/** Reply in a thread as the owner (HTTP 201) — returns the whole thread. Free. */
|
|
2625
2607
|
replyReviewThread(id, threadId, body, opts = {}) {
|
|
2626
|
-
return this.http.json(path$
|
|
2608
|
+
return this.http.json(path$6(id, `/review/threads/${encodeURIComponent(threadId)}/replies`), {
|
|
2627
2609
|
method: "POST",
|
|
2628
2610
|
body: { body: body.body },
|
|
2629
2611
|
ext: opts.ext,
|
|
@@ -2633,7 +2615,7 @@ var Creatives = class {
|
|
|
2633
2615
|
}
|
|
2634
2616
|
/** Resolve a thread. Free. */
|
|
2635
2617
|
resolveReviewThread(id, threadId, opts = {}) {
|
|
2636
|
-
return this.http.json(path$
|
|
2618
|
+
return this.http.json(path$6(id, `/review/threads/${encodeURIComponent(threadId)}/resolve`), {
|
|
2637
2619
|
method: "POST",
|
|
2638
2620
|
ext: opts.ext,
|
|
2639
2621
|
signal: opts.signal
|
|
@@ -2641,7 +2623,7 @@ var Creatives = class {
|
|
|
2641
2623
|
}
|
|
2642
2624
|
/** Reopen a resolved thread. Free. */
|
|
2643
2625
|
reopenReviewThread(id, threadId, opts = {}) {
|
|
2644
|
-
return this.http.json(path$
|
|
2626
|
+
return this.http.json(path$6(id, `/review/threads/${encodeURIComponent(threadId)}/reopen`), {
|
|
2645
2627
|
method: "POST",
|
|
2646
2628
|
ext: opts.ext,
|
|
2647
2629
|
signal: opts.signal
|
|
@@ -2649,7 +2631,7 @@ var Creatives = class {
|
|
|
2649
2631
|
}
|
|
2650
2632
|
/** Delete any comment (owner moderation; deleting a root hides the thread). 404 when unknown. Free. */
|
|
2651
2633
|
async deleteReviewComment(id, commentId, opts = {}) {
|
|
2652
|
-
await this.http.request(path$
|
|
2634
|
+
await this.http.request(path$6(id, `/review/comments/${encodeURIComponent(commentId)}`), {
|
|
2653
2635
|
method: "DELETE",
|
|
2654
2636
|
ext: opts.ext,
|
|
2655
2637
|
signal: opts.signal
|
|
@@ -2657,16 +2639,15 @@ var Creatives = class {
|
|
|
2657
2639
|
}
|
|
2658
2640
|
/** Poll a frame job: frames when done (`status: 'succeeded'`), `status: 'running'` meanwhile; 404 unknown job. */
|
|
2659
2641
|
frameJob(id, jobId, opts = {}) {
|
|
2660
|
-
return this.http.json(path$
|
|
2642
|
+
return this.http.json(path$6(id, `/frames/${encodeURIComponent(jobId)}`), {
|
|
2661
2643
|
ext: opts.ext,
|
|
2662
2644
|
signal: opts.signal
|
|
2663
2645
|
});
|
|
2664
2646
|
}
|
|
2665
2647
|
};
|
|
2666
2648
|
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
const path$4 = (id, tail = "") => `/v1/studio/brand-kits/${encodeURIComponent(id)}${tail}`;
|
|
2649
|
+
// src/resources/brand-kits.ts
|
|
2650
|
+
const path$5 = (id, tail = "") => `/v1/studio/brand-kits/${encodeURIComponent(id)}${tail}`;
|
|
2670
2651
|
var BrandKits = class {
|
|
2671
2652
|
http;
|
|
2672
2653
|
constructor(http) {
|
|
@@ -2691,7 +2672,7 @@ var BrandKits = class {
|
|
|
2691
2672
|
* `logo_asset_id: null` removes the logo. Creatives keep their tokens until `creatives.restyle`. Free.
|
|
2692
2673
|
*/
|
|
2693
2674
|
update(id, body, opts = {}) {
|
|
2694
|
-
return this.http.json(path$
|
|
2675
|
+
return this.http.json(path$5(id), {
|
|
2695
2676
|
method: "PATCH",
|
|
2696
2677
|
body,
|
|
2697
2678
|
ext: opts.ext,
|
|
@@ -2701,7 +2682,7 @@ var BrandKits = class {
|
|
|
2701
2682
|
}
|
|
2702
2683
|
/** The kit as a DTCG 2025.10 JSON document (`$extensions['ro.codai']` = kit id, name, logo asset id). Free. */
|
|
2703
2684
|
exportDtcg(id, opts = {}) {
|
|
2704
|
-
return this.http.json(path$
|
|
2685
|
+
return this.http.json(path$5(id, "/dtcg"), {
|
|
2705
2686
|
ext: opts.ext,
|
|
2706
2687
|
signal: opts.signal
|
|
2707
2688
|
});
|
|
@@ -2731,14 +2712,14 @@ var BrandKits = class {
|
|
|
2731
2712
|
}
|
|
2732
2713
|
/** One kit with a signed logo URL (1 h), its `dtcg` and the WCAG `contrast` pairs. Free. */
|
|
2733
2714
|
retrieve(id, opts = {}) {
|
|
2734
|
-
return this.http.json(path$
|
|
2715
|
+
return this.http.json(path$5(id), {
|
|
2735
2716
|
ext: opts.ext,
|
|
2736
2717
|
signal: opts.signal
|
|
2737
2718
|
});
|
|
2738
2719
|
}
|
|
2739
2720
|
/** Delete a kit (creatives keep their tokens; the logo asset stays). Free. */
|
|
2740
2721
|
delete(id, opts = {}) {
|
|
2741
|
-
return this.http.json(path$
|
|
2722
|
+
return this.http.json(path$5(id), {
|
|
2742
2723
|
method: "DELETE",
|
|
2743
2724
|
ext: opts.ext,
|
|
2744
2725
|
signal: opts.signal
|
|
@@ -2746,9 +2727,8 @@ var BrandKits = class {
|
|
|
2746
2727
|
}
|
|
2747
2728
|
};
|
|
2748
2729
|
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
const path$3 = (id) => `/v1/studio/templates/${encodeURIComponent(id)}`;
|
|
2730
|
+
// src/resources/templates.ts
|
|
2731
|
+
const path$4 = (id) => `/v1/studio/templates/${encodeURIComponent(id)}`;
|
|
2752
2732
|
var Templates = class {
|
|
2753
2733
|
http;
|
|
2754
2734
|
constructor(http) {
|
|
@@ -2775,14 +2755,14 @@ var Templates = class {
|
|
|
2775
2755
|
}
|
|
2776
2756
|
/** One template with its variables and `doc`. Free. */
|
|
2777
2757
|
retrieve(id, opts = {}) {
|
|
2778
|
-
return this.http.json(path$
|
|
2758
|
+
return this.http.json(path$4(id), {
|
|
2779
2759
|
ext: opts.ext,
|
|
2780
2760
|
signal: opts.signal
|
|
2781
2761
|
});
|
|
2782
2762
|
}
|
|
2783
2763
|
/** Delete a template (creatives made from it are not affected). Free. */
|
|
2784
2764
|
delete(id, opts = {}) {
|
|
2785
|
-
return this.http.json(path$
|
|
2765
|
+
return this.http.json(path$4(id), {
|
|
2786
2766
|
method: "DELETE",
|
|
2787
2767
|
ext: opts.ext,
|
|
2788
2768
|
signal: opts.signal
|
|
@@ -2790,10 +2770,9 @@ var Templates = class {
|
|
|
2790
2770
|
}
|
|
2791
2771
|
};
|
|
2792
2772
|
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
function abortableSleep$4(ms, signal) {
|
|
2773
|
+
// src/resources/productions.ts
|
|
2774
|
+
const path$3 = (id) => `/v1/studio/productions/${encodeURIComponent(id)}`;
|
|
2775
|
+
function abortableSleep$5(ms, signal) {
|
|
2797
2776
|
return new Promise((resolve, reject) => {
|
|
2798
2777
|
if (signal?.aborted) return reject(signal.reason ?? /* @__PURE__ */ new Error("Aborted"));
|
|
2799
2778
|
const t = setTimeout(() => {
|
|
@@ -2826,7 +2805,7 @@ var Productions = class {
|
|
|
2826
2805
|
}
|
|
2827
2806
|
/** `GET /v1/studio/productions/{id}` — advances the production and returns it (another account's id is a 404). */
|
|
2828
2807
|
retrieve(id, opts = {}) {
|
|
2829
|
-
return this.http.json(path$
|
|
2808
|
+
return this.http.json(path$3(id), {
|
|
2830
2809
|
ext: opts.ext,
|
|
2831
2810
|
signal: opts.signal
|
|
2832
2811
|
});
|
|
@@ -2842,7 +2821,7 @@ var Productions = class {
|
|
|
2842
2821
|
const p = await this.retrieve(id, opts);
|
|
2843
2822
|
if (isProductionFinished(p)) return p;
|
|
2844
2823
|
if (Date.now() + interval > deadline) throw new Error(`codai: production ${id} did not finish in time (phase ${p.phase})`);
|
|
2845
|
-
await abortableSleep$
|
|
2824
|
+
await abortableSleep$5(interval, opts.signal);
|
|
2846
2825
|
}
|
|
2847
2826
|
}
|
|
2848
2827
|
/** `create` + `wait`. */
|
|
@@ -2852,8 +2831,110 @@ var Productions = class {
|
|
|
2852
2831
|
}
|
|
2853
2832
|
};
|
|
2854
2833
|
|
|
2855
|
-
|
|
2856
|
-
|
|
2834
|
+
// src/resources/music-room.ts
|
|
2835
|
+
const BASE$2 = "/v1/studio/music-room";
|
|
2836
|
+
const path$2 = (id) => `${BASE$2}/${encodeURIComponent(id)}`;
|
|
2837
|
+
function abortableSleep$4(ms, signal) {
|
|
2838
|
+
return new Promise((resolve, reject) => {
|
|
2839
|
+
if (signal?.aborted) return reject(signal.reason ?? /* @__PURE__ */ new Error("Aborted"));
|
|
2840
|
+
const t = setTimeout(() => {
|
|
2841
|
+
signal?.removeEventListener("abort", onAbort);
|
|
2842
|
+
resolve();
|
|
2843
|
+
}, ms);
|
|
2844
|
+
const onAbort = () => {
|
|
2845
|
+
clearTimeout(t);
|
|
2846
|
+
reject(signal?.reason ?? /* @__PURE__ */ new Error("Aborted"));
|
|
2847
|
+
};
|
|
2848
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
2849
|
+
});
|
|
2850
|
+
}
|
|
2851
|
+
/** The song reached a terminal state (`succeeded` or `failed`). */
|
|
2852
|
+
const isMusicRoomFinished = (r) => r.status === "succeeded" || r.status === "failed";
|
|
2853
|
+
var MusicRoom = class {
|
|
2854
|
+
http;
|
|
2855
|
+
constructor(http) {
|
|
2856
|
+
this.http = http;
|
|
2857
|
+
}
|
|
2858
|
+
/** `POST /v1/studio/music-room` — start a song (202; the producer plans it, then it waits at the plan gate). */
|
|
2859
|
+
create(body, opts = {}) {
|
|
2860
|
+
return this.http.json(BASE$2, {
|
|
2861
|
+
method: "POST",
|
|
2862
|
+
body,
|
|
2863
|
+
headers: opts.idempotencyKey ? { "Idempotency-Key": opts.idempotencyKey } : void 0,
|
|
2864
|
+
noRetry: !opts.idempotencyKey,
|
|
2865
|
+
ext: opts.ext,
|
|
2866
|
+
signal: opts.signal
|
|
2867
|
+
});
|
|
2868
|
+
}
|
|
2869
|
+
/** `GET /v1/studio/music-room/{id}` — advances the workflow and returns the song (another account's id is a 404). */
|
|
2870
|
+
get(id, opts = {}) {
|
|
2871
|
+
return this.http.json(path$2(id), {
|
|
2872
|
+
ext: opts.ext,
|
|
2873
|
+
signal: opts.signal
|
|
2874
|
+
});
|
|
2875
|
+
}
|
|
2876
|
+
/** `GET /v1/studio/music-room` — your songs, newest first; page with `before` while `has_more`. */
|
|
2877
|
+
list(query = {}, opts = {}) {
|
|
2878
|
+
return this.http.json(BASE$2, {
|
|
2879
|
+
query: {
|
|
2880
|
+
limit: query.limit,
|
|
2881
|
+
before: query.before
|
|
2882
|
+
},
|
|
2883
|
+
ext: opts.ext,
|
|
2884
|
+
signal: opts.signal
|
|
2885
|
+
});
|
|
2886
|
+
}
|
|
2887
|
+
/**
|
|
2888
|
+
* `POST /v1/studio/music-room/{id}/choose` — answer the open gate: `{ gate: 'plan', variant }`,
|
|
2889
|
+
* `{ gate: 'demo', approve: true }` or `{ gate: 'final', approve: true }` (409 `not_at_gate` otherwise).
|
|
2890
|
+
*/
|
|
2891
|
+
choose(id, answer, opts = {}) {
|
|
2892
|
+
return this.http.json(`${path$2(id)}/choose`, {
|
|
2893
|
+
method: "POST",
|
|
2894
|
+
body: answer,
|
|
2895
|
+
ext: opts.ext,
|
|
2896
|
+
signal: opts.signal
|
|
2897
|
+
});
|
|
2898
|
+
}
|
|
2899
|
+
/**
|
|
2900
|
+
* `POST /v1/studio/music-room/{id}/direct` — one player re-plays its part following `direction` and the demo is
|
|
2901
|
+
* re-rendered (202; only at the demo or final gate).
|
|
2902
|
+
*/
|
|
2903
|
+
direct(id, body, opts = {}) {
|
|
2904
|
+
return this.http.json(`${path$2(id)}/direct`, {
|
|
2905
|
+
method: "POST",
|
|
2906
|
+
body,
|
|
2907
|
+
headers: opts.idempotencyKey ? { "Idempotency-Key": opts.idempotencyKey } : void 0,
|
|
2908
|
+
noRetry: !opts.idempotencyKey,
|
|
2909
|
+
ext: opts.ext,
|
|
2910
|
+
signal: opts.signal
|
|
2911
|
+
});
|
|
2912
|
+
}
|
|
2913
|
+
/** `GET /v1/studio/music-room/quota` — `{ plan, included, used, remaining, period_end }` for this calendar month. */
|
|
2914
|
+
quota(opts = {}) {
|
|
2915
|
+
return this.http.json(`${BASE$2}/quota`, {
|
|
2916
|
+
ext: opts.ext,
|
|
2917
|
+
signal: opts.signal
|
|
2918
|
+
});
|
|
2919
|
+
}
|
|
2920
|
+
/**
|
|
2921
|
+
* Poll `get` every `intervalMs` (default 10 s) until the song `succeeded` or `failed` (a failed one resolves too —
|
|
2922
|
+
* check `status` / `error`), or with `untilGate: true` until it waits at a gate. Throws after `timeoutMs`
|
|
2923
|
+
* (default 30 min) or when `signal` aborts.
|
|
2924
|
+
*/
|
|
2925
|
+
async wait(id, opts = {}) {
|
|
2926
|
+
const interval = opts.intervalMs ?? 1e4;
|
|
2927
|
+
const deadline = Date.now() + (opts.timeoutMs ?? 18e5);
|
|
2928
|
+
for (;;) {
|
|
2929
|
+
const r = await this.get(id, opts);
|
|
2930
|
+
if (isMusicRoomFinished(r) || opts.untilGate && r.status === "waiting") return r;
|
|
2931
|
+
if (Date.now() + interval > deadline) throw new Error(`codai: music room ${id} did not finish in time (phase ${r.phase})`);
|
|
2932
|
+
await abortableSleep$4(interval, opts.signal);
|
|
2933
|
+
}
|
|
2934
|
+
}
|
|
2935
|
+
};
|
|
2936
|
+
|
|
2937
|
+
// src/resources/media-ops.ts
|
|
2857
2938
|
const BASE$1 = "/v1/studio/media-ops";
|
|
2858
2939
|
const opPath = (op) => `${BASE$1}/${encodeURIComponent(op)}`;
|
|
2859
2940
|
function abortableSleep$3(ms, signal) {
|
|
@@ -2941,8 +3022,7 @@ var MediaOps = class {
|
|
|
2941
3022
|
}
|
|
2942
3023
|
};
|
|
2943
3024
|
|
|
2944
|
-
|
|
2945
|
-
//#region src/resources/lyrics.ts
|
|
3025
|
+
// src/resources/lyrics.ts
|
|
2946
3026
|
const BASE = "/v1/studio/lyrics";
|
|
2947
3027
|
var LyricsResource = class {
|
|
2948
3028
|
http;
|
|
@@ -2977,8 +3057,7 @@ var LyricsResource = class {
|
|
|
2977
3057
|
}
|
|
2978
3058
|
};
|
|
2979
3059
|
|
|
2980
|
-
|
|
2981
|
-
//#region src/resources/jam.ts
|
|
3060
|
+
// src/resources/jam.ts
|
|
2982
3061
|
const JAM_SUBPROTOCOL = "codai-jam";
|
|
2983
3062
|
/** WebSocket close codes of `/v1/studio/jam`. */
|
|
2984
3063
|
const JAM_CLOSE_CODES = {
|
|
@@ -3139,8 +3218,7 @@ var Jam = class {
|
|
|
3139
3218
|
}
|
|
3140
3219
|
};
|
|
3141
3220
|
|
|
3142
|
-
|
|
3143
|
-
//#region src/resources/batches.ts
|
|
3221
|
+
// src/resources/batches.ts
|
|
3144
3222
|
const BATCH_DONE = [
|
|
3145
3223
|
"completed",
|
|
3146
3224
|
"failed",
|
|
@@ -3274,8 +3352,7 @@ var Batches = class {
|
|
|
3274
3352
|
}
|
|
3275
3353
|
};
|
|
3276
3354
|
|
|
3277
|
-
|
|
3278
|
-
//#region src/resources/shares.ts
|
|
3355
|
+
// src/resources/shares.ts
|
|
3279
3356
|
const SHARE_TOKEN_RE = /^[A-Za-z0-9_-]{43}$/;
|
|
3280
3357
|
/**
|
|
3281
3358
|
* The share token in `input`: a raw token, or any `https://…/s/<token>` / `…/r/<token>` URL (query and fragment
|
|
@@ -3390,8 +3467,7 @@ var Shares = class {
|
|
|
3390
3467
|
}
|
|
3391
3468
|
};
|
|
3392
3469
|
|
|
3393
|
-
|
|
3394
|
-
//#region src/resources/voice-revocations.ts
|
|
3470
|
+
// src/resources/voice-revocations.ts
|
|
3395
3471
|
var VoiceRevocations = class {
|
|
3396
3472
|
http;
|
|
3397
3473
|
constructor(http) {
|
|
@@ -3409,8 +3485,40 @@ var VoiceRevocations = class {
|
|
|
3409
3485
|
}
|
|
3410
3486
|
};
|
|
3411
3487
|
|
|
3412
|
-
|
|
3413
|
-
|
|
3488
|
+
// src/resources/voices.ts
|
|
3489
|
+
const singing = (id) => `/v1/studio/voices/${encodeURIComponent(id)}/singing-consent`;
|
|
3490
|
+
var Voices = class {
|
|
3491
|
+
http;
|
|
3492
|
+
constructor(http) {
|
|
3493
|
+
this.http = http;
|
|
3494
|
+
}
|
|
3495
|
+
/**
|
|
3496
|
+
* `POST /v1/studio/voices/{id}/singing-consent` — add the singing purpose from a finished singing recording session
|
|
3497
|
+
* (liveness-checked statement + sung sample). Returns the voice with `singing.status: 'active'`. Never retried.
|
|
3498
|
+
*/
|
|
3499
|
+
addSingingConsent(id, body, opts = {}) {
|
|
3500
|
+
return this.http.json(singing(id), {
|
|
3501
|
+
method: "POST",
|
|
3502
|
+
body,
|
|
3503
|
+
ext: opts.ext,
|
|
3504
|
+
signal: opts.signal,
|
|
3505
|
+
noRetry: true
|
|
3506
|
+
});
|
|
3507
|
+
}
|
|
3508
|
+
/**
|
|
3509
|
+
* `DELETE /v1/studio/voices/{id}/singing-consent` — revoke ONLY the singing purpose (204). The sung sample is deleted
|
|
3510
|
+
* at once; the voice keeps working for narration. Idempotent.
|
|
3511
|
+
*/
|
|
3512
|
+
async revokeSingingConsent(id, opts = {}) {
|
|
3513
|
+
await this.http.request(singing(id), {
|
|
3514
|
+
method: "DELETE",
|
|
3515
|
+
ext: opts.ext,
|
|
3516
|
+
signal: opts.signal
|
|
3517
|
+
});
|
|
3518
|
+
}
|
|
3519
|
+
};
|
|
3520
|
+
|
|
3521
|
+
// src/resources/vault.ts
|
|
3414
3522
|
/** The UTF-8 message an unlock proof covers: `codai-vault/unlock/v1|<challenge>|<device_id or "passkey">`. */
|
|
3415
3523
|
function vaultUnlockMessage(challenge, deviceIdOrPasskey) {
|
|
3416
3524
|
return `codai-vault/unlock/v1|${challenge}|${deviceIdOrPasskey}`;
|
|
@@ -3641,8 +3749,7 @@ var Vault = class {
|
|
|
3641
3749
|
}
|
|
3642
3750
|
};
|
|
3643
3751
|
|
|
3644
|
-
|
|
3645
|
-
//#region src/resources/abuse-reports.ts
|
|
3752
|
+
// src/resources/abuse-reports.ts
|
|
3646
3753
|
var AbuseReports = class {
|
|
3647
3754
|
http;
|
|
3648
3755
|
constructor(http) {
|
|
@@ -3660,8 +3767,7 @@ var AbuseReports = class {
|
|
|
3660
3767
|
}
|
|
3661
3768
|
};
|
|
3662
3769
|
|
|
3663
|
-
|
|
3664
|
-
//#region src/resources/provenance.ts
|
|
3770
|
+
// src/resources/provenance.ts
|
|
3665
3771
|
/** Largest file the checker accepts (25 MB). */
|
|
3666
3772
|
const PROVENANCE_MAX_BYTES = 26214400;
|
|
3667
3773
|
var Provenance = class {
|
|
@@ -3686,8 +3792,7 @@ var Provenance = class {
|
|
|
3686
3792
|
}
|
|
3687
3793
|
};
|
|
3688
3794
|
|
|
3689
|
-
|
|
3690
|
-
//#region src/resources/messages.ts
|
|
3795
|
+
// src/resources/messages.ts
|
|
3691
3796
|
/** `POST /v1/messages` — Anthropic Messages wire (JSON + named-event SSE). */
|
|
3692
3797
|
var Messages = class {
|
|
3693
3798
|
http;
|
|
@@ -3790,8 +3895,7 @@ var Messages = class {
|
|
|
3790
3895
|
}
|
|
3791
3896
|
};
|
|
3792
3897
|
|
|
3793
|
-
|
|
3794
|
-
//#region src/resources/models.ts
|
|
3898
|
+
// src/resources/models.ts
|
|
3795
3899
|
var Models = class {
|
|
3796
3900
|
http;
|
|
3797
3901
|
constructor(http) {
|
|
@@ -3806,8 +3910,7 @@ var Models = class {
|
|
|
3806
3910
|
}
|
|
3807
3911
|
};
|
|
3808
3912
|
|
|
3809
|
-
|
|
3810
|
-
//#region src/resources/orgs.ts
|
|
3913
|
+
// src/resources/orgs.ts
|
|
3811
3914
|
var OrgMembers = class {
|
|
3812
3915
|
http;
|
|
3813
3916
|
constructor(http) {
|
|
@@ -3861,8 +3964,7 @@ var Orgs = class {
|
|
|
3861
3964
|
}
|
|
3862
3965
|
};
|
|
3863
3966
|
|
|
3864
|
-
|
|
3865
|
-
//#region src/resources/projects.ts
|
|
3967
|
+
// src/resources/projects.ts
|
|
3866
3968
|
var Projects = class {
|
|
3867
3969
|
http;
|
|
3868
3970
|
constructor(http) {
|
|
@@ -3909,8 +4011,7 @@ var Projects = class {
|
|
|
3909
4011
|
}
|
|
3910
4012
|
};
|
|
3911
4013
|
|
|
3912
|
-
|
|
3913
|
-
//#region src/resources/realtime.ts
|
|
4014
|
+
// src/resources/realtime.ts
|
|
3914
4015
|
const OPEN = 1;
|
|
3915
4016
|
function toBytes(audio) {
|
|
3916
4017
|
if (audio instanceof ArrayBuffer) return new Uint8Array(audio);
|
|
@@ -4093,8 +4194,7 @@ var Realtime = class {
|
|
|
4093
4194
|
}
|
|
4094
4195
|
};
|
|
4095
4196
|
|
|
4096
|
-
|
|
4097
|
-
//#region src/resources/referrals.ts
|
|
4197
|
+
// src/resources/referrals.ts
|
|
4098
4198
|
var Referrals = class {
|
|
4099
4199
|
http;
|
|
4100
4200
|
constructor(http) {
|
|
@@ -4129,8 +4229,7 @@ var Referrals = class {
|
|
|
4129
4229
|
}
|
|
4130
4230
|
};
|
|
4131
4231
|
|
|
4132
|
-
|
|
4133
|
-
//#region src/resources/resolve.ts
|
|
4232
|
+
// src/resources/resolve.ts
|
|
4134
4233
|
/**
|
|
4135
4234
|
* Verify a Resolve webhook delivery: `x-codai-signature: t=<unix>,v1=<hex>`
|
|
4136
4235
|
* with `v1 = HMAC-SHA256(callback_secret, "<t>.<rawBody>")`. Pass the RAW
|
|
@@ -4515,8 +4614,7 @@ function abortableSleep$1(ms, signal) {
|
|
|
4515
4614
|
});
|
|
4516
4615
|
}
|
|
4517
4616
|
|
|
4518
|
-
|
|
4519
|
-
//#region src/resources/responses.ts
|
|
4617
|
+
// src/resources/responses.ts
|
|
4520
4618
|
/** `POST /v1/responses` — OpenAI Responses API compatibility (JSON + named-event SSE). */
|
|
4521
4619
|
var Responses = class {
|
|
4522
4620
|
http;
|
|
@@ -4599,8 +4697,7 @@ var Responses = class {
|
|
|
4599
4697
|
}
|
|
4600
4698
|
};
|
|
4601
4699
|
|
|
4602
|
-
|
|
4603
|
-
//#region src/resources/sessions.ts
|
|
4700
|
+
// src/resources/sessions.ts
|
|
4604
4701
|
/**
|
|
4605
4702
|
* `/v1/sessions/*` — shared-sessions protocol v2 (events, controls, lease,
|
|
4606
4703
|
* dispatch, SSE stream) plus the per-session shares under `/shares`.
|
|
@@ -4836,8 +4933,7 @@ var Sessions = class {
|
|
|
4836
4933
|
}
|
|
4837
4934
|
};
|
|
4838
4935
|
|
|
4839
|
-
|
|
4840
|
-
//#region src/resources/settings.ts
|
|
4936
|
+
// src/resources/settings.ts
|
|
4841
4937
|
/**
|
|
4842
4938
|
* `/v1/settings` — account-level settings shared by every device of the account (per user, not per key). Reads
|
|
4843
4939
|
* always return the full object with defaults applied; writes deep-merge a partial and are validated strictly.
|
|
@@ -4880,8 +4976,7 @@ var Settings = class {
|
|
|
4880
4976
|
}
|
|
4881
4977
|
};
|
|
4882
4978
|
|
|
4883
|
-
|
|
4884
|
-
//#region src/resources/os-gate.ts
|
|
4979
|
+
// src/resources/os-gate.ts
|
|
4885
4980
|
var OsGate = class {
|
|
4886
4981
|
http;
|
|
4887
4982
|
constructor(http) {
|
|
@@ -4908,8 +5003,7 @@ var OsGate = class {
|
|
|
4908
5003
|
}
|
|
4909
5004
|
};
|
|
4910
5005
|
|
|
4911
|
-
|
|
4912
|
-
//#region src/resources/sfx.ts
|
|
5006
|
+
// src/resources/sfx.ts
|
|
4913
5007
|
var Sfx = class {
|
|
4914
5008
|
http;
|
|
4915
5009
|
constructor(http) {
|
|
@@ -4947,8 +5041,7 @@ var Sfx = class {
|
|
|
4947
5041
|
}
|
|
4948
5042
|
};
|
|
4949
5043
|
|
|
4950
|
-
|
|
4951
|
-
//#region src/resources/system-one.ts
|
|
5044
|
+
// src/resources/system-one.ts
|
|
4952
5045
|
var SystemOne = class {
|
|
4953
5046
|
http;
|
|
4954
5047
|
constructor(http) {
|
|
@@ -4967,8 +5060,7 @@ var SystemOne = class {
|
|
|
4967
5060
|
}
|
|
4968
5061
|
};
|
|
4969
5062
|
|
|
4970
|
-
|
|
4971
|
-
//#region src/resources/tasks.ts
|
|
5063
|
+
// src/resources/tasks.ts
|
|
4972
5064
|
var Tasks = class {
|
|
4973
5065
|
http;
|
|
4974
5066
|
constructor(http) {
|
|
@@ -5018,8 +5110,7 @@ var Tasks = class {
|
|
|
5018
5110
|
}
|
|
5019
5111
|
};
|
|
5020
5112
|
|
|
5021
|
-
|
|
5022
|
-
//#region src/resources/triggers.ts
|
|
5113
|
+
// src/resources/triggers.ts
|
|
5023
5114
|
var Triggers = class {
|
|
5024
5115
|
http;
|
|
5025
5116
|
constructor(http) {
|
|
@@ -5169,8 +5260,7 @@ var Notifications = class {
|
|
|
5169
5260
|
}
|
|
5170
5261
|
};
|
|
5171
5262
|
|
|
5172
|
-
|
|
5173
|
-
//#region src/resources/prompts.ts
|
|
5263
|
+
// src/resources/prompts.ts
|
|
5174
5264
|
/** `/v1/prompts/*` — pending prompts: ready-to-paste prompts left for a future chat (handoffs, follow-ups). */
|
|
5175
5265
|
const one$3 = (id, suffix = "") => `/v1/prompts/${encodeURIComponent(id)}${suffix}`;
|
|
5176
5266
|
function filterQuery(q) {
|
|
@@ -5327,8 +5417,7 @@ var Prompts = class {
|
|
|
5327
5417
|
}
|
|
5328
5418
|
};
|
|
5329
5419
|
|
|
5330
|
-
|
|
5331
|
-
//#region src/resources/schedules.ts
|
|
5420
|
+
// src/resources/schedules.ts
|
|
5332
5421
|
/** `/v1/schedules/*`, `/v1/schedule-runs/*`, `/v1/scheduler/*` — the codai Scheduler (ADR 0006). */
|
|
5333
5422
|
const one$2 = (id, suffix = "") => `/v1/schedules/${encodeURIComponent(id)}${suffix}`;
|
|
5334
5423
|
const run = (id, suffix) => `/v1/schedule-runs/${encodeURIComponent(id)}${suffix}`;
|
|
@@ -5599,8 +5688,7 @@ var Schedules = class {
|
|
|
5599
5688
|
}
|
|
5600
5689
|
};
|
|
5601
5690
|
|
|
5602
|
-
|
|
5603
|
-
//#region src/resources/lists.ts
|
|
5691
|
+
// src/resources/lists.ts
|
|
5604
5692
|
/** `/v1/lists/*`, `/v1/share` — lists and the share-sheet entry point. */
|
|
5605
5693
|
const one$1 = (id, suffix = "") => `/v1/lists/${encodeURIComponent(id)}${suffix}`;
|
|
5606
5694
|
const item = (id, suffix = "") => `/v1/lists/items/${encodeURIComponent(id)}${suffix}`;
|
|
@@ -5732,8 +5820,7 @@ var Lists = class {
|
|
|
5732
5820
|
}
|
|
5733
5821
|
};
|
|
5734
5822
|
|
|
5735
|
-
|
|
5736
|
-
//#region src/resources/memory.ts
|
|
5823
|
+
// src/resources/memory.ts
|
|
5737
5824
|
var Memory = class {
|
|
5738
5825
|
http;
|
|
5739
5826
|
constructor(http) {
|
|
@@ -5793,8 +5880,7 @@ var Memory = class {
|
|
|
5793
5880
|
}
|
|
5794
5881
|
};
|
|
5795
5882
|
|
|
5796
|
-
|
|
5797
|
-
//#region src/resources/sandboxes.ts
|
|
5883
|
+
// src/resources/sandboxes.ts
|
|
5798
5884
|
/**
|
|
5799
5885
|
* `/v1/sandboxes` — agent sandboxes: isolated gVisor containers with a persistent `/workspace`, no network
|
|
5800
5886
|
* by default, artifacts from `/workspace/out` as scanned, signed links. Backend `v2` (default) = long-lived
|
|
@@ -6037,8 +6123,7 @@ function execTimeoutMs(timeoutSeconds) {
|
|
|
6037
6123
|
return ((timeoutSeconds ?? 120) + 60) * 1e3;
|
|
6038
6124
|
}
|
|
6039
6125
|
|
|
6040
|
-
|
|
6041
|
-
//#region src/resources/transcripts.ts
|
|
6126
|
+
// src/resources/transcripts.ts
|
|
6042
6127
|
/**
|
|
6043
6128
|
* `/v1/transcripts/*` + `/v1/transcript-folders` + `/v1/transcript-vocabulary` + tus `/v1/uploads` — voice
|
|
6044
6129
|
* recordings → diarized RO/EN transcripts → insights (summary, key points, actions, suggested agent prompts).
|
|
@@ -6462,8 +6547,7 @@ var Transcripts = class {
|
|
|
6462
6547
|
}
|
|
6463
6548
|
};
|
|
6464
6549
|
|
|
6465
|
-
|
|
6466
|
-
//#region src/resources/tokens.ts
|
|
6550
|
+
// src/resources/tokens.ts
|
|
6467
6551
|
var Tokens = class {
|
|
6468
6552
|
http;
|
|
6469
6553
|
constructor(http) {
|
|
@@ -6491,8 +6575,7 @@ var Tokens = class {
|
|
|
6491
6575
|
}
|
|
6492
6576
|
};
|
|
6493
6577
|
|
|
6494
|
-
|
|
6495
|
-
//#region src/resources/tools.ts
|
|
6578
|
+
// src/resources/tools.ts
|
|
6496
6579
|
var Tools = class {
|
|
6497
6580
|
http;
|
|
6498
6581
|
constructor(http) {
|
|
@@ -6532,8 +6615,7 @@ var Tools = class {
|
|
|
6532
6615
|
}
|
|
6533
6616
|
};
|
|
6534
6617
|
|
|
6535
|
-
|
|
6536
|
-
//#region src/resources/research.ts
|
|
6618
|
+
// src/resources/research.ts
|
|
6537
6619
|
const path = (id) => `/v1/research/${encodeURIComponent(id)}`;
|
|
6538
6620
|
function abortableSleep(ms, signal) {
|
|
6539
6621
|
return new Promise((resolve, reject) => {
|
|
@@ -6608,8 +6690,7 @@ var Research = class {
|
|
|
6608
6690
|
}
|
|
6609
6691
|
};
|
|
6610
6692
|
|
|
6611
|
-
|
|
6612
|
-
//#region src/resources/usage-keys.ts
|
|
6693
|
+
// src/resources/usage-keys.ts
|
|
6613
6694
|
var Usage = class {
|
|
6614
6695
|
http;
|
|
6615
6696
|
constructor(http) {
|
|
@@ -6658,8 +6739,7 @@ var Keys = class {
|
|
|
6658
6739
|
}
|
|
6659
6740
|
};
|
|
6660
6741
|
|
|
6661
|
-
|
|
6662
|
-
//#region src/resources/verify.ts
|
|
6742
|
+
// src/resources/verify.ts
|
|
6663
6743
|
var Verify = class {
|
|
6664
6744
|
http;
|
|
6665
6745
|
constructor(http) {
|
|
@@ -6680,8 +6760,7 @@ var Verify = class {
|
|
|
6680
6760
|
}
|
|
6681
6761
|
};
|
|
6682
6762
|
|
|
6683
|
-
|
|
6684
|
-
//#region src/operations.ts
|
|
6763
|
+
// src/operations.ts
|
|
6685
6764
|
/**
|
|
6686
6765
|
* Single source of truth for OpenAPI parity: every `operationId` in
|
|
6687
6766
|
* `apps/docs/openapi/en/gateway.yaml` maps to exactly one dotted method path
|
|
@@ -6782,6 +6861,8 @@ const OPERATION_METHODS = {
|
|
|
6782
6861
|
reopenPublicReviewThread: "shares.reopen",
|
|
6783
6862
|
decidePublicReview: "shares.decide",
|
|
6784
6863
|
createVoiceRevocation: "voiceRevocations.create",
|
|
6864
|
+
addStudioVoiceSingingConsent: "voices.addSingingConsent",
|
|
6865
|
+
revokeStudioVoiceSingingConsent: "voices.revokeSingingConsent",
|
|
6785
6866
|
getVaultAccount: "vault.account",
|
|
6786
6867
|
putVaultAccount: "vault.putAccount",
|
|
6787
6868
|
patchVaultSettings: "vault.updateSettings",
|
|
@@ -6828,6 +6909,12 @@ const OPERATION_METHODS = {
|
|
|
6828
6909
|
listCreativeTemplates: "templates.list",
|
|
6829
6910
|
createStudioProduction: "productions.create",
|
|
6830
6911
|
getStudioProduction: "productions.retrieve",
|
|
6912
|
+
createStudioMusicRoom: "studio.musicRoom.create",
|
|
6913
|
+
listStudioMusicRooms: "studio.musicRoom.list",
|
|
6914
|
+
getStudioMusicRoomQuota: "studio.musicRoom.quota",
|
|
6915
|
+
getStudioMusicRoom: "studio.musicRoom.get",
|
|
6916
|
+
chooseStudioMusicRoom: "studio.musicRoom.choose",
|
|
6917
|
+
directStudioMusicRoom: "studio.musicRoom.direct",
|
|
6831
6918
|
listStudioMediaOps: "mediaOps.list",
|
|
6832
6919
|
quoteStudioMediaOp: "mediaOps.quote",
|
|
6833
6920
|
runStudioMediaOp: "mediaOps.run",
|
|
@@ -7107,8 +7194,7 @@ const RESOLVE_OPERATION_METHODS = {
|
|
|
7107
7194
|
getResolveBalance: "resolve.balance"
|
|
7108
7195
|
};
|
|
7109
7196
|
|
|
7110
|
-
|
|
7111
|
-
//#region src/resources/apps.ts
|
|
7197
|
+
// src/resources/apps.ts
|
|
7112
7198
|
/**
|
|
7113
7199
|
* `CodaiApps` — management client for host apps (studiai.ro, …) that resell
|
|
7114
7200
|
* codai to their own end users. It talks to the mgmt API (`api.codai.ro`),
|
|
@@ -7274,8 +7360,7 @@ var CodaiApps = class {
|
|
|
7274
7360
|
}
|
|
7275
7361
|
};
|
|
7276
7362
|
|
|
7277
|
-
|
|
7278
|
-
//#region src/index.ts
|
|
7363
|
+
// src/index.ts
|
|
7279
7364
|
/**
|
|
7280
7365
|
* codai-sdk — official TypeScript client for the codai AI gateway.
|
|
7281
7366
|
*
|
|
@@ -7305,6 +7390,8 @@ var CodaiApps = class {
|
|
|
7305
7390
|
* built-in starters; free; use with creatives.create({ kind, template, vars }))
|
|
7306
7391
|
* client.productions.create / .retrieve / .wait / .run (codai Studio brief → promo video: storyboard, images,
|
|
7307
7392
|
* voice-over, editable creative, draft render, one review + repair; billed as the parts are produced)
|
|
7393
|
+
* client.studio.musicRoom.create / .get / .list / .choose / .direct / .quota / .wait (codai Studio Music Room: a team
|
|
7394
|
+
* of role agents writes, plays, sings and mixes a song with three approval gates; free within the plan quota)
|
|
7308
7395
|
* client.mediaOps.list / .quote / .run / .job / .wait / .runAndWait (codai Studio media operations on your assets:
|
|
7309
7396
|
* background removal, upscale, inpaint / outpaint / erase, stems, denoise, MIDI, mastering, analysis, ACE-Step
|
|
7310
7397
|
* music and sound effects; quote held, measured cost billed; async ops return a job)
|
|
@@ -7319,6 +7406,8 @@ var CodaiApps = class {
|
|
|
7319
7406
|
* client.shares.get / .remix / .comment / .reply / .resolve / .reopen / .decide (codai Studio share links from the
|
|
7320
7407
|
* outside: read a shared creative, remix a view link, comment and decide through a review link; free)
|
|
7321
7408
|
* client.voiceRevocations.create (public takedown ticket for a voice cloned in codai Studio; no key needed)
|
|
7409
|
+
* client.voices.addSingingConsent / .revokeSingingConsent (voice passport, beta: your own custom voice singing in
|
|
7410
|
+
* Music Room songs; a separate, revocable consent; free)
|
|
7322
7411
|
* client.vault.account / .items / .putItem / .rules / .approvals / .decide / .catalog / .use / .httpCall / .resolve
|
|
7323
7412
|
* client.vault.devices.challenge / .enroll / .list / .rename / .revoke (device approval keys, V-27)
|
|
7324
7413
|
* client.vault.updateSettings / .lock / .unlockChallenge / .unlock / .limits / .setLimits / .revokeTaskGrants (guards, v4)
|
|
@@ -7380,6 +7469,11 @@ var Codai = class {
|
|
|
7380
7469
|
templates;
|
|
7381
7470
|
/** codai Studio productions (`productions.run({ brief, language: 'ro' })` → a finished promo video + editable creative). */
|
|
7382
7471
|
productions;
|
|
7472
|
+
/**
|
|
7473
|
+
* codai Studio namespace. `studio.musicRoom.create({ brief, language: 'ro' })` → a team of role agents makes a song;
|
|
7474
|
+
* answer its gates with `studio.musicRoom.choose(id, …)`, poll with `studio.musicRoom.wait(id, { untilGate: true })`.
|
|
7475
|
+
*/
|
|
7476
|
+
studio;
|
|
7383
7477
|
/** codai Studio media operations (`mediaOps.run('audio.separate_stems', { assetIds })` → job; `mediaOps.wait(id)`). */
|
|
7384
7478
|
mediaOps;
|
|
7385
7479
|
/** codai Studio lyrics (`lyrics.write({ brief, language: 'ro' })`, `lyrics.align({ creative_id, clip_id, lyrics_text })`). */
|
|
@@ -7394,6 +7488,8 @@ var Codai = class {
|
|
|
7394
7488
|
shares;
|
|
7395
7489
|
/** Public takedown tickets for voices cloned in codai Studio (`voiceRevocations.create({ email, … })`; no key needed). */
|
|
7396
7490
|
voiceRevocations;
|
|
7491
|
+
/** codai Studio custom voices: the voice passport singing consent (`voices.addSingingConsent(id, { session_id })`). */
|
|
7492
|
+
voices;
|
|
7397
7493
|
/** Zero-knowledge credentials vault (`vault.items()`, `vault.use({ handle, mode, action })`, `vault.decide(id, …)`). */
|
|
7398
7494
|
vault;
|
|
7399
7495
|
/** Public abuse reports about codai Studio share / review links (`abuseReports.create({ share_token, … })`; no key needed). */
|
|
@@ -7490,6 +7586,7 @@ var Codai = class {
|
|
|
7490
7586
|
this.brandKits = new BrandKits(http);
|
|
7491
7587
|
this.templates = new Templates(http);
|
|
7492
7588
|
this.productions = new Productions(http);
|
|
7589
|
+
this.studio = { musicRoom: new MusicRoom(http) };
|
|
7493
7590
|
this.mediaOps = new MediaOps(http);
|
|
7494
7591
|
this.lyrics = new LyricsResource(http);
|
|
7495
7592
|
this.jam = new Jam({
|
|
@@ -7500,6 +7597,7 @@ var Codai = class {
|
|
|
7500
7597
|
this.batches = new Batches(http);
|
|
7501
7598
|
this.shares = new Shares(http);
|
|
7502
7599
|
this.voiceRevocations = new VoiceRevocations(http);
|
|
7600
|
+
this.voices = new Voices(http);
|
|
7503
7601
|
this.vault = new Vault(http);
|
|
7504
7602
|
this.abuseReports = new AbuseReports(http);
|
|
7505
7603
|
this.provenance = new Provenance(http);
|
|
@@ -7629,6 +7727,5 @@ function allKeys(obj) {
|
|
|
7629
7727
|
return [...keys];
|
|
7630
7728
|
}
|
|
7631
7729
|
|
|
7632
|
-
|
|
7633
|
-
export { AbuseReports, Account, AgentRuns, Agents, Assets, Audio, Batches, Billing, BrandKits, Cards, Chat, ChatCompletions, Codai, Codai as default, CodaiApps, CodaiError, Creatives, Devices, Documents, Embeddings, EnvironmentFiles, EnvironmentJobs, EnvironmentMembers, EnvironmentPorts, EnvironmentSecrets, EnvironmentTasks, Environments, Exports, Feedback, Health, Heartbeats, Hosts, HttpClient, Images, JAM_CLOSE_CODES, JAM_SCALES, JAM_SUBPROTOCOL, Jam, JamSession, Keys, Lists, LyricsResource, MediaOps, Memory, Messages, Models, Music, Notifications, OPERATION_METHODS, OrgMembers, Orgs, OsGate, PROVENANCE_MAX_BYTES, PhoneModels, Productions, Projects, Prompts, Provenance, RESOLVE_ATTESTATION_PAYLOAD_TYPE, RESOLVE_OPERATION_METHODS, RESOLVE_TERMINAL_STATUSES, Realtime, RealtimeSession, Receipts, Referrals, Renders, Research, Resolve, ResolveError, ResolveInsufficientFundsError, Responses, STREAMING_OPERATIONS, SandboxFiles, Sandboxes, ScheduleExecutor, SchedulerHosts, Schedules, SessionControls, SessionEvents, SessionLease, SessionShares, Sessions, Settings, Sfx, Shares, SystemOne, TUS_CHUNK_BYTES, Tasks, Templates, Tokens, Tools, Transcripts, Triggers, Usage, Vault, VaultDevices, Verify, Videos, VoiceRevocations, extensionHeaders, frameJson, isAssetDto, isMediaOpJob, isMediaOpJobFinished, isPagedBuild, isProductionFinished, isResearchFinished, jamUrl, mergeToolCall, readSse, realtimeUrl, resolveAttestationStatement, settingsConflictCurrent, shareTokenFrom, uploadIdFromLocation, vaultUnlockMessage, verifyAttestationWithKeys, verifyResolveWebhook };
|
|
7730
|
+
export { AbuseReports, Account, AgentRuns, Agents, Assets, Audio, Batches, Billing, BrandKits, Cards, Chat, ChatCompletions, Codai, Codai as default, CodaiApps, CodaiError, Creatives, Devices, Documents, Embeddings, EnvironmentFiles, EnvironmentJobs, EnvironmentMembers, EnvironmentPorts, EnvironmentSecrets, EnvironmentTasks, Environments, Exports, Feedback, Health, Heartbeats, Hosts, HttpClient, Images, JAM_CLOSE_CODES, JAM_SCALES, JAM_SUBPROTOCOL, Jam, JamSession, Keys, Lists, LyricsResource, MediaOps, Memory, Messages, Models, Music, MusicRoom, Notifications, OPERATION_METHODS, OrgMembers, Orgs, OsGate, PROVENANCE_MAX_BYTES, PhoneModels, Productions, Projects, Prompts, Provenance, RESOLVE_ATTESTATION_PAYLOAD_TYPE, RESOLVE_OPERATION_METHODS, RESOLVE_TERMINAL_STATUSES, Realtime, RealtimeSession, Receipts, Referrals, Renders, Research, Resolve, ResolveError, ResolveInsufficientFundsError, Responses, STREAMING_OPERATIONS, SandboxFiles, Sandboxes, ScheduleExecutor, SchedulerHosts, Schedules, SessionControls, SessionEvents, SessionLease, SessionShares, Sessions, Settings, Sfx, Shares, SystemOne, TUS_CHUNK_BYTES, Tasks, Templates, Tokens, Tools, Transcripts, Triggers, Usage, Vault, VaultDevices, Verify, Videos, VoiceRevocations, Voices, extensionHeaders, frameJson, isAssetDto, isMediaOpJob, isMediaOpJobFinished, isMusicRoomFinished, isPagedBuild, isProductionFinished, isResearchFinished, jamUrl, mergeToolCall, readSse, realtimeUrl, resolveAttestationStatement, settingsConflictCurrent, shareTokenFrom, uploadIdFromLocation, vaultUnlockMessage, verifyAttestationWithKeys, verifyResolveWebhook };
|
|
7634
7731
|
//# sourceMappingURL=index.js.map
|