@clipwright/sdk 0.10.0 → 0.12.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/CHANGELOG.md +335 -0
- package/README.md +5 -0
- package/package.json +4 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
The four client packages — `@clipwright/core`, `@clipwright/sdk`,
|
|
4
|
+
`@clipwright/cli` and `@clipwright/mcp-server` — are released together and always
|
|
5
|
+
share one version, so each section below covers all four. The format follows
|
|
6
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/). The HTTP API reports its
|
|
7
|
+
contract version in the `X-Clipwright-Contract` response header and in the
|
|
8
|
+
`contract_version` field of a quote. Entries marked **Breaking:** require a change
|
|
9
|
+
on the client side. Entries marked *Server-side* changed the API itself: every
|
|
10
|
+
client version sees them from the day the API was deployed, not from the package
|
|
11
|
+
release they are listed under.
|
|
12
|
+
|
|
13
|
+
## [0.12.0] - 2026-09-13
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Breaking:** *Server-side:* quote and run refuse a key that is not part of
|
|
18
|
+
the contract with 400 `unknown_field`, before any charge. Such keys were
|
|
19
|
+
dropped silently before, so a misspelled field fell back to its default:
|
|
20
|
+
`aspectRatio: "16:9"` rendered 9:16 without a warning. `fields` names each
|
|
21
|
+
unknown key, and the message suggests the matching field (`aspect_ratio`).
|
|
22
|
+
Fix the key name. The contract version moved to `2026-09-13`.
|
|
23
|
+
(clipwright#166)
|
|
24
|
+
- *Server-side:* the duration estimate for a Cyrillic script uses 2.3 words a
|
|
25
|
+
second instead of 2.6, measured on `eleven_v3`. A Russian script now
|
|
26
|
+
quotes and reserves about 13% more credits, closer to what the run is
|
|
27
|
+
charged. Other scripts keep 2.6. (clipwright#164)
|
|
28
|
+
- A stress mark (U+0301) at the start of a word is no longer counted as its
|
|
29
|
+
first letter, so a capital right after the mark stays a capital. A capital
|
|
30
|
+
vowel later in the same word still marks stress. (clipwright#164)
|
|
31
|
+
- Each package ships this changelog as `CHANGELOG.md`. (clipwright#102)
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- Quote returns `tts_model`, the speech model the run will use.
|
|
36
|
+
(clipwright#164)
|
|
37
|
+
- `@clipwright/core` exports `unknownFields`, `unknownFieldError`,
|
|
38
|
+
`unknownFieldBody` and `ACCEPTED_UGC_FIELDS`, and `unknown_field` is part of
|
|
39
|
+
`API_ERROR_CODES`. (clipwright#166)
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- *Server-side:* a body with an empty key name gets 400 `unknown_field`
|
|
44
|
+
instead of 500 `internal_error`. (clipwright#167)
|
|
45
|
+
|
|
46
|
+
## [0.11.0] - 2026-09-13
|
|
47
|
+
|
|
48
|
+
### Removed
|
|
49
|
+
|
|
50
|
+
- **Breaking:** `eleven_multilingual_v2` is no longer a valid `tts_model`. Quote
|
|
51
|
+
and run refuse it with 400 before any charge. Pass `eleven_v3`,
|
|
52
|
+
`eleven_flash_v2_5` or `eleven_turbo_v2_5`, or omit the field. Runs stored with
|
|
53
|
+
the old value still read. (clipwright#145)
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- **Breaking:** every voice preset and a raw `voice_id` now speak on `eleven_v3`.
|
|
58
|
+
Before, four of five presets and a raw `voice_id` used `eleven_multilingual_v2`,
|
|
59
|
+
with a 10,000-character script ceiling. The default ceiling is now 5,000
|
|
60
|
+
characters. A script of 5,001–10,000 characters that passed before is refused;
|
|
61
|
+
send it with `tts_model: "eleven_flash_v2_5"` or `"eleven_turbo_v2_5"` (10,000
|
|
62
|
+
each). The refusal names these models when the script fits them. The voices
|
|
63
|
+
sound different, and the samples from `list_voices` were re-recorded.
|
|
64
|
+
(clipwright#145)
|
|
65
|
+
- **Breaking:** on `eleven_v3`, a single capital vowel after the first letter of a
|
|
66
|
+
Cyrillic word marks stress: `потОм` is sent as `пото́м` (lowercase vowel plus
|
|
67
|
+
U+0301). A script that used such a capital for another reason is now spoken
|
|
68
|
+
differently; write that word in lowercase. A capital at the start of a word, a
|
|
69
|
+
word in capitals, and a word with a second capital stay as written. Stress marks
|
|
70
|
+
count toward the character limit. (clipwright#145)
|
|
71
|
+
- The contract version moved from `2026-08` to `2026-09`. (clipwright#145)
|
|
72
|
+
|
|
73
|
+
### Added
|
|
74
|
+
|
|
75
|
+
- `tts_model` accepts `eleven_flash_v2_5` and `eleven_turbo_v2_5`, 10,000
|
|
76
|
+
characters each. (clipwright#145)
|
|
77
|
+
- *Server-side:* quote and run return a warning when a script with stress marks or
|
|
78
|
+
in Cyrillic goes to a 2.5 model. The default path stays silent. (clipwright#145)
|
|
79
|
+
- `@clipwright/core` exports the stress helpers (`STRESS_MARK`,
|
|
80
|
+
`stressMarksFromCapitals`, `speechTextFor`) and the run preflight schema
|
|
81
|
+
(`runPreflight`, `parseRunPreflight`). (clipwright#145, clipwright#146)
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
|
|
85
|
+
- *Server-side:* for a body with `image`, the 202 response of a run and the quote
|
|
86
|
+
now return the same `warnings[]`. Warnings that depend on a network probe no
|
|
87
|
+
longer disappear when a run fails. (clipwright#146)
|
|
88
|
+
|
|
89
|
+
## [0.10.0] - 2026-09-11
|
|
90
|
+
|
|
91
|
+
### Added
|
|
92
|
+
|
|
93
|
+
- MCP tool `get_account`, SDK `getAccount()` and CLI `clipwright account`. All
|
|
94
|
+
three read `GET /v1/account` (balance, debt, holds, grants) and spend nothing.
|
|
95
|
+
(clipwright#135)
|
|
96
|
+
- *Server-side:* quote adds a warning when a run with the same input would be
|
|
97
|
+
refused with `account_not_admitted`, `debt_outstanding` or
|
|
98
|
+
`insufficient_credits`. The warning carries the same numbers as the refusal.
|
|
99
|
+
(clipwright#134)
|
|
100
|
+
- `@clipwright/core` exports `API_ENDPOINTS`, `QUICKSTART_ENDPOINTS`,
|
|
101
|
+
`endpointLabel` and `NODE_MIN_MAJOR` (the Node.js major the clients require).
|
|
102
|
+
(clipwright#135, clipwright#129)
|
|
103
|
+
|
|
104
|
+
### Fixed
|
|
105
|
+
|
|
106
|
+
- *Server-side:* the `error` of a failed run in `GET /v1/runs/{id}` no longer
|
|
107
|
+
contains stack frames or internal file paths. (clipwright#133)
|
|
108
|
+
- *Server-side:* when our wait for the avatar vendor times out, the run is charged
|
|
109
|
+
nothing, and its warning says what happened. (clipwright#150)
|
|
110
|
+
|
|
111
|
+
## [0.9.0] - 2026-09-09
|
|
112
|
+
|
|
113
|
+
### Added
|
|
114
|
+
|
|
115
|
+
- Each voice in `GET /v1/voices`, `list_voices` and `listVoices()` carries
|
|
116
|
+
`preview_url` and `preview_expires_at`: a signed link to a sample recorded with
|
|
117
|
+
that voice and its model. The link is valid for one hour. A voice without a
|
|
118
|
+
sample has neither field. A 0.8.0 client drops both fields. (clipwright#147)
|
|
119
|
+
- CLI `clipwright voices` prints the sample link on its own line. (clipwright#147)
|
|
120
|
+
|
|
121
|
+
## [0.8.0] - 2026-09-09
|
|
122
|
+
|
|
123
|
+
### Added
|
|
124
|
+
|
|
125
|
+
- Actor library: `GET /v1/actors`, MCP tool `list_actors`, SDK `listActors()` and
|
|
126
|
+
CLI `clipwright actors`. Each actor has a stable `actor_id`, a name, a gender,
|
|
127
|
+
an approximate age, a version and verified image variants. (clipwright#120)
|
|
128
|
+
- `actor_id` input on quote and run, and CLI `--actor-id` on `make` and `quote`.
|
|
129
|
+
Do not combine it with `image` or `person`. (clipwright#120)
|
|
130
|
+
- Quote and run responses carry `actor`: the selected `actor_id`, `version` and
|
|
131
|
+
`gender`; `{gender}` for the default actor; `null` when you pass your own
|
|
132
|
+
`image`. (clipwright#64, clipwright#120)
|
|
133
|
+
|
|
134
|
+
## [0.7.0] - 2026-09-09
|
|
135
|
+
|
|
136
|
+
### Removed
|
|
137
|
+
|
|
138
|
+
- **Breaking:** `daily_remaining_credits` is gone from `GET /v1/account` and from
|
|
139
|
+
the `account` schema in `@clipwright/core`. The per-account daily spend cap it
|
|
140
|
+
reported was removed. A client that read the field now gets `undefined`; read
|
|
141
|
+
`balance_credits`, and `debt_credits` for a block. The contract version was not
|
|
142
|
+
moved for this change: it stayed `2026-08` until 0.11.0, so the header gave no
|
|
143
|
+
signal. (clipwright#139)
|
|
144
|
+
- **Breaking:** `@clipwright/core` no longer exports `MAX_SCRIPT_WORDS` or
|
|
145
|
+
`SCRIPT_SECONDS_BASIS`. Code that imports them fails; use `TTS_MODEL_CHAR_CAP`
|
|
146
|
+
or `MAX_SCRIPT_CHARS`. (clipwright#128)
|
|
147
|
+
- *Server-side:* the refusal `daily_cap_exceeded` is no longer produced. Runs
|
|
148
|
+
refused before keep it in their history. (clipwright#139)
|
|
149
|
+
- *Server-side:* the refusal `global_cap_exceeded` is no longer produced. The
|
|
150
|
+
service-wide daily spend cap became an internal alert. (clipwright#141)
|
|
151
|
+
|
|
152
|
+
### Changed
|
|
153
|
+
|
|
154
|
+
- The 180-word script ceiling is replaced by a character limit per speech model:
|
|
155
|
+
`eleven_v3` 5,000, `eleven_multilingual_v2` 10,000. Length is counted as
|
|
156
|
+
JavaScript `.length`, spaces and audio tags included; an emoji may count as two.
|
|
157
|
+
Longer scripts than before are accepted. The refusal text changed from
|
|
158
|
+
`script is ~N words; ceiling is 180 words` to
|
|
159
|
+
`script has N characters; <model> allows at most N characters`; update code
|
|
160
|
+
that matches on it. (clipwright#128)
|
|
161
|
+
- **Breaking:** *Server-side:* quote and run refuse a script whose text contains
|
|
162
|
+
U+FFFD with 400 `script_encoding_lost`, before any charge. Such a script was
|
|
163
|
+
accepted before and billed for about a second of speech. The bytes were lost
|
|
164
|
+
before the request left the client: send the script as valid UTF-8.
|
|
165
|
+
(clipwright#131)
|
|
166
|
+
- *Server-side:* a run whose speech is impossibly short for its script fails with
|
|
167
|
+
`speech_too_short_for_script` and is charged nothing, instead of succeeding.
|
|
168
|
+
Retrying rarely helps. (clipwright#131)
|
|
169
|
+
- *Server-side:* a new sign-up gets an admitted account with zero credits, so it
|
|
170
|
+
is no longer refused with `account_not_admitted` until the owner admits it.
|
|
171
|
+
(clipwright#112)
|
|
172
|
+
|
|
173
|
+
## [0.6.0] - 2026-09-06
|
|
174
|
+
|
|
175
|
+
### Added
|
|
176
|
+
|
|
177
|
+
- `@clipwright/cli` installs a second binary, `clipwright-cli`, next to
|
|
178
|
+
`clipwright`. An unrelated npm package also ships a `clipwright` binary; the
|
|
179
|
+
second name avoids that collision. `core`, `sdk` and `mcp-server` have no
|
|
180
|
+
changes in this release and moved to keep one version. (clipwright#105)
|
|
181
|
+
|
|
182
|
+
## [0.5.0] - 2026-09-06
|
|
183
|
+
|
|
184
|
+
### Added
|
|
185
|
+
|
|
186
|
+
- `POST /v1/uploads` takes a local PNG or JPEG of up to 10 MB and returns
|
|
187
|
+
`upload_id`, `url`, `media_type`, `bytes`, `width`, `height` and `expires_at`.
|
|
188
|
+
Pass the https `url` as `image`. The url is valid for 24 hours and the object is
|
|
189
|
+
kept for 7 days. An account may upload 20 images a day. New refusal codes:
|
|
190
|
+
`invalid_image`, `unsupported_media_type`, `upload_cap_exceeded`.
|
|
191
|
+
(clipwright#99)
|
|
192
|
+
- MCP tool `upload_image`, SDK `uploadImage()`, CLI `clipwright upload <path>`, and
|
|
193
|
+
`--image`, `--image-file`, `--aspect-ratio`, `--resolution` on CLI `make` and
|
|
194
|
+
`quote`. (clipwright#99)
|
|
195
|
+
- `tts_model` input (`eleven_v3` or `eleven_multilingual_v2`) and CLI
|
|
196
|
+
`--tts-model`. Without it the preset's model is used. Each voice in the catalog
|
|
197
|
+
names its `model`. A script over the model's character limit (v3 5,000, v2
|
|
198
|
+
10,000) is refused before any charge, in addition to the 180-word ceiling.
|
|
199
|
+
(clipwright#101)
|
|
200
|
+
- MCP `tools/list` describes `image`, `aspect_ratio`, `resolution`, `voice` and
|
|
201
|
+
`voice_id`; the descriptions were empty before. (clipwright#99)
|
|
202
|
+
|
|
203
|
+
### Changed
|
|
204
|
+
|
|
205
|
+
- *Server-side:* the `owner_ru_clone` preset speaks on `eleven_v3`. All presets
|
|
206
|
+
used `eleven_multilingual_v2` before. (clipwright#101)
|
|
207
|
+
|
|
208
|
+
## [0.4.0] - 2026-08-28
|
|
209
|
+
|
|
210
|
+
### Changed
|
|
211
|
+
|
|
212
|
+
- **Breaking:** the default API address in the SDK, CLI and MCP server moved to
|
|
213
|
+
`https://api.clipwright.io`. The old address
|
|
214
|
+
`https://api-production-7e69.up.railway.app` still answers, so older clients
|
|
215
|
+
keep working. If your network allowlists hosts, add `api.clipwright.io`, or pin
|
|
216
|
+
the old address with `CLIPWRIGHT_API_URL` or the SDK `baseUrl` option. (US-613)
|
|
217
|
+
|
|
218
|
+
## [0.3.0] - 2026-08-28
|
|
219
|
+
|
|
220
|
+
### Removed
|
|
221
|
+
|
|
222
|
+
- **Breaking:** `@clipwright/core` no longer exports `MAX_SCRIPT_SECONDS`. Code
|
|
223
|
+
that imports it fails; `SCRIPT_SECONDS_BASIS` holds the value (and was removed
|
|
224
|
+
in turn in 0.7.0).
|
|
225
|
+
|
|
226
|
+
### Changed
|
|
227
|
+
|
|
228
|
+
- **Breaking:** the CLI and the MCP server refuse a `CLIPWRIGHT_API_URL` that is
|
|
229
|
+
not `https`. Loopback addresses may stay `http`. Point the variable at an https
|
|
230
|
+
address. (clipwright#85)
|
|
231
|
+
- **Breaking:** every URL field of the input is limited to 2,048 characters
|
|
232
|
+
(`MAX_URL_LENGTH`). A longer URL is refused with 400. Pass a URL of at most
|
|
233
|
+
2,048 characters, for example by hosting the file at a shorter address.
|
|
234
|
+
(clipwright#85)
|
|
235
|
+
- **Breaking:** SDK requests now have deadlines. `requestTimeoutMs` (per client,
|
|
236
|
+
default 30 s) bounds every request, and `maxWaitMs` (per `makeUgc` call, default
|
|
237
|
+
10 min) bounds the whole call, including the request in flight. A call that used
|
|
238
|
+
to hang now rejects. A start request cut off mid-flight throws
|
|
239
|
+
`ClipwrightResponseError` with `mayHaveTakenEffect: true`: check the run before
|
|
240
|
+
retrying with a new idempotency key. Raise `requestTimeoutMs` behind a slow
|
|
241
|
+
proxy.
|
|
242
|
+
- **Breaking:** *Server-side:* a run from an account not admitted to the beta is
|
|
243
|
+
refused with 403 `account_not_admitted` before any charge. Topping up does not
|
|
244
|
+
lift it. The clients parse this refusal from 0.3.0 on. (US-620)
|
|
245
|
+
- The voice catalog is in English, and the SDK validates the `GET /v1/voices`
|
|
246
|
+
response. Each voice has `name`, `language`, `gender` and `description`.
|
|
247
|
+
(clipwright#85)
|
|
248
|
+
- The MCP server checks the shape of `run_id` in `get_run`. (clipwright#85)
|
|
249
|
+
- *Server-side:* the video link in a finished run is signed for 7 days instead of
|
|
250
|
+
1. (clipwright#22)
|
|
251
|
+
- *Server-side:* a failed run is charged only if the vendor accepted the work that
|
|
252
|
+
produces the clip. A run that paid only for speech is charged nothing.
|
|
253
|
+
(clipwright#46)
|
|
254
|
+
- *Server-side:* credits bought while an account has debt pay the debt first; only
|
|
255
|
+
the rest reaches the balance. (US-611)
|
|
256
|
+
|
|
257
|
+
### Fixed
|
|
258
|
+
|
|
259
|
+
- *Server-side:* 401 and validation refusals use the declared error body.
|
|
260
|
+
Validation errors return `invalid_request` and list each problem as
|
|
261
|
+
`field: reason`, up to 12. Before, clients reported these bodies as "not a
|
|
262
|
+
Clipwright error object". (US-616)
|
|
263
|
+
- *Server-side:* the 202 response of a run carries its `warnings[]`; it always
|
|
264
|
+
returned an empty list before. (clipwright#64)
|
|
265
|
+
|
|
266
|
+
## [0.2.0] - 2026-07-29
|
|
267
|
+
|
|
268
|
+
### Added
|
|
269
|
+
|
|
270
|
+
- `@clipwright/cli` is published for the first time, under MIT. Commands:
|
|
271
|
+
`quote`, `make`, `runs <id>`, `voices`. `make` takes `--script`, `--person`,
|
|
272
|
+
`--captions`, `--voice`, `--voice-id` and `--retry`. (US-622)
|
|
273
|
+
- *Server-side:* `GET /v1/account` returns `account_id`, `balance_credits`,
|
|
274
|
+
`debt_credits`, `holds_credits`, `daily_remaining_credits` and `grants`.
|
|
275
|
+
(US-602)
|
|
276
|
+
- `@clipwright/core` exports the refusal schemas and the retry policy:
|
|
277
|
+
`parseApiFailure`, `isRetryableFailure`, `retryDelayMs`, `agentFailureReport`,
|
|
278
|
+
`apiError`, the 402 and 429 bodies, the rate-limit header names, `account` and
|
|
279
|
+
`creditGrant`. (US-622)
|
|
280
|
+
- *Server-side:* a service-wide daily spend cap; a run past it is refused with
|
|
281
|
+
`global_cap_exceeded`. (US-603)
|
|
282
|
+
|
|
283
|
+
### Changed
|
|
284
|
+
|
|
285
|
+
- **Breaking:** *Server-side:* a run reserves credits before rendering. Without
|
|
286
|
+
enough balance the API answers 402 `insufficient_credits`; with unpaid debt, 402
|
|
287
|
+
`debt_outstanding`, whatever the balance. Buy credits to lift either. (US-602)
|
|
288
|
+
- **Breaking:** *Server-side:* rate limits per account: 60 requests a minute for
|
|
289
|
+
starting runs, 300 for quote, voices, run status and account. Over the limit
|
|
290
|
+
the API answers 429 `rate_limited` with `Retry-After` and `X-RateLimit-*`
|
|
291
|
+
headers; wait and repeat the same call. At most 3 renders run at once per
|
|
292
|
+
account; a fourth queues and still returns 202. (US-605)
|
|
293
|
+
- **Breaking:** the SDK throws `ClipwrightApiError` or `ClipwrightResponseError`
|
|
294
|
+
(both extend `Error`) instead of a plain `Error`, and reads the status before
|
|
295
|
+
the body. Code that parsed the message text should read the error's status and
|
|
296
|
+
code instead. `makeUgc` now waits out 429 and 5xx while polling; money refusals
|
|
297
|
+
and other 4xx still throw at once. `attempt` must be a positive safe integer and
|
|
298
|
+
is checked before any request. (US-622)
|
|
299
|
+
- **Breaking:** MCP tools return a refusal as a JSON report inside the text block,
|
|
300
|
+
with `isError: true`, instead of one sentence. Agents should branch on its
|
|
301
|
+
`retryable` field, not on prose. (US-622)
|
|
302
|
+
- The MCP server starts when `~/.clipwright` is read-only; only `make_ugc`
|
|
303
|
+
refuses, naming the variable that fixes it. (US-622)
|
|
304
|
+
- `SKILL.md` inside `@clipwright/mcp-server` is in English. (US-622)
|
|
305
|
+
- *Server-side:* idempotency keys are scoped to the account, so two accounts can
|
|
306
|
+
use the same key. (US-604)
|
|
307
|
+
|
|
308
|
+
## [0.1.0] - 2026-07-26
|
|
309
|
+
|
|
310
|
+
### Added
|
|
311
|
+
|
|
312
|
+
- First publication of `@clipwright/core`, `@clipwright/sdk` and
|
|
313
|
+
`@clipwright/mcp-server` under MIT. `@clipwright/cli` was not published.
|
|
314
|
+
- API: quote (`POST /v1/skills/make_ugc/quote`), run
|
|
315
|
+
(`POST /v1/skills/make_ugc/run`, `Idempotency-Key` required), run status
|
|
316
|
+
(`GET /v1/runs/{id}`), voice catalog (`GET /v1/voices`). Requests carry a
|
|
317
|
+
`cw_*` bearer token. (US-205, US-516, US-550)
|
|
318
|
+
- MCP tools `quote_ugc`, `make_ugc`, `get_run`, `list_voices`. `make_ugc` returns
|
|
319
|
+
a `run_id` at once, and the agent polls `get_run`. (US-206, US-512, US-516)
|
|
320
|
+
- SDK `ClipwrightClient` with `quoteUgc`, `startUgc`, `makeUgc`, `getRun` and
|
|
321
|
+
`listVoices`. The idempotency key comes from the input and
|
|
322
|
+
`CLIPWRIGHT_CLIENT_ID`; `attempt` starts a deliberate new run. (US-201, US-202)
|
|
323
|
+
- Input: `script` (up to 180 words), `voice`, `voice_id`, `image`,
|
|
324
|
+
`aspect_ratio` (default 9:16, 16:9 supported), `resolution`, `captions`,
|
|
325
|
+
`disclosure_overlay`. Parameters that are not honoured come back in
|
|
326
|
+
`warnings[]`; `webhook_url` is refused with 400. (US-533, US-535, US-539)
|
|
327
|
+
- Quote returns `credits_estimate`, `duration_estimate_sec`, `warnings`,
|
|
328
|
+
`contract_version`, `source` and `resolved_aspect_ratio`. A source whose aspect
|
|
329
|
+
ratio differs from the request by more than 15% is refused before any charge;
|
|
330
|
+
up to 15% it is snapped with a warning. (US-525)
|
|
331
|
+
- Credits: 30 per second of video, reserved at start and charged on the measured
|
|
332
|
+
duration. *Server-side:* a per-account daily spend cap refuses runs with
|
|
333
|
+
`daily_cap_exceeded`. (US-538, US-537)
|
|
334
|
+
- Contract version `2026-08` in `X-Clipwright-Contract` and `contract_version`.
|
|
335
|
+
(US-533)
|
package/README.md
CHANGED
|
@@ -52,3 +52,8 @@ free paths (`quoteUgc`, `listVoices`, `getRun`) reject with a `TimeoutError`
|
|
|
52
52
|
Raise `requestTimeoutMs` if you sit behind a slow proxy; it must stay positive,
|
|
53
53
|
and a non-positive or non-finite value is rejected loudly rather than replaced
|
|
54
54
|
with the default.
|
|
55
|
+
|
|
56
|
+
## Changelog
|
|
57
|
+
|
|
58
|
+
What changed in each release, and what was removed, is in `CHANGELOG.md` inside
|
|
59
|
+
this package. Read its **Breaking:** entries before upgrading.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clipwright/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "TypeScript client for the Clipwright UGC video API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Dimantika Sp. z o.o.",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
|
-
"dist"
|
|
13
|
+
"dist",
|
|
14
|
+
"CHANGELOG.md"
|
|
14
15
|
],
|
|
15
16
|
"engines": {
|
|
16
17
|
"node": ">=20"
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
},
|
|
24
25
|
"dependencies": {
|
|
25
26
|
"zod": "^4.4.3",
|
|
26
|
-
"@clipwright/core": "0.
|
|
27
|
+
"@clipwright/core": "0.12.0"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
30
|
"@types/node": "^26.1.1"
|